• Welcome to the Speedsolving.com, home of the web's largest puzzle community!
    You are currently viewing our forum as a guest which gives you limited access to join discussions and access our other features.

    Registration is fast, simple and absolutely free so please, join our community of 40,000+ people from around the world today!

    If you are already a member, simply login to hide this message and begin participating in the community!

Mathematics Thread

What is the hardest math you learned?

  • Calculus (specify in comments)

    Votes: 67 35.6%
  • Trigonometry

    Votes: 24 12.8%
  • (Enriched) Geometry

    Votes: 17 9.0%
  • Equations (specify)

    Votes: 7 3.7%
  • Graphing Equations (specify)

    Votes: 4 2.1%
  • Basic Algebra (specify)

    Votes: 9 4.8%
  • I can do better!

    Votes: 47 25.0%
  • What kind of math is that?!

    Votes: 13 6.9%

  • Total voters
    188

ben1996123

Banned
Joined
May 17, 2009
Messages
4,972
Location
Ponyville
WCA
2009WHIT01
YouTube
Visit Channel
Find the number of distinct pairs of integers (x,y) such that 0<x<y and sqrt 1984 = sqrt x + sqrt y.

I tried subtracting sqrt y from each side, then squared the equation, but that just gave me 1984-2sqrt(1984y) + y = x, which I can't really work with.

x = 31, 124, 279
y = 1519, 1116, 775

sqrt 1984 = sqrt x + sqrt y
sqrt y = sqrt 1984 - sqrt x
y = x - 16sqrt(31x) + 1984
y>x, so y=x+k where k is a constant and k>0
31x is a perfect square
x+k = x-16sqrt(31x)+1984
k = 1984-16sqrt(31x)
1984-16sqrt(31x)>0
124>sqrt(31x)
x < 496
31x is a perfect square and 0<x<496
x = 31, 124, 279
y = 1519, 1116, 775

3 pairs
 

Ickathu

Member
Joined
May 20, 2011
Messages
1,406
Location
Virginia
WCA
2011MERT03
YouTube
Visit Channel
Cool, I got it a similar way, but once I got to y=x-16sqrt(31x)+1984 I just checked values of x that were multiples of 31 and squares until it was no longer smaller than y.

What about this one:
find the unique triple (x,y,z) of positive integers such that x<y<z and
(1/x)-(1/(xy))-(1/(xyz))=19/97
 

5BLD

Member
Joined
Apr 14, 2011
Messages
3,179
Location
England
WCA
2011LAUA01
YouTube
Visit Channel
Cool, I got it a similar way, but once I got to y=x-16sqrt(31x)+1984 I just checked values of x that were multiples of 31 and squares until it was no longer smaller than y.

What about this one:
find the unique triple (x,y,z) of positive integers such that x<y<z and
(1/x)-(1/(xy))-(1/(xyz))=19/97

1/x - 1/xy -1/xyz = 19/97, x<y<z
z((19x-97)y+97)=-97
z=-97/((19x-97)y+97)
97 is prime so ((19x-97)y+97)=+/- 1 or 97
if it were to be anything but -1 z would be smaller than x or y
(19x-97)y+97=-1
(19x-97)y=-98
y=-98/(19x-97)
19x-97 = +/- 1, 2, 7, 14, 49, 98
19x = -1, 48, 83, 95, 96, 98, 99, 104, 111, 146, 195, 129, 145, 193
only 95 satisfies this so x=5
y=-98/(-2)=49
so x,y,z = 5,49,97

you called it a unique triple so no need to try the others anyway
 

Ickathu

Member
Joined
May 20, 2011
Messages
1,406
Location
Virginia
WCA
2011MERT03
YouTube
Visit Channel
1/x - 1/xy -1/xyz = 19/97, x<y<z
z((19x-97)y+97)=-97
z=-97/((19x-97)y+97)
97 is prime so ((19x-97)y+97)=+/- 1 or 97
if it were to be anything but -1 z would be smaller than x or y
(19x-97)y+97=-1
(19x-97)y=-98
y=-98/(19x-97)
19x-97 = +/- 1, 2, 7, 14, 49, 98
19x = -1, 48, 83, 95, 96, 98, 99, 104, 111, 146, 195, 129, 145, 193
only 95 satisfies this so x=5
y=-98/(-2)=49
so x,y,z = 5,49,97

you called it a unique triple so no need to try the others anyway

Oh okay, I didn't think to rearrange it into a single term like that. Got it now.
 

Ickathu

Member
Joined
May 20, 2011
Messages
1,406
Location
Virginia
WCA
2011MERT03
YouTube
Visit Channel
Here's another one:
There is a single sequence of integers a2, a3, a4, a5, a6, a7 such that
5/7 = (a2/2!)+(a3/3!)+(a4/4!)+(a5/5!)+(a6/6!)+(a7/7!),
and 0 =< ai < i for i = 2,3,4,5,6,7. Find a2+a3+a4+a5+a6+a7

I've got no idea on this one.
 

uniacto

Member
Joined
Aug 6, 2012
Messages
936
Location
Seattle, Washington
WCA
2013KWON01
YouTube
Visit Channel
Here's another one:
There is a single sequence of integers a2, a3, a4, a5, a6, a7 such that
5/7 = (a2/2!)+(a3/3!)+(a4/4!)+(a5/5!)+(a6/6!)+(a7/7!),
and 0 =< ai < i for i = 2,3,4,5,6,7. Find a2+a3+a4+a5+a6+a7

I've got no idea on this one.

haha are you doing these for fun? I'm horrible at maths, but I think I should try to get into doing problems for fun sometime soon.
 

ben1996123

Banned
Joined
May 17, 2009
Messages
4,972
Location
Ponyville
WCA
2009WHIT01
YouTube
Visit Channel
Here's another one:
There is a single sequence of integers a2, a3, a4, a5, a6, a7 such that
5/7 = (a2/2!)+(a3/3!)+(a4/4!)+(a5/5!)+(a6/6!)+(a7/7!),
and 0 =< ai < i for i = 2,3,4,5,6,7. Find a2+a3+a4+a5+a6+a7

I've got no idea on this one.

add the fractions to get 5/7 = (2520a2+840a3+210a4+42a5+7a6+a7)/5040
2520a2+840a3+210a4+42a5+7a6+a7=3600
2520+840+210+42+7+1=3620, so if all of them are 1, this sum is 20 too high
they are all nonnegative, so at least one of them must be 0
let a5 = 0, the sum is 22 = 21+1 = 3*7+1*1 too low, so increase a6 by 3 and a7 by 1
a2 = 1, a3 = 1, a4 = 1, a5 = 0, a6 = 4, a7 = 2
a2+a3+a4+a5+a6+a7 = 9
 
Last edited:

Ickathu

Member
Joined
May 20, 2011
Messages
1,406
Location
Virginia
WCA
2011MERT03
YouTube
Visit Channel
Well that was brilliant.
How do you even think of those things?

haha are you doing these for fun? I'm horrible at maths, but I think I should try to get into doing problems for fun sometime soon.

Sort of. They're for a math class I'm doing, but I do like doing them, so I suppose that you could say I'm doing them for fun.
 

ben1996123

Banned
Joined
May 17, 2009
Messages
4,972
Location
Ponyville
WCA
2009WHIT01
YouTube
Visit Channel
okso this is 3^2^20 = 3^1048576 because me and arek raced are programs at cackalating it and mine just finished

788476810003426547135889756681970758108634492343901916650652456335468779647991318341838702766503160497945239367614156592432453907986276210422161395665617411845766088149877340758343132204414762728363172469671383717228257049475104766361175533117890229656674516078546113309561749859854452844096685859110093731597429046914231515849378888659119432573232122513441231566808558659147698121973873565723819199644094029982973436558904655084612940165613188641726623346364641089499782165404850784382264881210423199554707401425571584548296706527550552438834187654685155487715991880710228053092114833209423367286793408494332049018696681236308991630174396208098919093091685549340380909561151363295484782041440782764422959471234077788287664871283454442014172954883614230664956320514727947845301781071875647140206544583442148907778613739359760663244621134450219425749515831838119029905410426457452163925818927054354740290913533113490669295299532776275157390449380640846084870327428504859222784509984474161036429416992224407481365593245918117963633579931681794031707888861104793655057516683452389564111857542862100524113842945620642631002620643167614559468301197065363817831035406859556399856052584017989668499260345928016899386937798609317872097523823248317232353227498185976154846788297335345922124041106682289304899021721912512569707058336525217922720165759434635949572762159053178389425365762302186465884305504647575281127615964460738298181232287137846213055819669850237102965512151945234504675712705474066091365087456378378293209200381105091675173704906559157388089958479261088114570132216090043502448041128438354739965112590155185091817497798841374721629625382527465332309653705971588028401036655279147381527231097815487702360581297200924217752069266052057208911843560309821612695768213842474202215533450059614402603936653527362194964228858325589723818974203026436384562740776444720108453781626447086575225923715024646583351637043922343607735357150318798686882690321231213580458185546570323290816157624651307023238149413635144451873783850317976519301649087446682420347240354768568221653435679090763031763707226189651599458807680295022667312902453566281344804847394334938165790124894710535598248080336356305005572916065469590117492783304812778845800463772136408155039576085327375593213040494860811555869985547508195943036483287853667971884590659662578178487343892915835401676390864063165392235974890144409779198501203083348960273157943898027659788457046160307827028931736580273232509427654358003408671547648702730764014216719625865403517541477882425331439873735480004806473288870626143299186756643046360717248376532645490041598215519742994072475147825726156395447078582289997949834955711512008471782591818851658463582987851498492796190474168417644597549490429790657120922483777214332711048787133911763354236659162694861068566504307902326503109815364394514657456265099554532860995367654987255225497382882850426366599198688622114605449013211769093031532614069152025305156681396219105517217578902784492336688139997280338410533072245085810774329178249378375737844983920604089377930478627511853189603577301463325934143662853294224158205444284776761417009946489555671697053531812242191678834996846749166459841921521065370700377936143514108257834507650237575829017717887761137434718355528140302538460806867115226929423716730916580886127105409911901920314269689458485161001403544204822353458622473409187530760436131653734353322138845137776438103125811423726505205893417684634375422587298325888295384502360105322120102749921906152246566566673119754290127581594082400668590581807727896735092318506338996896018405300577080152655175491398062358923622044480374177200446467215320040955200208104465138559345101178984741415432631197699779559067202681675733535080683610280517127461008817222165086846981031419267170505917496912648159331413985580776687202655598597523753856945431872970622668434058453085126635074831421692731111649607489874228223407081891786121234443452035409679544838289008627582079219969171422427820575590251980712620525509159591252974100472832710789653603388243051027555293865385763217293377193133596079984564922485714835360833245420982343026389059177507104480408944902912625405127614806781535639884281861321971639181166511338959527283666079574312038441819620567567338851305514750704549022883636694464927286801000394602510630917494671641822847447464923828120009721067861397006299422242422513941610385900623580019722920711998996685824806940397445464396631524342431620099732128806647969677283039348472074138278309247982779334431848528330008951949400532979822833537491513028122752426626621236907417096702966176223114781640676453736900527847778836153730723144411455031757909554264170809742952405026270604339403247746077791809112992800982277947516038994994275891125790042318360288535238752138275474456221391911130372567106337161324523878916193439169572471154944987545004133513335111046832919018220796201034324920787507295574485159048706819513286041975850801182216681567865737828537180152991345915350732566117912959226630362150774417482535555654275032490719787788028693996567512356257557125711198324022323440673544445581081393749577273785058745556490535217316071624194400277362055372311320083686168419440214396168329619759438211250750028089175245539945142387616606056788897389412560645802636465086402608069610050062797296774725256494267079235764482599606819351934221753238758473931940752676800228508912922104011236604457246987233558764600786637022690792536908948780850899924324643489835536312406010195651675382654701046511771023173685946182728027100716156859158272397021253205273275692480244257284734846261916179448302594824993046545066036698736237813949490202730885809389798183036040528180981104572715460205025154433404186586768415944908011850887452559271659125354468409195549100943398984264873091493797734415277589544885058784281820926528966794524774423893425201892795404169633888627592254840242845888668941587857200855038976431027986837651624459996946987463923576719364112570405063612163732764186037394483362603295727873865598531663282520324187504742989606665676907446716806870129204018283820483182318762397246709832098769155650300395427854443421644082919562620652685845489987030371477920717310484972284746953898297191430832330725676105538060795382727154890592706079723039527552187726883932326338386870393309304935044385223838174433742300001893582019672396439086041619048671539330079015273992596182817414623108171996820029628688453855012886141843349029634310940222764638094759141206821404280611389300117445799972333508947633201049868939152950920099740719893344384928975003802177316363056661057229248776690874193484612018104077375942041143530430992897600039785631660870161500233122159535643131141819119896535785069265602477516821660209140277639149291433620993566112836951897990437575765533548089986945046090624856890227299270712172493062172776681247855107127185632875097535523604539722525170167242630477558420549077089044483297847254191757189398005823232529078384447535266550064620268180328494615939980591361913646454626065627964574254600751790971293072042490793456178785930667582684575008789374884147191965923712351241297999600363674942551809769919857163129634805347699591370461460322721065765471917690253126102481189886235810627950594951247986742152231988783676540274521058975659865589874810548212747688106962913285963776982469658378596623790438791895466077346313589336199196360318622985382784802033184174441850474571155946572663043777508218207810075700436076861024973253212800725310727048574354502057124904553336263712211158339337827070679256448087412342672208397977544944852743267590122340997030783662177237731265224262644187504552200964515288186937700269805104499802943974366832638961176012341924889669321437410529736311541478527090216311996914874186330994822135157766482381168232241494401945311331416440251887516199323816512301118786301667519496674620668966644587659986417198839180290432783758244051462031824774412432157291181064800788176030758379943979936155962684002017465288886053130101159416880912332756107949689774725417020042685919726531941871960614821434934007220467718760598517833462013904811576802600134005494991737286609068953315394258085619099515748664771286710451008773939956030050681206880039984860106054164068468947491471670928114643075535764936554577756772808177313738510963846856055568836853172842378633168484405542924394537276698439677753523924175950162454742168368824690484599671527342164926382362708291915758316234439903877608247998362646422525976299076752517111741451215902855643006655592207364285210077592971962212077672239734358749934792454177741512851399300922438581316776538182494066022903450319707415534411824150700672232241193909451685272294259093541768463109629791583744641849779813721041073749419791877783792392483127658545366430184998210429046014217623880050051526295883045790870596515971445973185891358256971976036620476808925959417633232703953189806388709669960665506863040059062497117826173421308031612648628494778645346026306158388142099149861347268328271160819064405464353173858474939133336376367926129532426376960702689344812683741190511526399397115808236190446219333386261164166975997711715168039084268791558413343871488454327395058358903524412740483927203368765046062616195666408524106073099151670817141083061583798807846801746290298766118367516372462639031334984513323926940740914721843276441950252655532723595221181062208808722820736082525955996384853775795271111935815020640774731955851248910484332322352906861563799826626736686226144221179928223851856892624464181013427859948854554635741681337390018817424707081055865837426517835171509986932144724325390185053249114374527341786824547276579878681258252242024600542998080943481416926243098859932091770505714558486319750840227255552491878916529188864129417230594764959310902310068376188559342936470815151877931369147113757511726651692927261150946930672471474004478608236603075185639925539496669796883664184245136073801613481288248289025676811422786812399332716929144887827809962005465602453995048407442103959228428691880050713190170860461380973213057032778095145093008399678603631108936410768542248107363507780049971820083882622056003411163557756277595590670794309812428516556132476167419169253200387209591140630189542516161066105411198628096399176549566143477848083865911853249959225567013874675298100702785291200943353450834377786091970263169268508899572590796875336291701586941287311600491308562722596704304718781403114264770947278362039546791037091142078389137818449626219413147162034620188340837026794418632045290631840857267434900940255808339441176025672184404818669249137622401103676737515978266827733930250434259274670656573184530313278575642549127194011445823084782744725216919664455589805714419120794447086600966681631618350412987197387384161974958916875915195504519385649542499502787232137893135502971072222743927483433023532366186280398428067687914589177574333639499993023829379664739754531666461279431644572710086275448405841105320278994820071162440192383878602760243533814294577132489163114702353927078383477990098383832492174927883580768440930644366885675795333762723976587275942951572280639688121134625447310448472782107730751566236392685109144629923140944306033047381574708655429524917839280040085074758567508442504786539467019043971583898940153903731592860657251863408726632798716869417438881797010276046468369418294468741377627895217516773183283069576915622470689408028249534957821472088410401652841536290399088779189305899783476974487137452941641541105920361928150847708924636673188275631667627341636991268272785208102806792367959638294031501961098174928218126456009840334604076318355922281998100728775026818805752686986328082850188129264613296419103034316620852320662108831273291330483773210713843280730608813009228714673272676260399180426397570728308802587926266852395891697229560524685121592508311143267347688422812463475676555824626086170021999766896983003773558019692365349257146078064122884893422253390196244431093600741693811228271387196302756710226252222633326704007449510822336249751552528204596313001133498959132860785642314234663163525258578423910794310973078707724536158776585424871845404940033978679341091248029094963868435132009937676368707871961951632906175503468871833812431899328805765364917396017007027738708777393962162988340494012344944076502692598962780334723364704080265744472803597131466326461922504563008705482330937986418451565047736411319550392089269888168397602272676804680912344420476695482635932441748701252038437867611250173120083307682568791654749185389692857347561889763877038213311863918765420782552380789141413450788113738125821513510153576647090282594360641483835792084424366427515578166455406396006235006335012346755093696044508292062390939478718780597900844397700368446617381613946407418940282249473566378765912095899776355205856786769476565308387433984945577772279556693133069123408341690377549396998166437276321512744996982662939104768281435145852251335959143335802921998756638082026545254667562616636485970056790031600182355049448487588404710625505868681960984356988024147277197960725291093380540703436278611721875888405184567859643041982697739179407113940728279170992682261461899851042565734071316555734661767674303134330867439746516801321079089441633062693155925238946864897051634298498280388699538930724823219868772924727503300104962385227763224527649209598190600701617473858156629478276319343269819375984604346859284828418807188439012448907519449829627288776231778891368307010377140259278217361975540147471656601782030270223246198139103181015000631171285911347564450328372101933761111761312318898943160684199841087033336957735145732154429094401513756339463142162080896392644254355368244257364349245411314622636709973547249156137909460439513010311713571486375268953946509689482090157550685277375703177404609847031473468313955774260751952717137992764093969063968150149739212362955888865755972737814187390800286978894413140382919322794013281494583077361629674395399729499185029218718322454344872340339980910135886599971872820731932875467501531114072438395542663520946465318410706586541892419263539670254509613886979084254674357969708651474068509532212859087168525272469827733045721192246385116266677696273327150435661202792635031809125765739728345616984996077325640875858696846740165573532391290871066583027275655091224810997602305316152050329307449066767874001229847815351788831006380443306088610859139385852091337652161566558777830336211314091662871871702989630084005479563769822527449425821053375220834407234139603510063544325704948081546774092748184785281996415974497506798823164405504178997021673644900694774609528164926763333141285100707796972097655341099844863974924960523424259153099299943216471422257554140254673478867536794944404773584067920368301992768149023123569926001700261177299328883513797360006800148650473948585710436998629331545351342644836808609431742163977883099394264152182884288873563043976372923336099461076302007836373464817293749335498348625549033089273027547601475680117755771582127923599197976883616923901747301535657639251773714726449544173007540154127243868612503778219207077467906621728132650263952231000151987831467595261160525887707264576549198748297555010803991729467580520089907298297754179695513195152091861267947272710393277452545518214559973344516084265248444862016957883985802313551199563396349290513541973082554971325374666691524400849581254597617305928294803134294184263109177913485898563059197561027661853163575382472127474708040213319048111640620473909624639774159779953099287242123784475738988407809788238425613132032976970530955443343561797780025296009991637727556450254210076257317618452987376568867361509675070170579380181812332248299031077074805906976451884450829498909223323931085042962132119991385364499702433304812839594233549119386574002899547150868400250597408154540625530810624987819649600097776497439145521276987753164210901224988328624273527317875466107059017925507482143634820530217686212092004009643965498197138289517573268224134136147636250866753234688008746904149525830279847622074444477900624279550736055866265459823242417641537214517940638570573518732723702488741061559509923753871826149946552500730388085211896592947544960044919013041992950811288737678813870066675947114665572680470067923645527905403295674181341538595589032431095093435589587712331265430260029399548214222663708795819957248304691557598067040706745562303552759167441749402423747814090809563310300297262343064455856297903848988521080180421399404672420731767596351146502090840342023638888417155662344683390686319561365572535453476568661928761426089895411043686449712616663551637514842361298485367405276798669760582857374114135753421750810432493074053562525112880402573427058669872009672876150306447518130537998829926393550940526620237874068644366196607488223044059027691419753966895102310779024099655224665465481651818353771468643774787714696143994795994052473124057718145376827087872758566411724669240315239956452994065328588501172881101846518106894597988067810766614439185610372124502740754997195634019545394709281893121801303348326896733498464376285264382152478157404872367086941538384197320735442855244809564678534472504653095992162240566802578636312327654675391011159706864501812028792536322445560173875052523946692782810328693492619435492173521160099312493478333468313598953711344023984619459901430069700040006685110835878922358319623799205637373039494624391149832828898803997376741242348104496613158613930582489644242689925540690750994218461853708202224378794169849603708265544526878118679650732984626759016088972538127138259549827751696800403803595661882329486292957382057922940989347920079290116041240441997470176515845728127587552336602871145630661422310479437616865807286094484394540479145745377261099906732912963126429304417841917731463051363270683033536383459524548485407462963426327482715019786889284307886397782503611228297384072543095126958163856571361260134319480175323398215071972582937115770758968193490666803128294354701424279435626590879523971879935018682486882453510881926804772139582699997981463619246275568986370916292425172018242383005938374705800563940562980359524687427280817338421567515426229609177453303565100257407802296044716968388896629567020212267371644103329125183628314945283910044506665390563844747711771135295561100618873540341102764116454554512990358718018446064480801052338642838228458998002486986066463605091594453223451832044071783745065379492478162762634259450016841795644259001655714386227259759559822260419970376352163418117815300983704951800939409172800566377450749176003168152896424018387990259126937871301046274805620978588775845959939718013233094086943193931493563336537661508613718625420870502283544349178110229301069939422616145905299490490806416624241179898590112430957452805722930247759970746037215827331727966246941627614734471150460179266279571266565308712654735788418601879799159064845599765861993328381483522389111467420444389288355441016122700539325258689626572286770226050959871890295317885478757364647726908585529721650843338884140633488127216771599154185330713798524654777440087695655495535789482278025750257243039007464087728712267802029547326492340853410379619118082112195343443439297689758172345431520379151493191185639212593245099322255303841519155815519355232286071777253539686447485200655212932698218161427180862784194700783639903133921462031953192319477093591297103630985825550038250928547825811140978726842704533980679953342007535752138105083168220326394881505999257483357146623954036709195336785254689962741175642078539165799392099187654207367223145463284752180831146407263613320109733401077314526867500325729913521577790295426321156266113594760946816551757503995743328834912063256504527178248177886270094181343763689689671677204953121804945418081977072631025351662635408940239291282499271401458845373829073753651904204510825891092367962702860223253637459394755067925348691612213142464015645235991331871388000409744678857033465016940483181887975464991685168759036301957423209706296824540236299280644134362661906606682291507570434473917755750810317254583232658822577677320801717836121686227374401643919848810414815441701140544488922439015555547289223629591152135126077023487721640250407692183556225224751342124463654374233686761339327502635018530549674497270156010043176387801087084937107882376115899780450254064995039954235387995417776789555732421393448866797713133188359498658220242742887730324015271793276720209783701023784172820016197877414748736061561453218868687191240421187699593496593030693073234106060467933603708783816039705179704800254176981046418341920694700500394977272921599916895862402897600824702649886211518948257745324532184169931690081449113285967407282554971844571068994378503547717374096184225910095139978382823256130013191434542402096724644494612923584066185280273994041744928592963725753906206607696119169108296017076956859896063088234454074672790374752855034796285425679416870353385353365192303546499293737859666857569306008151738920072684681960526131902130874452493960756091399907669894568976635932529430786135357746392623593101378669977755300692574510007708371006462680150098074231100377312562001295048722539020052565294151068685919933072073275540523829263597141323673195012808452903397137983775976212142455656900876151128897020262123157457028078271810502698496701161465460623327839101619868342874707452909439243811688304157375951983302691072131168286485871988265525405724174153644925959450777826252036176840045539915881235223182442331094395405496698915760749098374033776918221787443927583383261858742918672116521663791930550881781006490033287435961632845197293850318183434570237920915045057667430672110825159714589236238748326425882467094273774843658991295215947886567244336096224820316080619696499300901035425677028106084371213641531700076172673839858605840453927926937819602587175193000277772823374659799217319215940752178488532312818302014276250812607175929546839104559728464286219913992063918974631972381712867991606717987546008773479671862720589595948719847119553618966641869417637756022443165793804942791519483594398959251201021001533045367143473595610746324744972414238987885876484684179295605585876329060122782274401945425952964163017693279997947633048014657245919709081706734574976954869418501722279278738409500351148837098822118865053542976144393320585307483277101218713210206098857299299384043397979605028815260446196426321635792819336329789741042483940336637513171024776008514529280217607134609582176923258331834233014550314639077993049818446236235145134096888236847105429764242307110093420898322872325922604887689472102577210779503433904486546254100223451654939109368174371291897676925707409269621735977543120533239250553514201306721084361608776596855589031772098365067045869261307633991773730761399473489066543489510324752409166045907602758057055555417551385746038238713382231582004572786807586489180282105967916424901526229611425740155553850196425627774686361678661293301491141100173639732530835743466191750758757033912142202683328909074050505970728957777011088353537435658481329962985702752139055077248877212730413976918638287880763422663026242736927479695385585375729761340709212725088844231695970919636540489627475663318016403503790267282690034303612698445232118071254053043144104859667640187319142450049950201107998441290710450133224759960299754784986559839436062248254097578897164943889084055191501131799815411268949929499298563268425642602544960229274024115724092315611900292892327834052640163114857232761644258505389236514255056636171203538460288910142046992272431334539288665110124231986596346146479346760769578769756051644529756250556307513599495704708700100120237225717849854135034183187111321127792303274455226745011123896249957082491528573166406325240226562405305542677503624475940395608670455515614289625087345981577586583680110761737844197414162498116783851419330943161098694604874106910220193672480903660858655947154049474775352887538112017757529543852041377267959886046439121153193846031741848608698328767006912115913243834397818371690802898426925556676882857400742691682085274467131239290596298479948767203712113592546367311466318424511480660653325108018071532282271501360747998495611791194922647839957951120602982499488630713581816225210409034493078278341959435810713611057964106839971657340091459589787515387186890660204146715754734906481189371428964785059436487290372570235252057776610903839475535149124446978523009909687178053079778165400780491816230622964990119360480940252556872953165962128804787009488366936677742371047690688368253892383059256989137518076605940893158289093234647978595100625353002200774534787516468960007973168971288002141280050475402377092093357561827441629796347174236610610977515187225803758030129360247361536458072906748130216261533352503879466554935929554794151263960557896240140817841869298656320673432643042069068058433921498065125984737013043787703549765301559918699585653767834294721904509384310806326022572755590546696066455001318942236414297249522734229936318111556274158349905617316631393803717516636139829053126349778457429067533736507368728188591128441818020091753099203657385327744802003862693667390272520303970690385169786365476149200575732685996550929929662851075336949669947807764825738318717975806200334033751643951779248319558999925772023432481886871141954581784321164575017586642564169823725601364371537065649323404239145215375994598690774993083060560635267520398247412375875846635285548421901657659928385059138069274807916808440974766991082469697439561622223140473621524975024143659010786783779999455835661288898852024162315956929510742456496492157302265244181066435182170875677566245641443121081627376819886959917373521733351828225626175179283925176777030478297792816940611259679601821867491649356337522795195412565461749968334472595743450057639624114319683971574711016880615267852261570774137232038335930410380459513635631612021428819075813957231728215361828677870667992603814034390229640488748365623310595995428103730486212976894802594662379155036648216692846245131333770068629235975217514193103873300903321107145361906164136439644329799193234454340191203475400444236779420801854651674635106072970899739726270014808225630637927746063702507890290608251911371713721665547010357627788193251339753431023199044779883208435194395525623659520438709166332980525735807305781364243818017755512741419553667794588861850035652960388671366811611461276844297139113779645012461221432853707347245669207139612902506049068853384729892292856588150114461881083200631552965956052595202723162585666088015002684590161114198069652037177954573808711381511881015518208402933185755683741429032103653791358507755800613160520228314209708861999602513872556886111506121801567300665600551371128408616650342815879780088657758352776342066366365239754715907696775362358169759605529042707215130444413711876913026014039107806544438272119111322728959668247916939598826470476112904275636787819955456602599313737675059557556081121548387983912733702610945547150954758242883216146724991447164889529620077798063680589307289134898459167849136853080194257010767365548304933039059061940722973258787171948362246239379391674748015792543025389629343707566799780625099349317577381709570928082375703982482414354656127810204515192206575537300400617948105337550409959983920164126177657184043635436857881380173260332745568031623968722910153603459496537640352672261833860958436573500746968906764167804400570901396254008055957967131786218832005076943894571263349911513972867610075120195289769772868157558316422479015983281502157940564359994408693635452209031223401521473847518054896766418372809004588763091568068433796547139388065325993657737929874066335922413631375347106136240485354770860552311487115158579840183718282117996822412195512921045811986314902432875600546249842374366515676971800508985327476551970210379081293899871888098871865247464526445304833193815144354233506678842448154041586133889887709181907061564606434850388391408755136156494087988396512112890008375019211001790974857244367876050159246624350256436344040837062764407397489967515099236623633766873431089644288796456781610720351236476090844013789657798560620239131596190491309077257125448254593242564969526054170407906220498316841499847439563121858030411254628181946862077878440776950278926122405464813880228114294114890243237389872205890447269521224122922018168114609204437179027201829413820580250768411775719371142452412263656005245507507670841596092187125737278930611452722551267248383894827745513132504733239893397063942706553583303690312901410214039577923930932777009141780178808657688256743079501277262183151332569654067615438985418737291077174468272451992382211712105800788298140824902210717635378950303798707310243126938845941796103077265091665813365533924183528720028821193312078895175779718234436245215308701236076567993456782898631052186257920631318952227963480616213507946160907742855398124625828301152057314651402361027124785950317019337365723503499280982623260239402057066088693739589942013325077067253323089319213348319453682358005243342037300899877842504220818337676084894642971062679283947080613804100829581229086214338605404393284962986589847462100213849988210843549868163573528336965500738319532542550170843109832236793226818305041539178389864723376197182102224809177647163262798993094648249207452670484596054651136996635917732244732897108657947409366227664882952566729436158193706607910336939173616403761942716015878408144000150304013754753380220061125415327737707657052244417178099295758827628313088762723175425583163308743652341781809378290210253103309450223821898013760040159942435992737131103092302937871533003492464807495528591949075746160080154887422053247790917818929283760602710235591093975047125873748167360921517891388629704302796128419085871959871030236160266776922907377197044320198951190722922044590518293781954378597959587521184959502449331429524019835369825571444719922155911048259156228099830104200552601655854389157637049162312584324609806536723608960416549765118480737739226655277299259080295472250363384365309896388417361901535459147375720229748516801545443192356726231624432998935119213279606500267749777598070503274654379746018015205970192750653831389207072852677451611881430690898040676880426185987347315789379357767751621048009499054913117199419248086764562670678661193920658845049034468028409723063352930262319440172166520741437230515898447228452757820719977830734759030151925333837754282992074426773188437310301488893229920585316041254581879815129054696077224712164069807685740992658786902458253987120711026759606616577497628461173580232759921440163866482504531229840294771861475923731395949845067478303017949965148165826256812959462835408210809729535848902312490806316372950547794224218098538789744375079439079517368175928401150096912011470355885605961396607128824112577232157288785941066472550520357720002596886768030535093549451678942478475150848329913638740021959940055189733826466701700524530041416660181685461555680544296762344744713585301599968290747617792047531744696841566486145125938018842655822124919195388257521422228236710925831430881568275530560371037485858465581569890506599482783810907345732853366479263610005235493205852329833208160110308001288630627640094952515127621204732802059382966643059891453445310426649317853588501481482116657099895213832376171639718161236734960507506080205969791814657960618711348690814238051656726322001394333088821174191336598890564999478439744710328089792326371736730872225545937228106586368458227276207264168670825366866538656847339453827088759923805022946461042946663384990282412356585840218525986719727118977986179959286408626114176513493018575133815614849212851433483900100590447604802751982434749317888895234172297111919754661316107901210412099990033506773125328789932320781713457821508890231291563787831397962544495342689178229364452627688481799080181874345552587248353379812922341518955649451159347902667402971753699944682991443469218111800287601197392674081838396106533522738849885648982547938526634783346316097414155459570976268555576113586037911675379758769614206276569123604204227778630622219277897610453187590053963427765055559896502203984194619401408464789362682858981398120778829024927981637370930780544985165100852394911257415119151460393096057568411899681135542775254537924074390703113727249101686412164416656550112996314899891213432054242129553618892780245078543037620710104871167298815321507864849287231552865987059129640707763372814137455022162703355258497403642334783170487727408150928919101699190141617311612848202893673942951293704327003443356176431149991372042591202759938340011649296460977182709261099726843423766006605666045091275040692690854025471744272378344670607379242275980522156453567127744248208346951038810368732436347448287554485488833994270771467444652993651329762184189974237888944309814337612422651311052250233790468008623399673798199168257825142527662792789692909214311950388727611806727967581110523206540318070391282874580401130579614474160499172902249927270702164290457134849782352845589314728120781705575107821864906737072056061499357047829696297843843173582463463360477993246481649743137579551970401308973809305089375567958982269558265616299899738151549842993759785772736885208870299676780916555634908420008651127462707293564791593382809534562656624706525528060657925801648956347293623734052875534281779826867397167690441161772075270201576829343649246341220695266820553958868035208812924615423949745331275089203760882588536285197038534259109465717788726750860707090395733908121053364006099226742760353498490488872693954617386513828902967896044436563679028375935912929653558299759562861249507982786543294829163286947703444655444143154017986426730725008713151135775881345676347258928414324068007508976599759431626096907182672902934925643147589901904446964561957303893886379326327143183882427520359465906143305910655269862214228034100835716449745587937126816051442435124427574174868725001616122214177833259752528572370247316639855620195081558770462149362622788057369977145106638377380176790295984756390842108106989230775496113042737163380490086028572461803611223828112702925370546433160982558156879147469641938679926433215846463403999152796300743445730559949977158109254922981637106994051002956580927787021874946981527747829426969559076668897953203767700337139143690604200570267212585198517599228625384316500416981613910641221947783223864928112602108344809085912456259548398603968821682665325489635567460439300791097897553326102040651579287961226945925130343818816860991139206382997083776501967548457782854185295689870904183544989897297819890671540996469385736471230550153402651976650083111591421566725583501402662686450806166185767132067657667349429898708983125775548496601601488708315998222755265867855095550198645100742036115891408569595029178596045718083922385800171625077101746279179341366689981011847565102073265492094561850260373061836105493351402718680993741892304989682751788324470879274868201741225304029847245620222340527643047809190092278069769781214303652437823676348482504332825660105956291444538200148163384812820278142960843306024753361749653128975067485097776077778417131602241628243943411692036369071581680790665216615427210301277861275559441952512598356931717127086897553097057222289072960883920802282535786060120056082001247359560601088411179860567271723952377474624437035910299878229222789867984441840811981193934526307127280272041505176459134009068973425400708173420012084478247438048602917543025773960584385316261620235141744058266098458739122914204421941117677713285337620638915440157825896566387697059050264870346697264699301503956039299790996414977830532054304710525718898302162598365338788446929641737005675879400615578054110577141942491316142394154894772907456102333345634067029716126200686075222285237835379227959138012209090721094251022982412216090780743186871102762686786964309242181198594797129272732335391463014095965803244813377075972335034522837730895552683448927291126369595030121825487416034501285258071578936586683669311027883743025513750216696920295374740598520184575968134375644458805771051522338070309089245536793956918015855706720951330663380328109269650941924110549283498637918976998763868929303602899711361678711040214342954166964605202169970813200549354464506618187548284448826603889923351437812679728334954673132638436900461357430941909124790777285273544570318999860221176512218567448131815585361514071605397427380198799605721010126136766555863651167838050521439463402738210910969545896286128247361665172998147446326203576675834066582730463061796475961502375103271803284930018693091355212862439424302323975468450935339057176258250311105755171505476600376208566378379818739449494485608134023032186067526812318982386746465474455052931539594564012212631480937327801051068030639969071237213134167983908505360051700254762198946975604906568689092457727705835620233616615526076514763489101798246111832853903763007702655903789027544009162240247718041236020831681460124713809996028308023762835595110465874936006268058106264228095415692596833467488975624900231334198891894436839260035480542411522743941174198273042534668126103042922157394394841468710480113273241138817247719532884833534573583229275473687756291539808494550181270563919542195696166388903877187362206852143365597368279069853181662378789464838595364808827192681452517980918517270630954902121813821673096637623084739447744153320200037567390165600706337879417458813771249022051402593430373983496969987498947250396072301700664446707244839935080140427670219064126570046517917495876899415268676026665674230360957682907976725722515533486675792984545295225104765856921688271440809660960353063467768572828716861577891718265303881559677634437865045437383900095780680928151075783459594130681462479689540636248875732719473747910252544504481420502921134427720727499259259951301785020882798483280625332745574175015017418195207655313001799320905134704883561213955259029429559029623081130305024570892098783651262456631328129530036690562847381883317871508778414727376988848101421140137422046269025259891899994012151681629304056221573509163375334218680308553786667936735908596960216742046863798558247298885862948264788482693322976800248027048041022296312059135869083543297065728764276563919893721848464445477732911262632577625098378681749050237394939322661557285635604022869525028831029027332447441575342391756194321494368062037156189377048575831779747017121865437499438751823849977852402079633923380338951748844964698315958053980233478046180994081360119430006949852575627013014112173806653742789067223702081634415478054262834408944203625514027622659871424381297221624487632167536471959914915734711963674722648234335097048477737066784514419461101830653339006072376551031828831685785008237487175095571882633521526982420122223839163307887675110530327304586942514501508620853976980505008279047191849846769620595897110585151131205435605493801556387413677087896944148542602855914423570921501081768603801319053888705979920738020446519597311125235109248533854312075971858034625003436238112188911868818727752720342089138812514221815852399072330605087468994672332459811175440264375254564129651380951535835784801004645157141912500510113303810177569775919328392369659198526449134833899386112343634845208579981129403465276132884685863931531072567085667296552794448570343709499070478672315112194606167373994919803583595614270320321409429692979461604200101627591239136077579573326178642321147273191468683290820008373384904187551918312630213663399354080153319752600275059405443890470196178937289788780167265445825318973842447212245275090231519106314203230715419333347005185182984331574164923857228075425445942385023304946373794714652267956944457038161570108417219042967285013263924911672897071151134359754506578099211990446848047710479186778854048950382300074458850554554465649251104028239554558228251737646860494044869834273422226185296404197171157315900232817847855793408982758843137796000491304763376840480199476935541241066883567239517343855872655610086030636618732263856252047434234653862777040569801249251070242853204559183975988000501451461259620204884837486549893014638183208381495418253755378400354811229387809514108270734042311272890480874594901442654575632556421053296527106322186716120261226682568422232439021486025390732661482023233511864411269221975949495417880215064913030854029245130791886539211506020493211540779822443476308836417694022472493151512467136607817767093175809876744640792711655524342594431776811369026836928830108262512437024015774139002566978079107041350085434956199037573682724013229053246361634714047251794494777216186963009536639686628980461476382117757237306544083127986232332741939380623318977684284241622292264871859383891705596281324712020580063034752844465132700969832807968250763586975060066387878703950804404384490278125824345288585218722267746651846490158444654349208490001215455091416942522609425212093286716973516095483690925109618822642909709105365183829191372161279239988295424679406930898927593588527204319865992921327060245630821286575285584953599421553522886245247105833131787338512625417830620924607619625903239784143588857685076511946159122772119171951364569137592854294081442109423959015379317887450053935248384392670820941572628553124494214554551911984067432272610372681701231843032109494719253634255973561464190422337559971637916697860837742829536881770622858478489667381083131518042664931418468530414114957056936773681045637042933743289341098319002744885484200867742589128206173784159845719569643957921021363220958445073770299377656182810001374868887700268397041565732175171745656111488998119587341703467648353389657547072295565836899244124494506820934668106261849042106119233283936293414371547016682772957380776274436203506212535135740457918433862132368367938293542367283889226600004164927629837255025033647238556604139209909895010278860374285684440515952075528878555017733353625039939039963109008570767626603595619218041248894896801134602815918078231217000413255130525967946445518961300521609524058866147052620169175287233980479481287613416975832468572042839024623224712752095619357882378782443589175056801925898701702943042622397485987792318133328577517575811320093887671524729461638095266865255164550275542680723606644976122396320332423265017855942805471207585363659038833235293536265556926225495973634575819572618624277537112260101700454137102437705996175246148525373655872691790782226301889764330092596036978183119991043616666332544072158162740071566411192554272023673769398323217046561191274786645646234025524327273074911439031381319326397032935721606615981804387213636813037364118218987872474076679912432915655699578408945986222567620918958154049383299221356615468548996009345310216848762997196995632147425901561177596156009796979574586836844112998131008862384306366103281893216738895826944935225396199628743049169401651901115380914237502501049434697506376840776643667915214909241272161669335734539666961456945880604835046026229462079371759240096079020444830280817281710309967977152080063389115200093862764639800558695121429013477228387042033259141289094562381063935123953053751884791482183713898113936918037411501236374992741136786188727949209343583554939641466932038271645763076746527753520985513170636944120785417980462561943422406421616326708932825587058827454710242932534739054676685798981155265264782020688401887730773486006082910256706152455948930420614063024986859956663750062398143600662611963562085109242177711804821888588631992853393257656891890859630681689220086922794042471387318426668647680961308861094329715109214482415553466264050523230393048072157854873837262323031738096342559358555908778551337081010836428559594113779387444488150881584497924799960014933094160820143761643490193238731881105512414742462610084079065607441504841394050760854873167361641489578337335822147417740950416956115896533456575716072380736447395090782791464262737376594678557473374800589821771771425121427310035487136329893517302008742008826776207820521659902375769869189570843123500887422085579337739330932577649559411848071742969471514408950192679987597491151270281066357083973355988443463859587361025934625124323321192615727944319474406191850334117330545188856671201132477966063998906836948719815596226739695368009821954381476647038857520187344447197857528303904701008526855246418438155867591659758086409144889509642668110769916369956819588198180436774953399939960923648271578644332626155437908739161414802783257951540624382452567234045713916239945722841415613927269284378137457499618801914278289014559287397277132138335857331961260300245717133659180475754368842262707956607660404654282349929693286033447790162094899044272819198759088246888198322428648396127833782402635656963110726642157309433976221424480046221329492249315354204177898201019784684675686981639316909156522787514399189720681651608449359161682921539668786994970890555812349756196931151464711597726114348573519356425415967531029258200830993554893540345604853031825051673632463528011793877254475452820453859994065647820045019900455883381991554659800157380816995614846719843849334767585849561746889146892075318816020692417848925824371976954769945642231850186155003587573192741119867363617209804553823618781397268905501982960418271792743157065190717080275686310918172169159703209105552009649455806824329792957850176578312189614845434626880148848242746739407340859862649146954750303060195324511400277306885178798224194477960880582042952784642678834808998558039595935637316797010305160794893965619258933945144499522372685529887234174123477816767560053708760834706421216415696874183532583049526279223653168922453516276696747981455721699149979728519905550246743379968498518804663520270059152262567311997713518608759371013829138781885097728635770277276898601923565819870113468232544016563550554621956828498445601096534958200427985907121183965973768087464515344156264498858230020569920759367525772839764915095740426580311988761674373427104796609755650186279291538367265712054734200234679823756226489023980253477799130341417394850510279483697016484145447999099368571680987970447891373049786067967361119439786029368879069879413276859196126394318754604397914188556108240260537755443918032853649966321287879621445655407389371937731182863293076780312783188113277140185582035749332141671031335972543481388984866637157646031871310159699135437186073280195771713960071022912446224930830511359848408514155285093068221935766043313951381790319031617011991738062289018349718649533106499571391804139242629797479596964372562865283839253813241275319341872822567686313296532649601176006427631800122538479194568290859947150875527981260621062371842537020182671129053441138131409363818654850388669427381981985722141539621764992037834868232881026494189286847812720339659847675931342972908869950490007864128387730109330329283908024346100164071250412957298993381502846386624353233029236529893660896078390565797334877079145843986486466853784462307562642915511480252736898621540230548153379818250303920136697582363822803095148311559413870653566393358692640235906370288746013872323543683398404449571026272319944688783094208164500642985121036502271537997786489523156723517488333545063404731521106534214407043068178562394446494870282381295904692193082772925156600707560066279050857168423212140408573741928267515754050660593922442444925628617799781753655125556336552441879762327493104872417080807302138103700659999836388228035496827906575588187947834546313077905025487897573561690386825713234463779229820811773339694327213121692641274014708925319346596418779888925260901175111512940606015596133809074589120393132620357182595943634520560543097253056858732571254624147054629418853921313913283421443667307694061466602360074427186164177115131323684788779182116182512084358596884114033422143728259855900255129422652677248309109777924279239550059516233020129199620717177601979554590540597573897943402904809240772446252068747336884297618033987083877715218727718155736813738155912035011411564976723146748957666140393258989059003428141334194052148241956137567237458933452062379886565833704942537379097141858569423527949691994213847578497176471570682002596874919645395964864945582789101742486265486406365476176234973224138434766504827844462438076305904686113063163415224625731892823738725460808254939273205421452161758475951657483773410059677712296528015240159614478522899171650490495404700081572033847052553021867926258144598241086542599166712491332744265692166875897693472391508154584551902979942211644564969094310964114419063516909320314904117620382431029325965400518165374655646659154356593322096749650341400568037861677898252423013332138180893417650345894073214990930054530223780757937430552232279728459734059133129293660644792415896540856294248966393230407333804694781083138163622775003981314708659253131523700634835081708760346467369691232654696237510640867570537051677923683364562786601846030547578732613240832900634985618699026851042118450563596353634550604679858263299189951926097126850769865953125086033352467005313183800022452581210558337728805717737300619746848893077142571163916496408668962555058178918418857511547339781107668383149017168504607726083724626279398227003530290942267393913308893282230817099582619538424751698829107175953284354003839192691855216645521647147923206929760022525641661970981816529673794344990410390688636114228838272441257414473426065745836257022736529722066311867085731600824845507928144167744792424514379098497998723992982371554746376171143504982426285856358084696136745542401310367342790706433307246354795621246666055393391845036827167018616834106593931592740911855069675971945133663058340235150079645775039051211744344772142025159871024106043323188110007007914962115655234526277923392416320956402438188600185291363174026806868667760178431043310850542047062545634778276793940206413828083980225560126427957285073310786308903229594839287806870421598325469219096618344980401034684452487269774904333409502990471558638443980993361557632297006711197437203517898187337021111505172895756551957314374240117829869217472706638571124443838908180785910553492971306599639236787658030966725114827897533881594641749074117781273916127181452940416858528940719881118641312114369858882863632036335840268460662677171700186784941393837826024754615967895375444788773341629359752837165833287320261765932623029051431407867483805693667427986218660987145624802691258119345455156019488448313422372841676485788265690018057256586312266710320978604881293489873272026148516790067827463993892674897545417628164707761689659786368920753941748932601755567998322707913583642865765550915072631847341078931226585629382373603468172229532843661122401245267286841214886944177228445591666863566688131877799653760506085827725191503993007211041952238410995694816375325783567258390426310365727500014351060772398561679871807913657590191672967932546178200895898975455665518880613900942325524444138022793404074434253990048563769719460809151092049691190169039662363530266995631252473428069775637106230818487238776542720055980139453268409700742024590125090132074883244477890711184650452925458030696554860372781498521674854993765580922624889521550420603653936988912762072792411802233318957366965642277406919989467440728236565355673624969793042479026547625462753427396467431170044295397290859772408334369101613960549278106208423241605660015592014474301465405302129309492377375710408128337773055763526641777439422028211588640793050548234113490373626741556167298939285754919296347044729469099555604547418756820501665773431051521393130433124399123195077928050365661381315031018226979362413796810466859819250959240937777019211896665071651775933177617707482631889400828163239253896793830144151723238003941255399646136475036873826738446226603291528155600700241022671910896856754456161598556958176820125942054400994159020955922459651018751886262657023747590317424045523929217439053831411947352937978617041631809775256422065045654859678709653852150779392965820742244437208979940145604931787953010509679429702775800399784511681768420623350841041333198328131541528185816906947369041254654130078097700478387303957458963553918107543299307886833314117063484709789796433846712632984804098212186194981252688398438834117936116627321499184042472561840488241342106252965252675319407551712391774200121636743701831894244158837575403851056383336930849911266710127442484772113919322963345187247416623352836944419381214161046292734179967376958198795378465672259208095463014394696496445882696015043958419629177354612917657210157551395498679533045158098636873662200956333986530499490337393202027796021091259153183898452532969413021575133905505404506023028714359312807407172746508266076736129476495353907572550178135191751253598364813640376854986751851391845462963959631031173578438997827352010868852457042644422513522765037003629309646177143883778771205890806806264135510577406685149428360821196963070994947765751663715358331747215564650831841792856484037160843746687724238597265000523968529243646813599384618475859688992370978400863951996666425729636234369536535015411272573443777253233329384751472425054283382113981805352595860411239015528430425584047289245069588079781542131954432145878820352513754379977050600302757598833422637852089081612874492060753346638333739052148322291599138345385213207576487461221183958634070580541561741200379486716379539655881047310962007526033000394604868237831082822439866101077395250987997830034185550503712010717618279381273302249724786337592543341756136685337624486437833441270494409190955503426895642263689471094690984590773656700611304712949012249568189623203129196911548461165229814414095197578059141787819440096997189982427567027068675231463118521551238238348383855937043064613575076023365576667851740359605955854100565017898228531316913867889955115587039206737827153651681814073078159849597252480306897013178639771995781220443346255210752870993522695614549611464004825434766262286157950207514826689980682586606822448727187796756114461027757083127629893348231567129665005744949319305089310927977964451266432814811784026056100226892115104445817522582649347274563475915330873933669878720917419698444868393979033737242725298964222911348952124651280649690371776190379594080750627186321935025884804731149132703464463760782812743344146650232563360411013740504798923578447924782889806822081639551559853001168139441739151199722358160212778030623690844515895630420468449644616179319796894841220850869143124466645103085938234801373701920844617100006997398072535688861682398668284809377893864985249381919085931223455625855439873263145451821080258351208200331718041498196046023968457046316943223837856600856505992598896600664006274807472678742434504468937295135533411491620440562353743443915672042875557291103126466133314214686444709503661293446966009336557622731829420591934966606685518228384913724352059845434203533597658043166330768527930734070796841039639836923933065429980954053119555447784315181434291105293208662098455118446119741413516112810614738443217674096358586967294731053793625179525119985739282603949052699597209205007790184707401139824345515017514656875521903850017255801592841754494894239773847490831828092358358217491601199766602411957830247811287023628531961846301406733979063831433834354182205056003566754616113773822666521086323670057424083877604528131036066124162845637968337741950214608091575141524313739357031080278003759620137181311401530183053571766308796818350040687685138532817389264841861551477402096286044378939404111851006413038047408904922400815476022336559574714200967003860781278969820458057438685876510486594266465745780624223341214411868201628827165098708847516973740804877143786191412759809801586584870501947081999264929668520946165638185136988300289814859527365433863298890577965997649952116303943801692398241774562106357633358581103649676167897608184994003905947052786769803897767615585141946555437436086955114505533079748924497557239000364494676808857218306383559228005238165652422434501963732951837640201276892847421901885752502766491712196055542806059537495699553997617066688095050438108305048087659937069683097694551051573009049621514917008759663361949775116947452192945083435077130994944031284685424443670484137904706293916378244580511775428423566772143613416459908231461513263901754584403226815488840001638748946163225665071066055545002249292533174888869466126527902763594588609958992206869227317590829303905652345582283327611790276573471161429110828355350521426121219960386657111589734935153859400690829463066259637890426487289593555636621186293711282081540985592747952055736687430759749941559769667108589313941530907937569676157270399303725502770815885591664469749864706616228748137594303020422508083505767837767786557235224290796552960551569578984956695408560361450977767364519647077669412778536729369271093218771282258406425747810611181517211674927866328421479662411894692830439882891961405358679011463783822077716183422057335762532835153811967816250048065077824616909891466842924623741672307398572012024068792108782954017381366253072453032285145718738279797352042443644814213716996709171967835766554900809048291212203804073862440568933037984416885801021077215933369681603985098397370329819394186581510627138707931328989643964498694251376677169411786167427438129950893421162737735244827687821898655385430094948308347675345702184967171406156628311046860378024307051326178535099775670203108334672234052995477608601789307810841428325502428199775991841872656106953125732635759266026240770888075237416908140810030269648687608784213327649273442544642215219289797851003074247876928862590383750799644133173453160683356512721730695671767505016027413856600176700578850771647004596573350859017429756130351068393610220827391728021636845605888020052286581321313233276977869234000622955120818275368067364371080877215258391332124172690542549702956176009745194840763610715542738183478599861527986136904385507676900305979793705238415519134986245317886234726616351186800721658583579008844267338813526375103386100567911851256659714153831465853057910652896128347040192774975829393927921567960054039455943764620511531523859305491334848778799858063431794887653430665753216917893703232579298917041923592111637241509472082148948828477786185902175243743151181499430698692704599069112802235272898863458858315911813479479362934010289548762820896486643832369440521619389713919771683831938948523907334284874988580717192509237471149398612818464116917695283503042780634568682973255418301401770229219327782463674176749112346525872651218916946757829530941072779320509993944930524729810844822157645867748548146820511737263605292144401322143241484050313633022427304433034184238990404746256115270702670189224675966172734829065257325758184116093069216800579525358362952823399768895028753423387960080422805962357329320673971663215076201387080314650825540961158886516745077822537015363372010170295270893632360595377512842060522205678488728342529668451470863913614165429071758865048330861370263989836942185508354417498387063159206884636298221488835067053398825604903502466324430634607242923903163312858185402731118027045050337984438179955107420591858135964016627760068297074136526197789977761349337509346889735506779627097661298840655328982409497460299991984233821010784491318650588967429127131968077358891589150308028525411907585030458238064357767668816537112313136424926598199653000930423092876866064103701696928392780543382161532743714638151631393079795344575555190142115915688636489058413304196614662520237731139287363926200399960796765684523367162351403612850641905658317297549384954972195162875918364045937108220730661330061904733700878721199309236179537614299532192259305776642019867223519897033132189637709949842002828929554822540416101368896105778037918559648733190612792324072496951484443593253263461781665518861150413596939332818306190138999206289506732657770507776903032804577818834027987169026655258855988062721807666074778916791665397423797966664205979025144156880884302151145653653218454541315850333823323952242681180528797024835983494594141340951995750572171068383990231699949945417668128186799824352029188430638002253286874604111001442492385040946947304032931572199068648251998580369195235515770772173956806367865482975486187849285795206855225516501636748554649906622577756652475096241948900720866239022395382349299629136559092144684060034259356499350695819414238645551036424894965019654257879518899693062407639822648044165670760264740685553548583267099180167015859396465343107508607943855956772641475402834929154461980195933991027495239520072695614569719576722882648323232740090773750866381921343926179455220769880489034533794093022363533081825701943724341769404682600295329470822089730236116570319522642839177040600456287744814480659094717418726928701413944497036790183674690115121602405825644749780103876217985264532665654999969177203470054966968549438317556274241025005719870189406075622800874565312377785582460436429034364962230210598326207832841945271486643001568822692684673962080404349068916765869547621793850584580176640291708980290094972777070849177530529092794412317556086463396772296589877200499318244181637486885821006734837149526910140838330613957006949022237570905750168300120870376166399905845598293477738178981074764790154279581304603200326517577594495033237823812099481496210828995430678767130598806463391895592364512635637804381554957557554157815887089336758460411397673346533040912574132880037492950378204922707212954839404280487963528529525303923761136545177641515300108622658026694864126804452377118026530026555488502536126864195513126757330816851597788533253272523232855751885966624147887460177167380860244658962790761176090886333595821491371399611691721740480725324196609138319602325631097490570373697894822588621449098365090149202268861469468451082217469438281705488879322547861405632262055793920423271650423395034247256569846133947890572954416786926827487803749644139783131705630370659125971514009973359385197879574710825451387915269859948798764938049847055764824353545276169889491700435423512989249945112994684051353397186637833891246031984231162493141963735485101300002639307059748965343666596984898742351808291300949257508559125203977119959328522832206727541249906970379666188794257773360964644380506083734927168367995699421453069190946068297431088844696892953671101650021249895391821642754480221571002068839002257822520537450672099026325902853428071679789187426163946550270857885743498030664951583390025571896561736649298061535197996244549145871028631001509031555857698117655782355416881219963897553341346356214975920587949758207281016437935370507998267988952149476359382279272066540404390818255148085586512412596156493188737745809218559659311053962972141570971359785251604275624993968333995332928677567862965225952588155761225353254987118438305212152151676660693651250321773597544550235142918009735502612989928342077161252470109799538789937304605227455732679871207561795458614107868143366915584969503171447423618269420581492103585627547465158168811345979470113552584392977937877389336578399935518503988551237523851090951038763093620843818057926167809414801568611204844047524396792269906581349423309013200805443836943819521583028418703778513247296736231614941307255784030982401679730653431326861357308865394847808383201527899626494818191671891407661606939710444967654266444274653432430444310603861148667999780251654627568692426810823709032217608941021678547063798607056961096505846332972992608189379740965268879733611185798131755114511294945735674252588463224858956302024138658531282044317236187371000668167934515299251298765233647848706009706096769467615438403340328415401614458681522384839709290088727515689490136572820191813306838978730253515159212816390521366699988854447556896570611905306691978516087591323332457606796041746202496473626794471241496850261327879607432303509961735146095522919076911700575807824561208309964811421608394894844173786518128737551289786199943352293373776274933743286465331178540175696655011629861421416429366867071546806147572152185931050904267356292040101052066372833704428131694507141387181274420401146362800151924981255455899626640910906306751822714712585762741575720274251821714091262893766508560948823278644615020687469139321935077079613024353723602853532856984011419625450316439979133927223823385291739279719333644295731033247089788752708366913413222883667506895207307399475626453745153133337239566201372901578592731621842384202008316931591621451725412664784307188147915890772544920275697001922519067038494159143372702437130867459252904189645035553045446182661520285793772254948187409187930425050043398322685666163069233750247222582052787352842391126360482467098935723670759736503149425245309709808967822532756679212414854574027698562476461265341797601779992866402494023223883948460728499802725778383913981015407205743045028457687577571624921306176528675675011582105032211248457763594756666953785728624824784222570994845680153120845955901199413396954452123929299919400422257057850167432057210096602984760611533634409613422313914872387829105672514805669584389494124131264893412941596663041385419358832560087209849321572004332937256270887461225918379098721601578172189974375773492252695711449780701476593578773574402244974926225780636451139012304766896318446520237826474302678351312738861001362499557286935030481525888904032527772130261150092757583199471832675563709417296543773365441062317644277359479576664327789635016722122270631340713055136414920387609270160509559499854678589293382472627975908355112287506344646716496709702191390452741976349923687903614335181908665270343021583137155869982601462539073168188723071280494193106853520682136126326864520744263264934937548542989243640905400557627827670971336727342354350837353662461948985862244404211901900442613923656730354164234992275296720884677859207352560072927415256909030120865337060008079551277108392426043781836792937093989844121995413305266563502697911783075698721402425970263788427623823872816823509002049435690135393474084457518073793511764743065391360442917313556746923700120298098913796742455328919400578489097458255571595890262254654034690134958415023188010280213231818128271028965868824177020831607199912905205411041745537910453944987347732915118005814311620767525823613338583502580585801362644820126033896311104859848630680660435409842895661576039705498123016092125356665396238769123560058407463536751084467315511775379690518231210903697742344300719977031071258140613516527215898262517408372497707996094103890837546511273032744115028387273145873093938128762931204422041778898881607315978530060213769631205012433391280288426904503936427076753580818910530932279142718007726714478643614730085169054253360149120323201512802623900608509949353139531447612389105181907590115323039519805743257408366615011176358414199336025498532746378497728046838321046437909769295365602529616513586373987685784616952353011689931049336027936670671051428919549305602939238188468996212154131660406433980542693731240931198652810770190712540076088230331584133782518491019271071783936206182990995473284487451225951945634324002330595031126762801795910637193986595871139787601709287000256593031440510522066147943262782530599790245260743862346857683524140725930943873750437038126460071780624209540160098928972306811105117366083639598083367026869386032897196942693428891440971610239496449957086887880003256637531956434946195587018262549387925193429230395822234407674234041188216475894109766514558780934933234345651359572106332448301612016193951876021614907229822916749361999738453401713813191302733240640322396401846548925450765820166231882107087323872942741026270253162932629411130227658181663450090562279988817884513237079575447042655849835360941823185444064696881522787748556060383397190012419981748875107629391896779735190754065377921076731457035737753252017377482716382682614440986907067916969335878446672158826392378276719033892273941386615190180242596130801256779765871767251893903403821065347401898149504791874696116147433793819061270798359847411908260190908889605665096335359285301373109950214494415057450128578489510998860249542452873270083510494083992884577577521324709674497512928057099786258776456078353010198703725854671114499401582310804988922341246666484345355644882156804839656896820455976205982857726379175668738765803928600907545885422330747103937973365472901393199361361061109019004980126627495024819744794008041720122555333318540685956648341191058452972747049783236420686003960824397387442945900017249845102252550991701258518354825047479466748961909407128118920978249449602459074608146413648289185727570224565033747467285159980235787778528600823552721422796106691391731162073564453801216933176705390499490466619993426555199300121528851447058052956014900275729927582219369630474292179761112247891121787730874781860001772842644113223016335690670362520500797182005023862111078696748068489522460838774227764902517820263482907108942491203404644222917174683111303389672064615752101114943894709468249568126798096150658014274399907931820949921858331031166614739779250809978198269096871033739095383832639200136438508250383393909079033945290003599201682317268797447807193133675206333543333538586558376879955712284036409396822033720150943658152532134584836687618461263310871354150684692139147141995024287956925883375329444348077114874665347559348087538751972628186036237358973820056682447962562634831984686783720217913851071816894633097440648228893041347964672882994930236808478009761684208065903590898201113434962998596757706599737786012212467297346418338618949502839856508558692120721813639777387296912543654212860064580744805359620237075057476278661679929737443847679574814711935987639416723531042013264802342187427088514416051757173141029398599138155235971249863819621926409914357671265016886395987992103463722065685148515073911883024175026717418689104153119528909968957173601383434022152415984162082023841832290075422398790392317294191043421325756075885466527866348140239603201310801019333179922966341852282506880739665211762811342499118518333334149792781341035673910242648266142539715860541204004616526787802503266331898152823332691815001743488875648890242012236822624283481154594557494411314084675882678776918922223603671957687796532226478175108469672955046704939316018576623998650605169555157327211611642122870248216993216876671231293377322483765499019871412980898771409957119822195213981593418893311497744950853701916365106329719106059463101522676402911824486980721646563749708954032965471216196757277321621297855856533338328301107313318863242147644022416490131526155214643111031958849321292637488588394130701893113651263531109911693800436782993285955212922875767606520962627641517183755262756495318065407702889013390438837975254011722817158820580420697992897609314868679221144591277328432219204706515856870565000996229096216430242190042564966025706524553855297507930574938999148083235638421624814049006115930519153838692509433605430292859405842374233141485290013593280532379285073480971335388290216313762028265707731571373070833770494849936743991764878409551065889556220793694993540887696919455228909045789923160129998067821719900576935406650985456859234658985389224956689147419667555535584910555157605027730493372447345899578895030509816744824336413810056384644726098881515129260962425321063477043059197151983975856159225209613392013537912927240014993969601869270952218852719072112951972536271385681965780871584072849956499429956562360802762936098308203630272175246409483033691836486472009305738606400955649528120430931925419812037549225320541389354970707724966336052958928785240312547699869572735011243775978921923373726271863318199428854356299325129229864836757208135888900720365180829423961719148450258627801807084896674155279030242726422229716623077868565190668837759055811629352175931141560498155013201643155895975137699526524676384714154939116529937710094393296240549369617857378845661182318744441030335723393641617287183782927076642211502922905618787357277983280017821371825942763918725080344839332893791633570907279894178141728541190616235485411427985478375359989221020688136527318513611189016716698768557553052265928522806738905721362838410657191291790529749637296319128213436132426716994808992628508779535950066183827434375889663290718337744347551562649361841627278995289622107462852233406154071796228813402744640134008730819677849301032799694359660302020009589433763510165303771597571875946456686118359259247767381005776843045516388408842253863365775858203575604090730522695242309153979997269910150608035581181548535640904357284106454162472972856382390380559331310609891960862049207256319633690044758257013984411397504059057219491307938244263137632181665908689196977855744000553543063552543397104704150427799399033306383556833098744204154658560148010902184404673440256654100071622188879674712116869836703729404535616019401376656261305556299106620714556479252760676835998892528056226133119076528820951922338779456820754379682263854485964579160289149618590634603993303064986634659618459392476435305762446310465070368592466728699087686886937500129299645524736208125306467791694038357472667153606067457747747736803620992545208428201506694180958679916417796386670030472943697272648422081873206857978397782982763378065868413296281348978489356134777919853562855543637824282752886794499825504745009651099641098557371033351640072753736555167101887965999351978112344444500398482516359417443161999291167696974642237500650113098657440431153185559958106931645295415238217634673500026153949837068904604487625778775524258976293593985443922352237881417509783018952345376527740656503464332453546322774174642721284345850494813851500344118476159442752469419803222301477881341319508062174151252023096830803102720440610902015000536309760844600831375719366680221247878864686298288922152975713600350348724443233296102965861000507588818312239351608418122331044642178525793594073630686379088538772751842086293712915792158554293380582306279609934172033682045871644292523619464505579533634870156003362763725922609046886623209586837008147910651350832499875838064421441287761087772935571330065526252290427124573812977766636253312421065014421891620844689621306911219969476382542800061242118176076232883988811655691052753542320371269203334169704504920649918253784825088237224059759675926751411027820592463011448359579790304776970235702915823614909473386592737081406781067181560524242975932854277871724912853778062151188559941673971561715148742555708842195275318076150321327325501895653261686219947382646257405960809128333878539468459726094272611776699580577296570631094224457902444471943134633934105533410647766406302100080434142368733833976530300072147724881628307601654420422495715141204657541867543750574352737562752113202488154462030515916681245909780727027687161788222696157045915189181821681916373876844733173547855534584487826464009996277897293728476531610075667283447345964492992704388314931108853962189714727237985226391092800539912274598849909137340880897759488394042020781112450820825828490686114822593110148371382032124920773318496777773775552154919703450795530105512797097156043203195827459382868869571821661897726683515400701129881671343670623074419529163048755562492945290880712416168668415232298182932384584413232092174850068481736491183462417615189216181180091041429662351298430829398106795897238669868078997602961451378453517249694143039919946388039886956647036017885386228146480284973279852613873038532179654680706290260908913937948430726766360325094569156464136238922533155884913551576338333675285262023457254086546483233770126908017723001819380590467778505493422865988387363969540377365645206739318101911591301808410036688834349672967302700990856635984280513328842328929009939768266424599925742776590050186781047239715133310695867371591447183550422834822342114792862080349014079749656801916410669420241244222017013876848019877585008163429336696646942407291998126431377402303546922284223031320431632859184139218931842190256598770941045413006333191011041627991171026698467325852207121702078700144791453592035198967630726367449656170532062743440571177770476512553779765586171831429242347912203141166635625430051466877350817950095630404432453892734839956978123236846307534529112876790556520452215261971521618829973453913929387430494979043907093905706636429565244027293012589958276211804311551419571317365673800595907553707036453653517925265824504119120155818051650549240950290016349548899240270828309812052315582073350850566520940513082269750359464930561631811395537992700529258627064922973216749692581337011287488571486315753354007770849786826364975636645250243968244241665787477625315513998501807372854321715214958164986026477176262057900268767270119186795752701091395141687018116732528682224225531451734155276423966920773508629798977795781401914630366802954557721172665732869369920519494982021605675767096391198657146559785984751251366235006703077587799336953601834934678206441587127889386185872630688372578790128443819074839548976312982459936052237161674290142912931272273967624332434063334068325252437113021512837233115704147558315455303958314239478426629088527770590375026149335665466459903683420830958280457305709771962085694326160589499020567687042284900734078759013422053027293251269370175899107555009382670144745355143023136935608550275269723573930239503923675408272485556725216662707834562947276638468762845923833127924136756984910246039009282972247470941909967006386120110217882795419609959139058262475131980553098108805721513210136543383334458405190211586984214991274032428682741666557208946960158802527125939626911566775499805156007530619241940750069086967200532032323709467680892303920093191350868283328580907300199194589898520361747790186263418201440060798084612534581667196191105201977206295452139252187249977276705626687146261815429403439675778652965570804891842090461700565619958666937228656004698020056152969599138911473000797125358743938556691011069973848604336210895357223384217188957571696601705270285426122765953911961410049471431445545791746038450472627401425504306857142759601787023289868184464524790942517313776546546032343781362269919148304935112160896036174302849732882521770378069886696365498404287558511381465379502003724952385513642480355596935698386477267306480870266654857774524725692537744848410465269623566500391294056903801451263785531595064922901674225537407710200938552135323188743021577144067403905188402385624938927890780238662832272014539093253363726096766638614648807007573843291239641950753160427584404006867030858720649137451930809334270623074276038093517524338048370405469524397962571232887945253993742106325125907735096216861612172016322063681900088918380628197839828955868181424143861493084369033054491349694638938919169100024857301385298053074901432645287307741489077361926546695161475576699091070528423012713229826309909988658947488156341854852493946894099193243297818968325302241406096718111882002411391183055567912538945812700377481856058980406665158347223243370624911317557470588905307107667481316787578172017867812435867647713301746603578605505014185575000866948478728636164919361089930672429672664364463833951508863957751057151879319498688781032499103791888858214715274579617375450630361688774648533671102980642918420001989372411408752122584644480088072168111609578063460105356143914232320897000054722542082178365514715923546093720528477316682870447405610994230235459875144381697047561918614207955082150828153853071115381782316803957051893841536753583494465962701712222505904449815129132316408013408961581451932009220039520519180608103014942538872988260438001894639084951225641568958312206514904498660254373535288355849757089487374576268738250050505088255849233437834355340328848868654502352546412306269079149000882392406230752414015197214920435883028428300568725144429524784790401899479618912034423151611201429127425277362675561807027210915440409865973758860194062746705753221957077167758889603588068830216675211295644206165910478961647201597165550570383816159957582161163139518879634419383694037430893865598492727617077959429367159346329134181529123786372703438044458655045988947605737872351500769825030424814318803892936369299065550586968217794753868700843365622960987113792616491413496231250276480045539948019421214030413144634510096580851961630186126592289215473373878290810504279745038154559457505564819076174744949336409000609085001326297796797535914491432370628873076998433039401215139839269831278611448108280145559081649624634484329528664409371914585326947479979915187616911329855533668780659350544778505854446696174311638212436331618126805345034167137831321075185739351897789352242445874854311757939779928623182172381499696870223503907326585904114436848144190542426998704288458505332349634778226821045367780334682200632015025749388323226014177136662367377875183154926390964134611432649044616080880791203390084551134800715984808320991983717988337693203203724378315180212491476814847804247333582244866569888961997155793831411397447995918122440618244877813827945959909895700387198104122566345598343062785684983558332949202173315508709029382152841932118382827633214261035589857055769897359677176370678698350191656174161025439539290222466125887448187481118228855267715799947993301000384768139774222693725079546340023234379461451248517483384982260289678759924102628353068837006485320521424866032032179180220762369180515236633148722493590432705016720668109607452475365647738478069268420823337857877123912760484838128464827226835609117812901613803778807493855022408635218438581156917210803612006772605854309541320975343752231172369194536854217669933256218278035131242047195935828478766218606085664539873401798124171929045434398640395253128408076561949340403914788409299991024028857716910549191888346674956725823602106303734945330584423876342928412870481149622546494283089637640676171248986482421311669587082613915754015200603374065822445907131178333232401875803881451907035326894132244210574343059173831008788910587845063320577784814287394743978810748476838526770351061512538713179097855133802361525948749110337300489993155454039699204208507912987299411914670018046533446037642338024304708385276554296551536900474098198846699394251808298014825858702790124580452930490193004057520778278266509787703394822124558786043169511927733448850388986655164567104897345169045942481520811827904203204801610466042165609203414640001991079822342363247794772415853772674344712691894531535649832870032487340109069483873893125678752052860324209426695717764111876493731767127657147651530836223758248071219747075348680986335074003644741730159338419757337798883559547897239474733496720883662651608436966087132526616971348703743634981881655335284741114073476270617089325537893650349605006277580842592485099532937676379450992146289873584700063725956597843020743190508139268754470377067043899094810750551694930562462370921579075260088919877848504198040452369031239359405818457819216387085781559626665879240706328683288746016375735075363172119950196672936262697401647752332541042737316597918612257488908579333273210167326525583141986275341387938954604339092773995197558115910282419586610982950023220260726739404331539779140198564124764807299233594048430198395954847639350907126272047666882480154923399237522800768140705936052876803796410905249114126337439954799725474854381339043322648259403169734272541241136204662661544907700229206210606987132832112462359466614639439211014092260246757989971203308679486792696936855742184165719551575718594378225174158713968111860677763985731186224408799074058251845516616061405175024285807061653412362649156108786163951869743506478795011989036354930388404951671672315351061682870798918298641719895837279650420075577382995645480784198354462019220784147778797498554054743926754491645271098783289178251561523357777039945627572776596846202936029920411394804937840891271923698007653773993875871082308572887895195633251765831227364440950032156942119891108901247034429698297933480832044734947060744073763497083370126192934964470684659028598404569809503866131637168058635779229558265280814011286947060566930985896304728491203518009067772850341322128668669009772837829333107850749542183594104631069885651781060079395667576024078980828766609385662381565708703161905757795144357769362356788889654723674179233802814119597546621417863668135290784367266498613268379251232714713280219554735357872245609718012492182206207807630193945780038373143860532076378311480277555876549650903698935367688152547273916671241702374641116028025028197983674472724795757627269310954074945040364478204035303650691080275432354771873267970613559585944038721283005870823455760869441153649335983320198398905430507710912634326405326115875815393498415724765560239667404971299737249107305199455114981088071828237724686094839590678624021572720514461814178027548470741694905967793015691180546130510267638450539671296458443005271329496350010140846562995049193174333256806559745601609096956515813628920084982741095090149995426180303422017221581119856782282611355464543219480617055143752715170369220327133864612887536346978232667698051385528244476322963967999702977189182338017510093987778102763245038327280863500680935614324359124266939559008475320413162047642181200377288541655680813768250559396855667168723708322293495185309486332832027825253041896912116804156382201738810623579666043087237838826773724630102850459367329065205599706611822793872991731814328511942011018277900831540490149744999959580675138115904352291508431712002243964676389491773392293849570794640832289928357706841706487502244635747670905166173770850214915538075884181821725985301626611021277491225083936089463250067610172634020393406779488979123680329724347719792810818728387245600520056433684860356619721725962786863830202375828262454326505865638714936143842022655874165573569025826807234576706285921394257679558745292111489795383767191870929712248347594357101435245130289078725117267857704911211371660145155950297412150111170571690023794305193870862153100144856682548846475178778653001270729984715034966712726544955847717570537376077756693044132831477006676970814615866022916650607383589476672618303139750944399933497948241402947513152935689548555264152834980898758072034830019745493392138096047537271375076494816474152598667103323549792123861876709044887428359265548203658528497829884437444259798708153877886424910980111398981185765184148320292439505041942335154058963335466270558540825431909881260846628128312828584538951129631573562499051848880814236295898902569097484286810799860819840725431792065152865072420295156526551791803579274435342110468015001917963050213790762986206423482733363874634963881039885462641412701617113480741194252899484841951191414848464020651737594732706220060069731140460936722735288349486145588645939083914207425180350079029757326803612541865719800830320403528053164058912714036670496679271211942904983010096732597421870300317454002326371247221545354028453351782270149061920784502774860111416171314249240505084341194026991317945246996975598669422157287850480806530188511709457165977484682103033815164944178725248174992254452881629892753602427844056002080508446102525841641318008836403080096767488118021206872900821380758294638863855412513309771073815028057960213462240455899279047305386586082886625018540802497105788388318080892337538939099186693647252567408782718290975968547370724068769963781071697910747480433747140031180972618456746655816101628345333938689869684609648756686324780744688746274838262234291894401847113418086789601861313709070092006013487758638834233213475066526789204392584931275612860067410207104514920622908936051230717044756920372575369310044122653494288236529879863598170180793089991070219683319382026570497896148243688011969067398191698523311209975887005101650570586045648716992427048809422719499389735619441620396188869041499415281775299277742723613733202192574327181940285258793173380458886905319971991208295940882722595012975240927271800358162649859838035473283848810269421664378290301386248519403025150286996504736161026757249190568415896999552599741156953470465803285222784200481908406434919313365294659081100633498046766138313590165457842966251247722495417127255971498682033261730550752023714206715349932192502709462870989863358571557202203992630808908046101568424821123500849209211552089609337600211112011008768883535041510988115100461513516652969430927808083290367720108767893064470499015103603040984177043437832081670469092688210030307519039581222944410694432416506832068839801610143058350569586223234156653929851975001519580830486703808480944274325026007221870803697163059599127236787938017123325620183025442042129597015295010125086541394598273337094688225820065365870868717104604990566679212645838579144221873479139594707256495092804104811006452084130301844062077973396761262492519183600906427253683300041936085232917510918176053696886946557150382405036739264820404887068233647027051828804951765802011784928507042799723766762273573959943736264578032919617961267231711830436476778553498157969267131965744761161701720085912215947822139500354282209262130180010479719053142070041942364266191076399828706169338131319470342457796653322485651606852897057780179555244498917552610218835540990031323646546625408012503821024022146432083308479803637189004799764562425740711205241059650694141285968297868493902697469341662550051438333087170425333403802622423903953118119662450354336720881526897103093672580888893720951778616905305106031193976039464215994835885982217871562458247652131453461287921584444653230410236053275921844126608429755029205192656965128287761430245144051791694801934558006929578760081248237449205164159197548075776569394782168703936945674469397187063384829684010247593120664871553658298460136558476997536548325426908537386853866723108746827278254649082061842335787013791677135729239969408503329959840599407560567655617410303640438447744589373354471261714448510021348612894159480063149050613963981728709233612688965720291566042183361470284042433729036261955277572541062064094395037167176143421615025772537827115553003070011095362436529722323798210185544997769486420494330925346299841683717482621112504548098937010638707247579490174663599409448515864770630944857508510210325379620430898666199048709548971939777505593856410711330636258534430406524185938430656720493514211769407020305638076867314875478513834901279120422850514582145151568892469075620896143247793415539181436456873133988004202258430393060314458446420331600503543423706641752446818727720177982826900715691212480606826615044787968628245222399010581287276226199545430898852156215270358749697752580777782006578375532371424303376921851938923709739393398702648063168207078229314158077268427487145161504035635063409947106920011630839797417233348198001689161966176212094144097991917563114827071172186440750410379162522709615889189804175590499415456944001557921868036217617805674853777016985648140192080272614772234970553220406386290992140782245338354448754364505787124882279878123206460782020016390279208574532647597987619848445149121235289977688960424271720114060703316408877068704618559853154394696710851175253295962523561638928376176602386126487561056943936649597566568382122228115304979414584620481626186060523139355920811476699199800020725854527217187284588027882489766497238498784539451150554585386997219458787215066407714018879442235264516238397121222505769893636877985071333708188597669137147529659940471585281505900853853852758773224876181777725367435796620851601390642118253490617804894805125832438310293408548804501212741002975992848387046345820535860368559182178366357433153723173652886948087818408063025630972608027387078845312393448799361683441998470346883723987216801463051224324658699774234797425109158779330336965772165446983510533736038866936523121937401720851009658970710697357707092184059610712466806213731815335896382565386772852827123541360522618279700379229100860659746714732022001851444463874979439163394778781272367183284893632804696068924056252966064810722481335677505827138102029251483883431637431895328342589524165055313117163346082724854460392899606025860765438481835580182638635823659589419243022471119607016975913469708829378931456349658614989300421811520292643587169970687961108744055829768068244557417070106861758761800746039696247703864865932319948529815982422643385477402562235781983888830022186987635266066340546667435654752680367506507444243119014309183945482939297623139765361572549921942226110741491150332100509984143627100827719013117016801798365689432700991089689884656226126716071922052435642417880706464455600042801569980303884896408457465388346704958631049781515651781734406057952731698759017420152062649145775978490770773104119355274207714350819237371084761657853178615130851127996484740122342651717264467735161949550909329653438102786927497594184063018229559926174769531759989574682769387377286593049350421789835848259028448605124788611912064133284903642451530414239349798315718006470452183355874055794827991661048663357298487798941266298362850464292992535812239576643697073204506948562208176010671809407045646295814057226646964021360253424399951735666556460258317358246555559169694034620227940296456005238739457280890624677243827471741984928844667385966560147873244960246797516358553403753003691968692534417141024405483649460730933189562270832407390401844611109811357944485251319147834165720859541092348297592216328176618617481425604908375182562722072229583372257929882118802512263706723598026127671297855398877734202938542752354518752521510759258604716356710270368053015370300285374301351319001559344964707713911282226843360410450974899059049425256220503376501084142852369315692459124564071560574709955477661367610571108967741104660344407114224231500580260447770801138569872728200857336823177619479646014115309742677316915267328238935323479423812137417369785721012823296628780369287955367703259495168009616380563048111821971052256989464587542416911599607177222275804911585327304088892860660237159273038551767569942349474530491159169465391349579970323705080730734313270504083303556639762079026096938051434023056482877819088303567110879266005267084602597217264705321062789007108614089388573435495674622583093974289344148670000021387007236802876437886449837671225661447934767791773842090786436938599974798281745672975289171068330264411805301276761591989867259100929823632109535557323463704300823028657092770189678752246985513590395581969105643424044864109337679765485330840451614418844017979885963080767165739997649172656895107683586491591735689159340586327044975709033008599018271954163879771750257096700971767429017500127264671908683272464933506072717341744891882747066719262260371992390949955019464160647881225282332282948102511442441734636418259649856290765819998402736286202889409994087259342820784004768115073703268327451072776751794844315538188708012036192983993005653395152835832164215085135727432460299565978900219629396842401952588229128600331179353660035690792479585283370901488923991629035974405430427263247965253382281518022184498864281148774553504934484268364117489646758475448720390921723512201587332852685252001613610031965514504209236610592796283565849195854070930576507595898668707200460841930498701586125222907196304195619554836237953723923701892968244242502234677952442679650852225701807432811662515734780501642809620920082823085671029599577145354915903990766538851962068685858219626902065556410992856005242425284251139693195233312203261237591249574804133915209764136687580205422394117517813647159807855087826684657745555551917774389877239162999092280829927362271287264012598125614202041529601409232343836057410671546231787673403912493246465972358042818349172039116911773490835689506894980374207100977020860252845226524192600687669308026674949285532805630924451569069489186765324093797267375620753256391307572311947883019433910524760536095233972518673021040687778405055201684611189450830899034893641806278648986758722132448963355432372852055717967797783607784251180310734846426570525694140248834977789616824701753025084575847342741049114811488320611808520912569510449233685454775562613210867509776227848554233612949269610229337322626180248537522378673749028173408022190673228054601498149612724946475198552579864796973063726521116117013417885018428277592226552341529688745978649648399511045725536962685284191750141609862360284069260637517413722134654316683822813056449514050111234583628424383329716461116008995888446319028377391699735225945112074075509387693239924421062324440145496769972297894504073584455882419100134174734704265300112202358614315136965605230870432394697216881266343498343900477962618287068127641351551302200083862201728966899929631423072725473210203533143337159238403626813407944292406661843577309662890024457385321712914119205043003644900531865470997828131569749687451955943084480332239390272832023043903333174988700099804761572683526511543378749493634218419267282948208362343908618287392228071003200135622490842112412068547017690415228558147892470197170804041114154734828198347905596423229791836227473990578878237723376873443930045820459170907889864617956337731636755199346300740684301863118014067875713263752751567331421915132789085291597110615969210204117673010429911969354159543237999932708433265259607390449212167015154955188009618630680433490238149653770876964458654154878544792707089836442957208914844311823018870050019884351678365829879152339701632574757117319186563566051252295470200248742477035039488556120280769555353041978984954947596746693329278559610657875377689301075724280918024914956145632640846230951174312585199608052735402825042966512033096058102398963534434818139662190131427334979466855549352114753770552603604971944799837354933518681986380229801494892223193990550537165943072819444529854454632332333028553890572196469067266207585302324720159322888351609694417197806817856726022823623704665654600214631202560101318824793969670132715052936272714460221639270878587178688373015608445779640379077375986326885723545548282654407916020277196974422355447632265126181570757914743828841002740563617731591330453394347594052853211857642402564265522256312191875758882085747774434500721211187183471366422866469644206752521545519814793727811551313801463377330333299948568144472816051011713461600299401490393844147725906501181979467489749349279875687273776553830749633820047375031577231069567829956797893235750714531137922107382244587519164363225565782216226097637897744098837003795420463119249161236907441821287337712848551514524980569527829986511858353479336117784298122611602497448778767473782922752602124667807950538580264865037032229960685713393747398990906427170253326955771899438480378634350230518044559383289519850201193559585585638507308314755956032822072091905017663874789963290512785533442383161709395773329557116269424380398219895611573970384628810073319277252900521104728876015566680369224406073833344501930429323009637350057516490218329061304548453298458926415440479431476926103861998008321679203693304809565838853139492328625376713014326192091606347878618408226323735677653938263710049257492534675113941588134435622233086209684520092216268940530662274097869915857546416354572663043290951117474484736267023321134197269643481677988041788850330083725838411250187847577901365566813046192874956681902032280738263610890015620341662424080980060254939141830820201805070454892884054650851211086065812337651116790456414121249326973211293303451637206762846720194783465076359020674628355134379002411049212166411773853994288382451856807937756095727756000600984322741123096024612795176553532560136136610844577821652724627451297531979098748449112861751490645193928525238113629897593696294167970932404860987650846449314363256603843964856359821712240599140124243485341564162750043112777766122040498019663426319962051485376263410246322803240315681833147205029598861326831665969304751978924371227654804656141835921808430066605274753746747884292777117358676283911497083290755428501989717776551590983823106690334600201315109498683275293674548177591722995555922028738863174421650557081050975515934357662214024319268899082260772965783207516192959820732105256280281164611579548212089872132767371274844782133478867027520283706800318710008583685825150141426847474424467411776208856776218396437528655092406577483471192452569628660688100464927903929827701563460318481665932558786690106162079223654695101009431436776919207451745973390002935117967268987563122661224622451361843945714204704684313360131858717080568167824227518178517444360841353465507682059555928104964743739234887602554094418129937651432016575996938805957248006400580908931119887357785055349189926463056919192459508444141962841405865826662439285327114607593095701383738553239151189768101333590924740562701836926571226978634909309525339084991396228811640742823137528080658686757577857179928968515435317664966394245926142242780156521817379329400994628015106397704151778389441312963135347076938120347038437234951259410632485217859122282328882730487810532932134014361762783289569938210979559274884946778715916011617640682224407035263273754519021780784201568894626729834675548255028966450557760103915091690321011192828444391337516756528189313174635526903874979063468381995383661206680945158330210054080585521052157457677405703541410671357052638323600375560190723787861943233432237890383625418428504735482456813856417187359430023251800622639292656613220184476837874223569290819896541521149421357799489442335360084858747061720562857686980243792170296783940264034293960480423192669983697679956612553640084881882262927667775959706868273041595645021223271170392797378917683723751544588021654950904836676970423049876670766285975261906852161642670642838911845445811102441517580498897229145948824466026345116601371175778420576384011071976351923454760325295464588922807937608355440034241553105600116394375630547175902331113536505383208919736890679202609054825401751766751275887978335151884615824656981954670943577552014005932795050958934898413773542077361390040402654768211894632407399930741821123155696805292594724848877547014294250916690115264916332337816027264524501831620631734327872198227382088947324452124454371019595641059467906892614882118762380791727283558646176614259681737748911987606610528291576167651239295771016714323577884310063215393928550430701991435769331434139942594248519177705653561822125767678040195678273028919155312405278098035525290610699679096346131180847208667616148183640747144458459726257054705372194688587042337723381186765962789115323600811440628634606433694426995875650574660799969957383536552333979530694938627488243357712993841543392841489674668656520112154303821025094816585857770435060416768348001828446476822343951520827524718155432050666780763094395981178015457614904690414929741854473633194926525318434777949666450115562126570193553564226066996295830785796115194518328252970109093641188136922867726976541437903139399800138214432560382446906170883334840537356437215581944515921233649104101508535572306205187226151882691749051108939522255545786112844210587862807203130972856853208671423324778326316446916504478709409144420643169281549414028992428542471003060044763011343731229143314970721671118062562220977162082911787230781942747612182719878795904083340237125767649599021428904787454553636509236775831345352125157127795100766958852457332219916023126304102841589418507772676377851252897067642027178152171534166936802462863373210625379956875009979849577793776674085089860263235676299551826826900207184605529025306164631102417179441187586682771582859162130627469514586186055919695045228503254433695390973890556262170736996248319169128330325704850082781230274142328808583166277795554137115329419704348778720479409648065258678297262855089937124546607082238839220464523817461583542883742184650722114485859308778604778467356194557318409157218886111758701783398354397068947274827242403941748085473219309574079706793445806517018407598899819932011925944911061578343587506562077673821828151365925253361505366626590473167263880212318728103463710270879639521454702327550854192179063572860339991861282513567458561689295374221157125484011567847672804407586543679035783578390352570092876145551593793245167867743723611977905690902916057754055667053727246858298569385957651668392605364735808239459981104785752203759615007060698153634402745495638235622564003702087675442193249716970803625092756392874492811048719544572260826206999658992643524838663532398657711197765729285015635614068213856523948417281717575874482026359025544604739177892899829620251560793898462305115236394782553723794522712913128191375412640573321634432181213040766446439442413404622715101539294832699085700368231604607857960486212552863656969345109831699353322395777534461997655541807904779594796857589601284653437412196861738742104526793731573765623730915241586056610622805405416142421590829690511714075618356675371039530129544559400311216673768066998000420743249622174443778149953630146206930975461370267455316562716604356321542370313076008762876697447817356794645039930268132610309049854681613091765332078451253398538765995095141780634543656088648816321834438694009543871375191593446672742739921263820696499174194190496478214814511530994339227422105922531523805448229540939367225696883727705311492997021400924854234649946158744168474074424162182289481792926915171595852299967276359844958239358955669333072055880153173313001495334030040560964068471940839568113864666636398299168291815075747223367824737133928715112100033211261779307515677340607138540069824285109578036548587614039246420155186563624995259785218152984237013059930610806243351038619277608894668484532431444435076845066927685557783935587155610112830677247118013563357155781216243790717114253221906805398422717909022129614541492795276320685579227846664276274176310897780456284466016902702006898744046254016077372535260267084192703582444941900214977976034797416841182788492891105458114587909728010476564450563779545364231107023232483895647067544297138624282321719681841615204492364207238028585764544716666688936960225989864040669874799534911726538129752126554717332767266454447636210298392567660469642594237865992882069652301200144314322754108835168607507288812856220561679987530931354039871093424909392142941967470599691251620132734004632144102240936325728534630671788857305113060972036008932020261065837184886104095997174847393364355924146259521504256847656111882156447814924871072929283988091622334457938280143017884601033993854489343755055873963295819730710830053242652762710412731867068039378539703108792526056897097547922002770567018912503577604792143125443798074899933391362457087298893684927604461576270915358769434609866136828984462153522800670117005281953820792576667387509635019309897114197050741155473155450969468343838029053327627777201956688138666824732981332899589256021039374011007246903562751826234340411157414604282978656655141373283157101380966892122137038287804927478597405900634445788837951588652691075154927802781385926806456095800591517360590869883777834069891799589288513959550181900439047448249158786705252269723362827939173579142535247662070178406635248795238540876975658384085296552265278651527782681238695991190645447225119518629314303942584225102039327231056450586274467003142984947094216547839690744772770399535030204347030439373963073328465802544525382552320287105147616008038338961468645919763596299730009417158458371893122580843791336401158055946044924272031461635602996247611667654486309151026055157180831177983675215080013323274516655434808536874980502755451371508228256868843011946487994238806169971690219550783675990339670268743890938829311445819286653542270324394228606796771050873532502301022775233627938300484221158041433137473423855677362893866589724446776411653932762083542912653738051077954640618562343825156197613654454925197892511061908919431007870142460473222652604178901235822471617827230129182746082649965990014385120021035487841811719208020415949832493656628202397761485826115150030770346706884912063688173528428583694036462065009531414853270988708580425253921630239226082520673233167900211767970142226128724172364115501862409132583170649452478135836470307866337452535448238219225779241089608896040024068774337668109895407675620314225556092494202661076154837277595083037232385897949205547810061397118391839143036847967895785351687116186222197804978832690968401241935608482869975174062714038360981412449428004227997444191419165776344621405744070403516819465151954518881290677528251702577204964856218589058631290735882767362584196217052109304773973392811022580238087895553456679000411783316409900507643527419676377039808329789986773999691084931506119746592344575605707909968919745518279422946648105123041001668495145066068618362529007726190589757360171470224183650716298401710146585654889754135854708215505870989409893588075058979169652832358238577165859754494805706002142397275227796190579154336301807539805894227988691698662583528360206786516931025351729715115574670912656814635270893098824118814003443134100644051289760359463555998730697338835868860765486455526430724181821651917585776692564718272462068419771508502040581999981505163472359750981562769145527284882080176300638118831992202763701622086773437512023662581648646717560775484543636045061461088594834422483329163583849894744493999215241948249473409084963197464256838884751119759585752155368881296163802040703282879447810355336946121412576617607542494062207927618311396840486341066565386308330682114279510330865238521479329716838892465318114693882701193504129569248274612420996498751852776433778328833823482234490753415536614662233841600178722209496420441470487133873951792912811792065962671396785447104486484453767555687904357707972957916969395195253419847082186770513654832659895696698274607937594628565924989965468610027149447043474345637098436906375070280824645143618545629964537985769569096368244663435353288906754894235362381568836234225303435606501504368273989831280002313521368591790919879268940959581734377799357279812861246513124539857170497692567024533791350002350882422561083410927008948198105496576173558120727339804501889968530218802741788139957020372880064232997206135036747743270603377360535844259350564553682583276806906026543166291371668415930896834015819930397274832290763448856641086147317289027621623247597263289601590195853464837257458480628257753610497806529694732667993209119959372706238538099090601915239955768072986202499880032566339670320853387681328538834043610270036619042835188729040567804265585395487348045954851125944332461906707948105552537648191178712215982936600758030534602650588586718184085232160233810304237435667883682294258345338540068352010284914534288402873517033328179083059447836427479381345816783005640228631922161233711275310522190387218584774406967291280995847719385706983835770258817716974173374605962214890714918666620954251731967444666410465893043005441772674163816274809147441395832624177129338025521119280019070449673684294377943011855991388607990299800687807135323181417054279430921346322326589620099857854542991335522043261377063502555690951714869631232648781800838831260528016456666549879260028734451196561997157114414219460045941746101781776579371593274580681776147589046722099682640198944557819725968483753516646304681575340992407575567044679103477117404431518223092714527633709234156658881199135512838600913320577395014905414058507190996045256263995656540237456396986777147096392323323364673011238835847018563078570576720093736558779667327696944626753311017340339613733861704608387400864958155837701700790947475634077345572021027488767490424615064915656606004523868564111996209814069340313998159304649526588202787040800134976267344397725913042878084130749219827981713897523122803181493071978243236288925825156889759996296615077755525462169644573344207221168040749335903296987252510734583402284208543742312961718892242072926704183551468751270969989465813417153524817578527827021138684392963485634983623958696200697240201857410251481684229743545350001257412496765279442307556599556792284358867238907003300512788670543751858169485344951937606148141514083588850878606790382965835892582975970388322304818829961283276751850869769405308983783063371700959480052233110503603163793689864836226298520306288204188410950603756822124838141207189977699927629234116655727505911752965635966111695121583485641392419821344756179892194945388425213365077749046040969421758047451676679923175439966129359989090526561108592770183828981699480120732788989785790881640651501669802942157504835791168643381676099853491466639168453302051122626636753416898364274026567545615746794082141586026296205616500383652885559837296684457357617579246384332065553779695557704012639546240064871006774294591568202425665772283394979620048149625640017340126710169154688114177737515090945103283340364808932110919791745193652433250109504220437013503062350205650254163108407240422798640580209579405846759999687531739598475551739955067263278506789846226460249232239165074786286226837427314410610232840490422140699064548680134821636990865684554830364046246726417539829577440563457654042517161753807810677541925057863771580447932869434102632824591452173160486823085905050019418214925122155362463708215477866175636781156850273424026786920045651179095414595803841808880126480750881795521866868311387355449569543283542866683489879037324014007940734358828682605440377293624087046745523103571266741898728848544870857472844608089406265251492409011385520078547283953293861192868240342060081510346763989368080547536706996770561865995930647948851679751312757558045740962065253136743442885472299962906435183946044024659115617564317728624718561058719557838715865397634200874041666441107641131646097168958487277362757790047465452309260397436294638057473081748540641127869830314568246665531270363146928113868421482809856215227016475886704965267426428290046770484037716235952351989270707404274299307038921063785962690781529697805375426528742017681370358234467028375480849736943770247083529401919701705780612470916934178315082260598729796735840722817734589107230923167125124970504973451777010037740718863828116473548749235175209513324529540678268477893289125247005547915343821655825654544129808989656594135237164256809026144233706610799706379280760252550497801734434909018241089302266586933578483304979698417596683364348296282678138626478976209027195582615875373562469112213023229936931765064415434935321351382277436537676708117712753155901104043218774275846109862250732742054458360647289375038788067828990145158744235253095561438267611526873360533293783012563097350790365510909363602890450462160869974376404848394970402345801091944688919759744595237937564202364740372921352705614870630374725851297717260864642171427938840850983139477078181910673519799154229094384090926546864032670060305493776095685653496037258356042764831596963145633050659114417881633284924850644759382776254754775451508951474722279962618472106471730646967695784004743721994307118290220991633109332709955219164128642603702883826184118966212614300044727095013585648329370588642472739828655202030598767435373740519106909300336703589634512323493318856782309659847023680247407211123962470633805385317009585709217933493022972232904043811837994187458361994919326129735408264844699798898032954760777310582264304781089669668771352935827059823947451287555538930739135454036030554386038535857394829815032021040413795979452884450674057017445239947375900281396396264677166851034668896070784546444433009207615245175547016418171215365484338868821603180473321032542102334740934134906797264803028181167181857034483956781127368621357908858483709612864224118797572603668727658781154757994817308046208964611560838061517629943975551979717577092783072269137233357231005423282834023345049556502113807475959139542804578816785261678323548908116613623878000233190869186438280811081409273066140190276628296983355322250524911575796442646293600072656061064750376702046044161650792801391077125561463900874181138994246098040403576919910587686027771836516650734998194664011364016213790014181930173375661435788076246558039984047401974720341123215779673278392387400987411974687323506994067099984076651952174546059809253031215358937968894800286775605069404120040365363905325455147026771883916489075393350241979854058376878176970193506284821378369880039495791576856226058355693149649097897826020593883262078868672158861224440359191388834782221225879304391203883538900715711384548999806873845754731321874612090995054117327797724800452389472443224303456223620525043890959339811834975273855235144678004786752835691389886558782071008522243105104505073166016894739584542145369097581410653801131588120311358618075984588957597701400892825047936941192447442507848906948432134630265399762845969206957369284133643180473933193482290188759398769742569029259604145396282603814053483838169212691473631269289353683428270870036389630165682860276920778625683758946145935130531413206932318374136125654935188021921625753842609639496886330753942294262007304944130742101510151344196762125434587059286872612779558728241107639181855927779341540303050162854003907645610485634949234413546409670878907666194693997725918447218585991116831436588957718453295016402989455703221634657854925237292750177997840387361583636726517224980278161956375557411023482432965970432675718664074305500127092084653575031060211572025315434465542557358516497856173243112868990486469448501087654703478286644208328448847743350114582366200018841362617692623491348433450688316722135799434261920764939488878730526249003345948301034416698456511446880254449998355285872229676387184125963395977877410813390619719010820991317342772565736229155124137497346244918720110900159677787390121115525606970791844605753144786441790322943678775036789291654529331884431962772347717383364507193171622726542575210278219257365198972928222205071068486106063498523475621153483549391568691531109639175181120557112924141133563377011063974762043463404335409818801594293370620089317723094499586911070232624937545055749163092670735388824356195296908959853267047176994535961024132661740354727023238242112303073113986517460656537609160859452593957098415135105579976301819230606116955381222912164080060137504450103331419293665772280068157035485766789700205175053769354336407041299408323011327367440518271965843109782579114146544000236361884467680690894695156431379858781060608109882521233950088923704848619761856124863733513370865915970120046400189883839345868499143628160473637384849795392303393872481495910421857189855507094907340213427252306120978846240826139166086469072134138018964452505592967278568523517690432905494478155561710679042124457014071344266243153072221631307076955988411937695297147040916687789140136960687634053433009051772843272599284110193331604463635319232667165582684880787115857282654997499534339163022984721038722026651548934895603126711112349678950381789006582664072874832614714585953336110750224392827447731834917619402315491465073009611174928132981680229020562558134943983908938659590621134592722554270997266008034076528047018818152777471538857012802671082362835243318352376785568774928179023476353191637054089248524962153574441513391226808129071124924151886315140074370365301630107792662018569431354790582727197292271587855043888086242764344576957090283876446796396477180724032615817529502228350780894544549635451637861779733755615212028940080510875205298053107749309780047056102787257432423609495469596045428147927194488116062787162708798678688335051206822147540858469889990317015554280183061868639916703017943020938533150496902091127263791362686610899341695454758760865192147851013009414551593956315696688199231559798206265458172472845465418925717479211359736357964493171819160713553518292085906682649221187051600494448171912755792841666329812721438874956668441547423641122432266469670018128534840792007196873923114638966189042226934462246495933303706970751771264913375455860906794349215406767701814436616574101162903086443111234909908476612172399557117545579371798386145732711694254158771602220224463153697029493721029688198181097399326005889458321930970397800372187282546296923737234479094546911325768632029400700733613592936788697893588567800947714283930349234933130611360580829958410046147864851583218200976034730327669054212671554546628129541952078217265068746148455184086100192171532251176581198590799665414346623542297177828332455736408744967145530787007356887392601139697455454236313190978668534486968021818191848710040495020475213643577718632729719549923509016777287494232499707213137848538007061392164040154508823746607545078396748291556538322510454603196963253043877675413781897961214512103585082711048589538794977842713678473612497719484777628876576266469368545511487007980973013196756728471860727064532640820988638204918681505592249427370293547633842682069171175936524888584026647037322467299380794344582889113613354323306822938871567730744176622185672804288716971619213041053604260780101362529072612015718690273751714039113883849217884583659467425200394364662387346188665802371632114919154913191790160479811512396880005683787725206366656243384970569188757004874702289679862951442724541292626454847291751680010681248491024464259687177128333873042584426598203010273012764858591192783218926446386750953843370293675800839010451303271574144389405050249536580486505008088278226587135909044567434992856536635051031743858760491474151430451922723358025908535020789552362785112546912071231516580083767661728831465465233874648837406270767324649254500695143934214766209963759437481795759488126733515887902890056425336620084373965214877300645809898457999017725029636726206938147207111773827785347877803596636546275962634387119114579774369798186115233313190883516455006815526494422668579067219454127756692358997523892320315682875342793641353872163245474653163349968223766729222028654118091756235325904470747698985124418124500465201574421487180090756396540787900359653568213487590957832915012915540954979251046879899602459759671134853380332819131179072533852406453678151590173335419597880194142107562328255160999301072632546776859909501114944558094787487318524340275883352397110220387261436655991945166712331461627466112673700214280853772405364960324569006068899873208657329724311057356077731064476490303065077236165653502618399350627216001653783306063832387494697276417492050348042600621675226184004719603183087975099820802438403733516920535409331368840499978302804510307175425565084615394584654530252333048733462951551595672470619588072195645341983662093064039429579033946591782285804431469978344088215980761261603220136208780414923937226733460413791257057651871505718948763688643922463747806159758474146109796381559644662729092807361288061286010424426570558254312331635412577950395980112726790566577206884595990719330587515760616783281385754517434376143442247314785547037626755472921075504116750660069526681900004544671135629587121587932745081569164096887752109573828083608734345231350284437269658806996280975567142124649513727075517149786663332243569588376488437511265624322388924231807656235971826180404556505041455903074853708675414267287096208947990075412433923662805421711478621924075694278649916485919215678713394785238346289266813733914685272894904522473769523188992750977063232619167807999750954935237664282948876466779809630564596589830254693813579808298356262471661650764612351513581231180806962569021000132261719556499366716879480125753416373242458861578073029930244816252704105793649594738837940572821704907450167716682182211837865867192346595568365432323878988844054048351365929370834712203140503145280025304346730017977819879597001520926403649496569217111614883908168712377102728190461103416893118860254025785963597779238067232704853156641045365933599024905634843820655558056460414293358912642507950415132762146155981912815842256961913032189846469787876600295944995924908936742993303865146136773955344654492916457176209828142419064554051343178771432086038702952923081515252620810427077801638018041565907738319941493198739884581850897398667788254594952576140155131246015709138449347177155596653809441635083005542188397249446367568086358083285548107838231940918421161279563121719842973007920493605629810939875649709143091425046117137211496095383396511052298767993416484608954563571397290761019043102661296758556217182514413138453252585298889927131597661344931593851764711091249082312920302090625957534329927764409875034856887182357075606208934813986465821150988894423625861349726125269183887345833165666823966604565247110966643763173658459279119701440565644837690875479457080683438315005607012271743484084919908328401347072032187619392782248108009313702664587350272716489702305445788270627152484406291784705107471608049501466991195617485790582626243275426888060741267460586180008558115319816713835689033161468646116361986134602759878969206653078610578561547500509545751338903697650032708482597212784825192403879176090231218120357628296866757077601211161858989777895857708535987753130486934700820945699199205843696919683943264251404679774638685212674973931452460498303049383370547417095857971043603869517742238196940746597817599241295880657123487584977447974092939719237400261513028722968679313821365044029746751834780453730301125787163580200899219976839529665610184390964774842824610645325481596796776023785847072994535573243346478952851165141701207093066843313316406416188005654006659139672053466716459164749143723141719261242904979989979309132280182143782573679637783323073169860892233547511172927175066987382819226205974039988718171217070502099000285985893588053837282367040514240258393379416277710425355473938368791091815456294872355488292624319914013600137854139567665800737183663380484965298599472101637850115831230726799559783948428862523735984476669476330087666309671463012612897262635672013443920742787680420914086455623199878842178945462820339470681228213000243964834557263449955350536949740327336709537049736834787276602570721766688281854812959127375207976690931487877778930712237836830520237960482168927085630059411264224079006427190180467875943005725109052120829696689588971399974892726532963988925653402430030027752439077724179949736216992058986167359342266520981691533692982760684533134850961218859485577776294639426128839840563038639015914675141586545966749844962714756907386130886773542305439035944109478146224653757729894715650052963168631319598064742007206235302635540368313123120693628041879796297676814601917599141249813300353741733010463807169145731068493756371768410667411050485317989339962892798681646801080103365785972889229893488033968719496366315112940716284728552624058403043921568358056668244690618010256802974913750680745360333207524277011537485055453670542721127057531249331865613947927160684826033071182092124012258671946230888055146083004914992186913285362063069105391830784799164680148153544272487682641615132497468260699984330389929571311258351019081075336941119443422377749149937399582403617539058715571646827905525623404790657115123525734960962119201530085836670139331053732446358712093566522468813490303616573883279320005998881430926159532876084402413295236884105738348153419616426952380270983458514238830801552481714092054846265218160966782751410461311788076545318297468240273294051523852589540547849748504607055627989239202706556677089870092887548324173776057630242460353964506558088029814344678041515876748597990933917211192422753979212543178216957327570202923086143485582403562753497279830784556739738626072380664942376141228650509617017145316006613455006548333345328423326105605506278488812054955824501608783602373660098651856907091739749258814450109359059219345186720879798114276904006275630654067056656363805493856777948749857128565480356931380154401149255026157545677609910909898893361022324469970972578133654864404582349187077603560749639484700302707155590652930810237798580529041001594571223241860807428928648164514264221500394640456716257526039842729170076849828897607996256679805317883608553364649816049355542355831387064349496041854003911522450971367165943375022909715948988810050421369344003330543809890604020694448236673086796994123327526141713633245419935368429583994853540520916917604003914660934246825389696509425424453330432599016142438941002360352212051907036554544825589189860085957089052827655221043835459811286542029260330860543998628847348296296166095093293860899833547124923803562351854872678271791691325973658268443586157151726698967607206403687272933608819087094757252892537175394421690033501190477461453902499837480788961007467694358753326521523044816427523127228627660223910313982737897727329525518300703209770641938208228393390497030722152887607373836619357730567703159485876218289966223876931021412886570378801644201688947446275332976792201025193195468605461936275481082952301832464831157244275993566975728113840590188706458055293082234048023625382094001469749336892135262604831380828829080654199460617257781702206027908567584155870386199916666759558335652617554114819325377163761089942631013535825423428167104306054327336908516485171927530866082343680100476282479025418875956394754443801488634744061079112678388320952814776498446570540376385318736644357291759023491412024280305630207931798928482171417882878392202005897572526329624768799767942097914701504686828387587328273172840890693110690266129736027265449369041600401144930392035606682620632647247713075567774200818930185240776553516674967833475426360923343690586598302352772506231619662698647698874177359603354705604811900187466464579598429743122995386352071093725223719655199149591944219961886045454159864861192850221511595360283219371421758581353600006597370482745526727518435381428229723050876921886407160015380687483763832434865425617208461366882429271658552192044344005357250115293777616672893430750634462047363111668560497095171601113517855194313596061775917438832302866583460214572546099193537167940946086065227773277262091622095470147207195443014287982625276095387914218492191129733738876177079050465157343053388433934446378186942609053905543821762284827313518972871951596730702605159343288721961236914140739367990876129578329847127628351916973454382473867174541976733999647506086779443431220558316784437756621869333194562496687375174095985166080535447195017823634294329304919879557865943512436097291612537752003855297848933456650721007937474010735533821063838255774306619561316796178374282924623211457145953137264464005775118181763072575141455194924936608750627070883617930603113042356383310499573646133690969529733651631632940209299429797933447956299858862647389237016756183617566894577814859309984966588081774028081698585702982181532388924004107246213735809154922357879049836599902783762410329053320301329856543228148339566185946949089325529064108967964150880535397274911753358624365600844235560711916812374002064677025936717220823045372874266899665493168717888877628263560679842884445853545481196885255757830035209725322598853620675960239075372574829841166362464651903085695738176085086932083099525984404035593227766562291605891501283606550865996580626365334999440704155964308293540662137059094196838948003827585171084410235161315724676190981980669344591395193191436335433455702380948214269278212252190772502557164863755243582241775009568543478370037246783800439241711574091356337885282491975741583131064148256875634432873765351438273421591603598765031252358021386495712857942133855613544852849331886448562614636074598324342251108724338361783618431909894754420529178078844166424041760666638627191163608028312826879954535788076462482167228931670826914837329548937751871900592355714089316149235244366785636374871779328645828655894043161745684907341494152564027514145424644295648141391195983362502055117521923891167745498783545944304048219833164136391931982758493812485731626241813195697039759879646871067515586404145398159061147768673091379751209592666657304721339049247634688406729259661779481548682154275466894881189699804028296432210650591729895984658159100973260141780557463390657998920225733892477405941833787784704062759708368180579477100518512862268594332174696932683263205908538049914356900842015628127065099199720282699182014719328772094304600812651422516053342222826050724223484893240283708910861825335719879656405321576945458578035604570354637857379387608350181820298848427961688170480375649347799652087112279211188135568365754745066988385535974509231356622336979334922842242409077536960867206798536626760181964201961050534847377985768915077676349548116190936644024315640750166411650063538371639424755006011209435455863911819508490436659071248110368955079941008171135909156990261843331976868866367591762764600848708548499286930170015175048991700734727098352223725486085255955955298142601469274169791047840733954575966022855550394146310487867740697836684844331414484187469205964210704035005468239725788922453127639387169104844811854769118893325502315576984148577192104016577521400164361418982902851686549116375637805416443390809189666174321184517989033351884906654294880963729714384687421159416075894073478837502160032889779356733384604570529700509834791057098347662842618681875827064212375326076664575132170391037558444189418644392325960263041681301976348434232701469973707996310862142866530600328513610844493476951100008377719923655633507880790652887207903152492689759631051345916064781304410833491658138941026498137817011225207877998144289804780721900544906754978316504373707775661236003265260507389383806478905942331376120482217383638999253508140598639330663026673150177991605677391376804538503447555825504837820819928590775343733632024934652886958277430775265504122258264365346901656283404354400224835370889519836685477333486180893697905891857353617334745645062009764341930844712327626375314629225563923276086357443542997209720707593852208846246894165493221171549457701770405857837404457272111828386836868432387506843963746347933207346981057416936355601751940394274479169575505279987767559152070970437206128185744580810145652193490310527802895342251307611118298510300417985990230774880391190719891512662505408508030778321944407227934810538522701525326619841191235116642861240167831407916409725682886725914260847938390655439150155545368588236742153206698219444763141476028613216558345011339375634451430251847569580240893655864907023675581366327343758922540037581858776285452264271738440912408563118445847106490728344037834751746397703845764328502303053530783753705990316870169992648494569825271733917688208939628415919071408809857594000269549460838224921100233410520030162373919578018362953584126745722384550628760491380087840195061645229923121355652895266701987545522403723112110065134905063775191920756712245336393987929858646478798982401979116392718585335266397931336293083394844860482896301888767240880483164638759031443015468433974143252069514317573376547544995370576782290992402999536059105837146835607709812441697682453954150347566411685516304305755542522241700267728999288392372246343301765308907650973023108061642664501233213347026861159235131371966184218322594861731540858256800049331582144073494823565219678050653325926667781759135960393328739880167439350895530284679713961523607055849483151483304407263061023843686283239078029905516378245463533908998645229178484814125426835558747807107248744045318509140889999087933323397719766513874368064371435549370315369049169666060336491584208804350478239993447185567908019049969917204136437293481259579244836296171160246749648853719612964536092404745761148034174821527667137512859379779550413004302489358682408099871042583783441328702942389087942201749822459503637240015431694801003396381226252609749635133198303508160825384284117260079937409162754406630906326698463547599083605597035594118281425480173926278562952600890535646033199948362464541392401370876207230707073585023245367672250564280410066673811754214722448479022180816362277660373285540432541035102732809659180756864253826508160812309195160316877239015138656094833201197486379547189001093706474004546290074379949523294492688752627101325837898031950098776746895691944081353775071504660520409965152216814669815539684283776342946700746187330188860484834750733145572996053772321207447543185569609346869175770267487744947484731275111998447675045430412890675140331114948245600179854448710061726207665067169144041494381721445393799566652440432894554627213503750383048266438974886101919791884567226695510142779720354673167201922746437251949607823892978107482056525512088658380450052419108979441571220948380974005786507421120803230736943023557918644058789989904085935326364051673807618383761955820352026408423616330570950325682199241203182560214585618792959998641133211595458635808951777225534983447293779742999148972966983738717997327572087093964246146854750008910043361634986240656582283521093811553758050635094754938678553534461324165535188099105695219928433406550373487013724742331922182949254318412600084047145441768062013578665950784029161992841063360644591917909931719100266219049901095349717045151010497294463144173162874953973570773720184685196079505510915149704611628275314883078405867409518696802748294751551446002818042932975356415300027106704403495411663560639058847043413795410185499532245251931272156375905924318718564495477018562055483580176062165039452703869616351072692747395056973617617350168153190406713918244363402444131136143446494449772240023226233513009263814629153959207737877146541133378631648934411266754775320250088538006229576498006612211627326922958317444883084685577205518799739661288676791547206154452522400998339295216354914687203514379935388120362837924107335576933412218376234821965926520753561629633451531554736648768786375421375546539586513994488482015535721026048641740826896219607067635380060191223004633937105966721779063558214166034828810302983850691343826849805194305195384396385360193132019829061614660462565936884381102131767906542738605592620914577844770024664829414362719645613063665740314368535750090956811654934392250729266847621202099634302109410033228567851682388961108418757314275121121105311053475414089575876824266614946001061724223959302413378682074097456446075416673280517086012439103655444394236824266267287592243440151682611764459334198819490165350655042376832538026446144674186573146473505154266735378205696607200490146317239821918257423007612060277027058194167994184277508715031857088598684109356364981078951912071808848575982407198466601370887265555353774500312900275894063900125466144312009528906045824475947867160029397479708617294158950208857059978877272431049727504916347831012334897298445367377111339143747464110721520271505374464374002928523445032609386453063391014241798586545799327028999372540270168607470131551065035985863825867683451774714960525208468475787100512725119618743276367323695865376143362760735582251391365562057364892315860191732689926207312818242782050026439119679615831351887878179747467390747385738900731622982472415548818341510794861643929271786533352869143201557480042268184468207374543370491244015814006379662871306402753967558047469274076425686673343963713609030237196245726001013045267782792676283532550473114160403698844221604062400399768133933074936564293252775128595109841563746854173996348181755243169659585752238613752226330773750414677599405250330064802610882906480467918112426337529506513981627676757931909613085548098999205747356047662418532337652182456451946372915597195955870120789825592322295783149276650484200399540640126805442909067107157441812150872926404174588310167349966548675245349846523093728191458179136451897199332493575502018457808503915982445855273602517187056448095435132033632328858827057232603647872029058750508113441417087375832431117689561689307916529223038617680874503596012609649498975173199851257389077508488809876000848451066575733645613735187987665235729349042540906062295787499528347750612712919537083206535388875961009313938792639052739244247110620920857703154716902680271177848140384317962945458005328465689256899065714076442784089074039679141696397558391760397282780464104304776123478550031127430603487398286829257315003588866721320704546009864754305041760872066430652653207321928181929629740864438764341084801151134942532572811314517832467837552640866164041289868143745036306127771199427139850195455517460857277283257677434592159117296102006064821156629998229942822957187715783665838415848451700097801544042366650689284257834605715298424997071054951854240065803260808192704229459581723530317111152287212964824430231002028572026948198508330218527300607756092202613920728343683532235465483838676836850934328726560363783826696493690506059093165351046365566520544448134140925501847930659297117176573632064556477768728981539115399869484789740830722053955491818621178077160671149192193980684881234183764334846617403243249288940088734179668314347730237317969886660235104744352092584079459602987508190962036889098828567890751706161001448984151704972168141529394474860912164445672078532427863863577665183252464845677882393248769705947118411032325003604099712120870139087269588596031397148502779522903996228975036872619753182055221271371336687467703210510225550139332913973164753101295979480773457348857778676136650902195822994126203276962488187574589710922789071832092031430206933056500943640153757253399073857859342748017265127205033990392299432906585924904227065571044981249709292260633221588631913732421079503012513472818990214271418060388226528351944502818454098728869081107474128386334383491445651902028959906243188160525348826941671679653725774550939250218542289382104865756943631738713256237190619452242242729523307990844489034030254588111758215811059023834552748382911588990867227509848811175981338519467258963000566485057861846856317757696336668480754517722147695245165891240399469768262063676567888846286905325936073572477178721796643920430030216439506146271687096748118460217367818699049806684589165832669494524155852265793911733358651749021053144575311205950234465682356906467222110589485439065711669837995588250938703277238678016328049490356084758713457008293286653743767474688060323519804250511452294419898211068151495566535975444088462115953203352877514278983712605215148102078446133834039542637060990100068900526978853797592833115789795712688997286842786953833223353300986909342068171489735717914659240862188639403683884157335924323760113496874833404766371262996210020710384288550837144175909686417887010623324625048192320136638967601072133359608905913522055418416808400286473348962874497187462832424763599103696615628659545540433515644250954182078436831387421921484230046513713775158780384843977674020167560869614926106218565282947521597688074489370140463520585304892608340450926772975666225790522301371079233581104971377024518800898691215794624638028252074485371173294571572676470190329056223663700672571602586501383544396095923921274401172851219115979004812851116750525706504164962552834112306741878356397518555663826330573236327710322307892487840901643570412912011900205154961289781075696567473282499570699190829241007219636177332407204257071239579074206791273210823428323278620360983798581571648374114937013867670086970592679085740748564749158539822813218101520730464881585278022875603042742426976154618372442662704114900302291056842002736137106954060779200690745008522912255124216495544576786726335030343597660767425030684528952191947448466818686385730643382067874056790546176604987369815200517628854355215458054512734694316278204136324235650468602704237481201241445814173142897747408870704647249543234453662236949349318540728265008124035560378103546048170902353975736200875601638628716983269459280277892557213470199383602870650996245733780663743177816441168050708566348660162031510995744002432589218640036069089865657373445113298782317857099961681401234830929538507805181217045816022194265364466439714864899516080184397556706748555422354599159252703342783463926026413234295616398074467928641911171225004636045004240675230607411380961927307814454814859096406471627153060753079998087796142992929338430652254817591784978796856459811569423265501356670097136188523906187426681757578292639983904897843083059419782133276004206071733172266979881617975670150043129707896252423086321188941500863016617344323941046515551393456084160135334194370332521453325649581133439330817040404152628965953205510011401367041562643819642343856293563314748308008527693420737880777811542058719844890898265189514008909025373124944373856825761785802690448570184494787592973495773162471470195740401362581592253136224120938366371636383533659150473363789326955033554841168290647610846009081947575632310080743412150398603535128315480023520518363833941854273715315021283194100529693115574909845486796738549954530438694746387057087882453199690210726119745532000081319762272024811526502921884316668543748648278821248457186826178655554575330812271179660234912322661919878264722430937763733541474569324715298203132712640613170690091491692515058949381305657045853264531150225903675638668972982608480548491831777367528971823451748469237526990750706860915282685726397303820947757371154082554112757685990042517223546358428958278499234577559546107812147320211735269033668071169245093112619072495439977029228480274183633869951270925800160974400236659453066187310945492193879891117888178384495580550720714195710214736482517298389434451589298173500994336087874799180322062012195202971114539791864776468589771074072860019744094572436352497499279319395871441230808739478420711869801844487888314143150058720269625161432949965419568669411312375492096591162330844473964819245092788084523905904962505232604044627134081024239862608007763636306618243559793155773608606802813845856133023454987928279100295878750905083559354322689283164358833349792933904746477137350069685534554833362526738420639747077690980514717119537211270973018684419499477328231950414568226632154993171746293500736772066486013836529926516899915559670983902307657547310512967178243612720161982584503886529159414648621379668388908185637463490316953478937608752099285441216822933191638766569107849752621987967106650001382165473158289764158695918700609634498760441032281910485618254899291498000086672619231761197319467247144234602884447866627392752421318648311360924206162352338623405220874728733085194870065379884274287717902433439108682294918653052128710593550438377714890354110723350710387213027254688093327848109946697221249714258728799135152230489083100672810389699250979715965720495508589704025043838762241683853755876511637689163886072679860571827342144270072406445811336000192066470441447635479039344927753726379702943024996981033784369166420293836584864643301964200971514502948493671148161467271739812345269415282597938370959780548444833930190158752680390114058354664944361128684663795905368961016721108277466103568938624830071922582860885949153486805277527398618941611631801550124592139491292330488818325370714186591178947078093338340358520798557511176550591572092466929165808021820600844049483512269469868564853464751241125952936952677764520368977987308869558964453438573430746583359113008794699332871648853507123450473106939057972704913230303659729941568746892195185587984355776559501708684021891399665267463830636460774769227874656270982707941919288279611000432888272374048656474438036656745420250885445402677244903199709056837701215594099018832000789973873600179240484863719181610297472734307676802107914169197305535175763220565443959849020951328571571509698316698480027168240549279421724703490380860162315712176209363532091427826082064223259729422379172922980276870624050412399778000482894640451498917120147652887928409864832456417663368548857859353397247762044303545772515280754277848038295445212976870391617262696710352981482511069453298917265457590763454409357890321602465822460202161423455963024662238271572300790880273847485738476289700379185184823876163418266091350834679437666266945971502395334898881899961217477073212858492541904230093642406473808023468270532283993187625566493277652637215998105691885103968358584260689571806285383081286677442144952004018423956419783150321164745220933330523911041659621972683231484196417110700708057963851839851921552664759161165559113118453086090674629683624975931082690067462074230506299029188568502302348134543607139889007733903870739262336480802533486011246013739515494395927364474844119122703861919053932545447596347396479092441423090251387223967221505176655618067551613274885247945725664766304587311075485718696385685404346467001146326318825726503462548649348467931072872211760013213102286344635906049804219918099488083373506770277350607317372152879077452998077295568688106270012301773221475544136325417634187368529592998222711018123144523700208283064799298016885810408307634857856880065148579507982236122983896196051502885532409399086512055570577188887048688150670629146263054889301481426022276911730953861298685852291491928705383314643222880793940291739667779572088674362810761475484069365559968056699221058161131948679608742566922486621753340689096496226710035589064986710890730904571705733482763937322344891246511638412424029952965258265311406421309823207311763522415189000196322329168822173524595062623613806475200294764048534662035050697458911399861481479517320311775622917996313028329979179762357374274685474053160993103142881178449665305360578283338143710005856950203010864386799678123650261866233863252812236062589584037703090078525649918561478433319622860887522859531613423399408387153735535290956594422998940072611559229006613145483882682444241500931022987406669668239575592340677874099450241609405636093535586494428866694650934127406582740961845540027302869829746394968347663101552273036738389936362121756148419184309713675058686483050070599042601419061884490391312093838311206029825096983693344898718508997855985040132575793379104132663137967110399106146034283856124429916735098898816792551132585675005619843636905730201772037024520557710501698778663990979821118967068960478973767825426681947954900629699734436747012182002286724273882988071422088989935231591547387246538741705194106996978406200148373704005124845624019723555772954383425797961851407333951838584708481363776830197679633898848545293432844729602446182565106511022616681980020897353244355889611616735770235444816865752041463125554151335149530341248783392743939474260362606286196693421140972595922443032519812905340958335066307254809120827736133297882789515416981658806175349980102938983319220231093690430893014337073910056586362258952202684248690184329872663684383280248761676644952881187285043895170470788844169642021633992164776615442277487927493118747043440411437336005831684906863351994569461094260046575784525406684765261218797550542510794022381826781529856882163179399205902931701026580559229522216293353344708134134269158295210115135547259241086875716448599807967500903157268497871733839394627876762468395217210612369181771009699255115330497627433453764085542540936538673855722916402927631180350946505673604668393576842712559646482707049676846920179977132569366583916603023074579417653952926662027900423921944428741648410528132753517714316815306166403525052941689155864264468428669753607127785370758958090136089424178090097005168787419528909654878625677380236472717573334808851256099742293967847470616875175926897870234469124100453729306129417524412198912131810370754001220041992225490489451765420120613575450356405639491586346005683125850261223816589067385848230586980645025982211630334235599712726082141760524793723707404837049877296823795118579020122165101240374253455760977265152000063750368267263688567792344757196235288632858691837711710831146535216107055111946799989341420691854328389042838791874606224944503437610696743536906589657560576298493516751076668766792271667263804094864044506368513006509905266893191870176701095176345950376590716496951607774038877595516061494253087694006326353442533143205457072188674602537030388487552729326656338273473973743258210875885084823421923328771064186065396476376821516066641615752495365418635300407558086601025367619871478005630021256274860297092224510184723510308479396547141388974368826843598768916472030706303486046256988238638603950084792776310997885267975522627097827677593076463075912803603720110725459877411934826322026161448227620410691354574870135912084396275240538769421575259923748127269856597069727682787969014408201052621940414405507416289417772831984925454726048230783337447356460262341318209755757414615243018859572281306760803855938770669918542110381095628987121836967978457538289710183313070513896644567170663526283380380416902315417127187047783007405947283959196881794309960558014589357132623999008169576212657401380429860992187900854954840599318109486587355539765767447081458651583421276413217332292254401111194687910236198480037330019140399371129710450982076228841396506649848013268429907171357304593700995733314474390402971823134769288057578571639235099340167937979409615768513454923861575597076600685394587751373708366092250457986892396961191020832302208603808102261352989132727549656576144310127729705049967834795051964319987976005024924765409023067466821606964653191563091741529339702157307538542367559598706814368460693018819307198331294664998099417779736353196095398469444374673177215123981666821147898764222028521562761128333823271818034205329032969665564702500380005844513412899123923249185006081061665074648335445285841344512289454482500929980104375526106436459472917786772097258840471310421692168261874357671103405126478819234227267071043681382288691208766646329141709167007035125200314950615188173075440417184227148078759517616914804212352342488337274709444394654146405659489592779265651971255175103976167856633286162437384312117568889574274834319083612521580624847448086376211941876296756255057231026166237750358580374003686994232106447138822085261068741543506385963880306411170798151352352122413514865142506819040411093238419573737569305895578898318833909716529332111210242434678454431990332014675035506422687494424803484048201610332984087827006592314093978281678591795647514672067357010046146831341817857756514919162086529300790907538730192552614663042699664041234006359059069331571864432409868366540099362042293874503353452323368960420099036239700848547788250329401412443365961755993235238314537185216239538261244294681606931150566599321500280413812800553391106946968989955898750640982682037958295560890278393850847139619842882967546062565951735844433612217050593954021364386969400542451593340678999949903675133708700246995510400139469589457530130388970566039958543947434200565605161674123442979873303611048308508168041178360716047710910413361996546523602010201182937647151242584449007204909229426282028949336214472576997682349657980633776971524957063868589307684789638891899113900779880940918942592918478213379900423988034156144969002230382146938724586885146255252816526613906723388540285753873456270722257300533777002429246181979845199736696637757755636039566394814208640861177747168844483459412605208657904962091316937145273018694907928953776320575972286185579769497482211390783398695355515519992803770937357855649270395286274171072749029902780055322659996986155108289713266626779936524917151157056081804933283145090230561906294051251861991366191891923907046531790499461402156380769475840840297845288610023091859813457272682306859827665570637475443888875862698145799550124729583177236184848753983858112708937977380783163831312078664872702269878750793343819398372999196936771787325342972146848299487971465854525299927896935438608518767205659515354699407163850465690631881471701647074813413876831340543335171714956016229475999723989242093956792471374538159252667899761616217283035939832391051347780149130464477244370468504518790952940316198234897041261232974695459055457156995432261016907184276843808495528933750400599487532277172230385146476327133162183132497068476894884133289029701628361200352793798930615419669024288956569798591486536563481767343273966064643078251012538892957268349925698915023288627368606213884480411299903093505036586076254023678320543137487918375991580118860841690930254697574723764138055014779515740769076205471095281693005687172086524597805949512974716756978222428277902760612766363546733306916448902194041431462290785487119400805464902024341594173249749211378781877903819100681623437644584275058260497475697648078766215679879479940797251287534387864782023401577321660484402955458192660901008652900203375942566021408384159347418081156906230234634851919484572339372878366426095972577050502189985361268156066171730543071037622133935582898039777704536975490720580246212182431176843348752917699748163019190426192847149856079408570076510281474320156032644857592973471809415544904038546032160426444378364258365856365381148849197780492191456538111204807988191012897727520410632356065358847149110744544525023933424809564399499638378793108950724520510717204559647045621076473065873272247259048001554656686012289435395400421570411502720303207473081430528304571945725915941685868817626255885922439989901479167465342177431873878019209762143414700640783922094044594685687118050667482756886300357978061351248872656062714221971335068646054251742524569427383798141669364851994101679853276481334774751691324447617249983695047840073363841863271576199855422620977183454821025546145325191720563912942236002439127563108216011422304207011992396577775223703607560936516106811218075480952896534036585641956324024761340697018031719909542346239458471168547960851410848801585925620684179827305295379731792950746029863372346148805820171830137602142134091255562376862532820922086152637100858731804019206201632528615978388734813612182362538454692889657064471568512621764891326246609150280466194505322057298362958432318516342718051135830747668394230649097525860236124454561155094392836959602619099656239292903028855768906640192519593705326272763688149896385834896531284653315418757245043765598778501401359834911140944858996096050357796988820360953855439241020476760457854246453496850167522196048896580667823148901881814521584526599361124989931400416679953072904545746955814205098106431367668597657821659898601460200966317597391726423475277746887444367840729025047540834237161665778481722072402486124899118726597806385724627862138585646659887226377587854031299963812720328894765204187883786582925653232386200934313892221133020396642060063998364761096488670913365138855818244832715398733111121218832103895750621525040472727577673670561431633114134910611490771726126885983922814123394552264946116988000808803490665396213646937217288741683086688292692992489192804798681026226299274688692674114330496784713700101585968644195114567164192429156102849249009535167966065588767081567192318509091724927034318661298972399781029861823395761235905983019082403261674062533911649806985981255548505720820976536863344185314196915979682567548359902140671615865823989770315471843310804062768246919425712035453010449982419382146177714384179249983094435581848822383023620489468580499127732600069377551616728251938373590786656466466186828457101686350613386072504404592314352409638150366181271202029772014254914015303596195971248487384901121339687017215683009041402994498525655532367727847086936925319322711954061687466993869400112108742267570454001107618782470949594503830622552365021675926024432689482147876043805114672370447176544012080160260659590044383964933078129811288596893078418982591553814464403939068864291924838548064099925758282828433443862844371223561896690302229532200151807816840151923962510527413733846385317922007986019795197936056489185266162397564559670572947338143856287925453431120097351361233793106421197407475167882998581421197633108888859328882557855408221772282803350615939171474155455499925614568965900667752749155608596520052143235717699208240383817278548926033848735541570164268192962360014515992146671190981805530031939595829049189680984052556865482730084411019563663621605519527233042140334246045426395595259587169083669972932818102377780884747035021794447360593294738308492827654165153410794795635800623071397568029839358685193243718742325637550583454145049283014131974130408072486247509409102125135853342944055448827246121732336930336565244360505872357072399279720140051313360814576485907635352283624968413867498813339276006115645225511814281184269457395395699342726233971547519609621534145973030758764148448766488945266344564557805646122858506133205533969524669410396057015070357001042315820448839763383654525518772579667411280225707237913356936750943919371080020856491814455274714961283517798685276745238222866381486356089789543624777751999104630386819172536443084085112474489014451983283558210281219399164443800180861249192120954446638856999663180681817963818267822403753449767778241659325515486484549022977728320307960405213799475697710531068978691849784582761558612633674382202620111149926175773581017308871142621327238924626500720450138011419846026750219740182289598781974633617129263088230705398996486648211090972205641024800598565347278647590895189118691256465528597891344556275808621323743796281218184694019819760799509685882158185919669806989379886014426827109234594293137257778879038221954193978682434730782593328459131020902152923104004826980388496273325409086650516583007649015807399414005286248546346189788427307684205574015706235453613464878355074843299750013509155868902051089895814316296779939346774265812934431969035930060209055682376830107461154029259415213569086630862801721400754074371505713415852481482956373768093068585535345902108798168872678798852073797443735679843088464074673690491864568587782456517258956678119161618876246733230588451241007690387745332286534496547630818631613631371138538159881787505984369483583504334770202793822743088611239059560526146888001739985817650692624052828826509523368198859869919118521139434230167789149740959982452123878734086839543894152770655367970675091364114746398238203285741643498972731638940350372767878589922453580345769272770953990929619422382632165652503683549740232054174727768055697350593344564484029628330171478907594425417463548763978244532369908444904544806570604066111923829991143423008863462538732803664902713812898205458051408921527806644973314838297927410874196416116554451553580664998887784768911984792158686729554756784517579800647876879961686149549239299396726265496264533338627049995346612422606517159060980405736377638122711797562854452217809150267032893257845101578747169420685632658669075422331934892306100042523620651862788465915529294191750492905009754576407672504662899512935403873607460335234601541004899555889446620525948671105050038626262659452417251471339880679990560931192608834111329989104636380516947777058928113652814738776546517890981355780912500154426250802487032679406186007171418975650558922063735483280713317218867309813770365287183056472609991904826378559091789130801902354686122423038949951670491713150465819842563289054937667487365225897029464781855577002957746412193578107380219184373945885775730105406899957630200013895479801243977370733809271825147094447691758382605082065720563969527041977001817204526803158122198809787545382850339918243671015372400952036799958683900400194017677361829196472460373373023966051325599842882668066520645541569927050023918812642171572638808360789956503758502881987912094874782952524568951416424536630696335591587886419292151126793433532419630179699383684490930044665100178014628046264329322699141787153839237056916675860144307416189506429037770941669739549562749074746278307411807928983800663001493277247666537045832719307930004283343588345339098886097960781269236994894846646531806368255306383056493100028217522866889642636594711760303890586584201619682616117944957297743243190433234599060669268800756780592263046710088405474756947496207290346999321714951096830217825593092233742701958483684491438340927434432344134144647633406738740529095346816000520950162001244850386264028247510216427814258897676248988493966740971971240279661038695441490909516867412716585566811778910642360258004507698095678190984930538751122185132491060860118234241288357133284282397364050042820760924853076980593030040369169529491241007900826148847425794885808858895014570887317209205222057195289284033235352218418129631946048373174787238423264014666428303648302054443804205096241118375676631522664169637659456717879843539577371851050930133566923289256435865354481789627329873319923317879961896006397102298649625201208091278451254598276749245470900784711517289220754013915434554252123444221178732010542098348356248691434567762211240241938463862755008439054439645412797500351801431181517447750123853345438973158810026454993875504708188665682972939610720425509879924853395363384674316235868694554838448271244547156982726427010258635681534754148529381218532885530555245155740674321630035794647058319819477947366808382071309365672988482140673657462821972493761857736382955337777149336484172875593097862569536285243573837380652811640445954661655663200544431407871495506102068063758836766892826217534502060411425754044357330929136739579344104535393346877924757766464055458587116615741265226693399340340037296167791576918952017549807426057254934728830164345865133921610173577299634842530984575535052030344425340879837834957642161105880311175665240415963002077882218177619892982096908273356125935949270529195751972795108784580742214241825684166006222086263858834454491693901393034969067369061571231797662072884657828592370293186932763478179544134464652495795595462496758608122753402453233407704262560072233066166888227823586509187733456212879140296786591709144117526824876563291798978807525286052835416588644529816235848519058866699003542617223316021552132372788449363090624342905624193135952534946202806708889841082974145844127460539469077763649294042441180887990133526392215463121839129482525350960161040072075311164399646146453893256168193430146533494261649140570737366552709472541314104967399654789638252790762929205183657627396610101897838543643406142001865517146787893379336074360989513222477808122938549109386559517473949891037148261698669963147345234426143180800745424149347432730059669810291805052647744141423946126744566715156837905845305723904408636200349603150433011089226618148058099597831191807286747243756443849875725536854872580465986465850676281719930744612539946893227013835416564838573502188649285488685320530219797457176055386446377560367347590239212450239514985480560919037361419145101519672345582184887351809904114047063907464052028162832087025718658276275221732585944944473847742223584451175127239640102498949592022330876509189664173875288373895196018301171644191517995702327004868958967549278431358915070827635211909407014165314158375371780811425472239280538223646625238159982288990774501124288300893418005989524330034227462275230658572714047599070131381386130165623111369601969710739436404686172954446464485859337607401322213320670537817878334303223939096884107149277903934921774487420844122823344484379969406926046556721066202481423160154541955262105429334483733399524288824284889729188062846301252313585561578371587467089025254358918376549553133963328408098307080260741515110798522616326605809974756500717791793235171373850564219396156628602681686658652410869725834200078831532939936478005575404121845332833261326026656161114539976259458509865541594935968667899309896001634492629865496459062749603572367961586005482414421541996403164762063708800497671629644480334360763781080800438798467824809591295176771947189074507058299692217823293187958676024669014638210299569643774360927586137438222433399521957144081094550929553104428603953362100572321851682296050771378993865621266193811252589250432105737574502028535607754229608575690682812361487979728773581832816917942957126504512212535418817852296199031993587036566132951633887111128696792856455446374008598184549025152617668095959133422598490070699886855639443176655412573157652765259915681241829164484652218981934356723226589030450706768708289597455070364833888131765023975223399525251136937673942762390567802960481401154941849298823134838925767016915355445401029378386213566042072171545724150880777304645398410500908186199869186069477274819718528087759507050005843805520460304392891804365111994283729940669059100157356237548596023310627329241935650701696260617916778698310715034811244183501259221547737973376041946751379976474366853288161718140456638082913548875591555421307132625917039222537059200367622290895094354762545407439510380063792139598320494010502786008156378502087356185260702378379529222389767557542377899189001433142813065188501354725937588901808881966402333167088744909303895904979267566253925640294804696420185256723864624972658074274898851971647024869894099600675257593639036423647449119206155779236907134197399341129665066622368813831832868513403266332492580090406698576916446823150982773303375213727931147469528429746978878886199787445753258233710783640608721693460009354243266806490275042916916585644161008075392993572811906924828942795851065965364578078827072110519346811952820544925682355147832102011837002480312405922039068668565488991214463291803189295732078069830269297037474501486979942325103055199146094991392820057111688220702126056333464428247967233624471698552156853797980337539506028617556473513177150580246030234206258824752095358720228196728560110160622274208842878521282164228576806966949818486344488368567994320829360628072298114470549920858241214755076608860245247769101264107609851216706248118844857783004835578870007592992403689507704006262556494747609641175054502416979145102144034427414497931519023508672509482635611226856168345576671326785862802600278776260385590692797964986532024497276544950162952051736575386743232063766032316111416944670752323047456439123571014226885884133712538443666672306312964527337323300883674493123308951578864593049102874812313744930463562695469276541739143608099470540009178363268343271511513639905015046687907591631424004459266730891056825480867826823916284299821820156179618253395442577106381957024384192169148031093974584880431342765223528112125592433377574967054583162571508889832646869554990742644310412476911488679042636943232399639299178269002254953099777627943177728987025213578191095957525214667494657565552106515324867072550402588865106750129113280835189328967028099350544448408687997301360458142991721354109049756227487627006847244898380334218447406183503221125088893755626651045205239837205861617709372387535865505975920750345593096507990063072767425279705126032286495509581893676705059308651858113111372362041296312440836887707550702999049756195957382254981684212580320561128220629833749407098292003505639764215262515088915798417227430389186630222829777889584484943935602428143013486308026204778200850978984060249339059176263107903806584160905226480841967059886046809592955891719664072322709670943088217140351484356857858373035772270570382283167565997759693257031466459707250620895966597746640981407608031536713192490617220306753402733517453282914284789771572081420834707614814357720214715797828494503639522416273622660375151075687898564025598111155815815572220702292886495125958409770599728473429179645379123571034573744179527557174731598413119914373059144469691963487471456712167848855569778588522613287056932815892521702780035118462697489323483856757497943778310114044062946819474087724897083828569742403550020227453684958417686975301654774681192786141447989446666539748751782074917094365442762180987026827472990297850176144295558981468312315160792170361110174617655269653370478995735804832489994805047195159757132468178106851855768123689939616624668623732880177918978032817163999792238516427751025241932787358003373512738093041039737614746337199569774634813952794250862401074161569070545056269975261875970649215806820647758095059824291902447806678726193933032139556855338853845114720638533560415976747340225155341993068750593200670212078750023801397368008057349213345323155077542094982652586598064269845250952192801837892737702068045339021284631972643308931656091642585790220182443431677886642079759708374300626723940749088904623626641446087776960412003955176569076331698358744685951570337181111473417298879332372671606895880174192536531318805368752913992450612107689080148019234046337013663968304753519145958468433625687538180511657402017947046774215333322146078827267856790411383647284468424769039262958632712711716825532395317457788756975331691295965947170105182691905817480503197411135271402601296316512948435923210841875744207432666048049957941978243897228174669149685833652128278457944075782445537540021911669296832940272237994272997774557613888194398900649309135985272005578248726624398549805160085442351576333351198714312582656646382365675984319633727153124001479032698975864917684486968397099556040929088533791265906989231453366208770161147191920761596472894912629921417769331282945358127850271173620487858526275905670575193036401681276982629380946701077418776019754637370034081885004746527434526644012987649946575087324130798323183442397713211961619291443216128325120322830963948980585557080383137835371271858178927906381488628476026963267329427749455301069921256533372080629158930195369975409421645503137373019003327055658018445939651304279717954517843901715462972506912908489187882485299845057250428038640464677363357400799987144297230013200309360094655718394923239473124197707662498730222638955327832323247266050045749122582731869981940639270570744015324393856484301407651790686353272782127789436073584236838326429366367679047710585314837890311704886950953035248395168442388042524804632101568233296840566508138712173640945500239956561279016825009911975291705891568221831986509223936439418730719097276907634013906274084476943935319144978066034200104383350198603293288694940334872737253794370893335969114436668412143708977981621093873051855782291407768492766089001690414209220831315305571816267311536825011409104561501290177039718958841864043523621643694165666703993571770454353558696457081148301185596398376884536956732591295292498195244622569730231015251803322955495865848776491422597627339713820311234100619025721524363132732899264823787450918220454049279509000803924848588045184143310317711145342748113303268109100047329557551285032129094721583177620527770509903160700680738036874670775779100864327560561661543429639667318027189234035304084308859457744355493231081832403796841790022573864769368913634825374313147980621685051777735762838123501553856284478687434023652174865230657108304468063105669759670997133408275057727266576193083072463409925624541332899564636102126993844067768715712749929604008579556472758949216481374506386958349795439366422270257092715916585231823711681254290613553827578043426588766153331320486407160378133877831454436568347418504235749581845460837648090472559217727540731177628007831050159773459426417091498481442245569444696397096523626583805581718426590954047293082026631408411780274371344803070607970444744662772398294248670126682052521262193678863718895571075367562504528232051019720713712743268823138950616045020410583392273999227292375771741860586301098943629000416397167926054836065075812059948084331590688287304228042467989723415751741153368913597723502779713724263217462825856072396727313477493887549322460387708664236725573898951224038746017349674082702252196418643730626325155347520342429167958472213710040616271367942327978913418439468514629948189042596810930531143583859249333126711399313762587876249319843017134375901454992514127637976745711455382677882229766184159029091417369649125730179430310298471777002575018061193575395766540511452539259801650711101143356134611613478195312348016203143411703430461087427286487907394781140367384093979534342000374440367316152560803650459251382313134595714055274809778797375320226347253038354310711518547264896020176938941279808502240777048003920928480637946147347272668155297396417510471155436870027963616072861100419784161706206888720610131586227841038941874645793448439861048339843089269781640636837060489083643429110078020445408970205333259277238726941205049218972350248239009226033799143788571236351519073330400330428219140095059538380153712322707948708909662316509814907387696718722930224398681929385376074411030380884887844674351037975413139398931354216338180452940384481747670438259936830101482488029070626078817757299948459690665095535600685153455579174070570597840349971344552123949427520195340725238613188310365176169807104899886296480284601491125447652181397805967772876089119303063375262642217792110849742747776894276067090503576961258541701897791922953960990929260241522186884854563193803600676958138291889392622654063228743278399924274281394839873722253028867247060528248052248733021149460276969010376118686943656444372257065653042051987598586961105199731211593054151054175207678650814999093141943403028236031939695969754752963408871459396346241471075837714594937594368833268298964385878866923463289407129680976035525741070767467582465094176025987291330340993594061932563722292070899477186728261304976041166763132476035699304390714983512515871545897293609902111002678393535781226340851013713897839790763100449225423868507386484448001981868984143850578408605986382601322495903214117862409490931973127670875522241810138167755746825527195838355115545507807578700774908818965745550131610773024271219362921001405273406533879610225731949434382292751413654694252987502787768562883220553662639414944338542967820894672428721682399205297570503690356984179245123091349763580858689366081102421911721855843590086487947108494676602728607254795731215882049904087361924996308297383053387817867781949270004060684908952073276702785380743421606472620475141276362974713311207250825644716277793053130626449457882073587716082682243288519456045547299674846138841695441788651497056215273183076494611805541833018099497896267500793670687041361805248569286619747520743303447483879506500671725138264325708443037242570184025707260428024260496007158334051433176360477216928708485453359600371935191613669926114405660637304802529994337493818526274357568685228908439468160511272861355561973043945254130081356150801377407887721752919320928259250067038443366734314786685175973453255533255271280776478271860596835966370423393455885431746665912591126060222833045225940180542935582439243966430016326867577808748817615615825251806689245297480286721882697074780477386217837221931718718183703864379674482860278271153574587023156502483822580857184718726678993562634655019928297700524928379625155368689766177266152563770787977825416781014597420411281282061070045034997001814030108539672089210230620400912952019500113966959345271951158845866050260893324037548617635218508169444623456708664053974114269713532986388548121393605988591368208159718114821192335600399456603987621013190225731945260282854917558509352291705743667534169504639189579123420099030234616997616476726438435593273930690245328363596146505625768612384652168058787596595359719343838834233241314549135485460410030790888334943032045190897863683430291734815627905440232208997724543262743505887799188979674419235121053500767677266765719109962844246881762401153132246134234776963220121953106222469878941052079233315394134682004823319857253998470715397403549552699299541043828600228042513081815225777278457002720471357050022801476406933345686932830886170830057305167940698621186364239051869717947969620987277821778419384741074206451185553011143484488458809787953118505824658466496266579851265785348461198070957920660302508433130530767122893440393475121277770853460211455143791881212484838143903021941758560842587405259083428854851576851632977137186286008321721763838075448307953539350420243778960456735858538357242294760648154245030507999377657889031478310767137865441800166775197044096029731537776320455628177860443585376449899513433276439068734116932186439392460102185709613775089591612660800874206208835784538769323812723886740925613832152907807643366893977547322432237057367947708101339265529752473797153248641150551146186196533902996492642547742812985812338257433883190228407398855216285306187453885822951862258286683260117250694956744352784160824563867037540201680226036080083117812445976780174007342360278325179563848196610964301592738358035614274495696198992403883156799572863859272938288634724603160945664598624516786582447903873323009026597077995167506149006714538260544543231606680816040815459656082118711812208760684545855761073805427859349597803710201402751947570139585785156870362484718619661827694387223089419064287830792446314282452243521138166070126029555152036164386773852032375305624189980116003231584009373405786399105631749146125722853891930570631355700365721093382049225090506642075610391733338706028050068754601072817351064448956218951794293908810480770995925317085826527659651756715906689899086277155787576833450526401572726902784189354992726795525310299050654758110741647852467944151454362927497306126992727141600384340115831001265876437244895572408159347848710642257253043919285342086572114859008116479603729791242705947934614065155261047360510221512874737121042050278786996365160001118333709662056293174048579896586243491585527251807678156591384536994243881316271484348075076200611916309730604597121240396880065031749422688926422940614935388857581087480126977122617612817969891754222658456136824630119759987296350910370878244139566090590138179962134237066772097502829097745126465052922173640112186575772610437919880176628587459513310153295485910443575049894559405423971427369830988186567419485016261520488325836351257652386307273004241429426519412958713717595466621468653482021616437028844325912893335611131153555536646952571060857220035940577772165178048536475667228953093078852676447566211934289391415542733751448051486293086989234756884893777473471838140195229675727799624063084279860978966470591856993375978839553036655131023330548000114133238945932761046482804233717200736619944266891536283714959925986506818156871213555845313442518431768678107352899335952171221876854472832250817041747564653303860805517414972996443232911356012231031637989852656422996694654056906288225210597298134404655574705959391830532605688994349554825153952173661171572134724800885387423299469868009692004498501828143617570301687924192533097770105702911666998190159239640398013199311951379811283907752893952612678975294616073484362887693464446008714864024127703827698064220707272195581875989467686443966772025632580515825162123072371847196397800535643326397781254209408980500475480083810534091050894006377414766627500314284062809795790065754017451999558493651158456281967919255389690031511966942418549943914415611011397734079488496706508841449057460476763986715581081309519592281731649213880327425558134986655474590691447213686490459444802783010720218344654478542164285776343088860697353213449307310515820810166470388165980002601764609920387097218458140194284500708016484710076454507267373303014099270858699717282050928211399695169410713825838375170911458685888487409272752339322801727695874476781681464710998757472406895105790320630943946484336750321359753244710971394809282456880590349152713826478392439846392780550908782701939916701550676842673314647300101084463487684156467718458990282763308378818979269708573916444751587937283039614949845600040596361219093524098483731216893836560991018977635949360923339733150712421172622791954808297784939718966718290338763485364611968574584593414653406131867349202581910437359911575319079856794500863184574032136559457771710571706171874927633331632607597967923412693204555987663794760460378138837170119884617072713300646380530920193667684251607777579364196180464076896180878083429443251464551750137523698646471846872902606062147949958127057623130215609964428444067790406119172465340747856149773529836520102074700544358897234621390176994594555334840384490072697223092989528891886117637410205058216374853084389851516634626672846944296704880926481535565992748939164458229760690368287700903204156109283062971017154816933457635329845391296783781657598984772035617469449969261051108523567081548467453303449216165847761245225895721187121562171331548641113168581070257796342678025494501265107849877034352408999223001238870936878748060307995352427377168381560102668973097529288982358904870125386756571887763255719258683690446822663955333012973487530887523449440252695364330668978096287760487917260159758759003710769508570116456610851547478519378230333200059579401307387967207881804542010597018547460891849542069058062831258393128363140147238318384242830585425423259276757550183009430159280627227705202216919588806106175559422489178140957271714883117660011507739139690941954178537394696832523890713593077575030054147722457641648606556002760618887887872354431745851646162611091239789195744123382937678959041088130183482983814918288536399390154390861406763766772612125845844889404195896952246266209331845242888470833943600947239525635826108669345648360353032286449506668897822148943498856527151899089994690186569154463494463148593526584152094552524366536861522432112208481428270209210312954992247356450982173608175926019249236466170568795244081063897618934725696230953173163267012334709267277628172884273934026422315345004565132643126262446051407107963943024569217122628774003166825764185127428132957255157295904620951642398523936524126421298617415846527584279976623817545361145938098606846479077028574358101752289297100680897527401266504934207783657922242974883606589595041712728601114804770350411965369983991977843721565927818572420907092728046296835097021586078787895983683724957014291633016919734915094692579765362584933946785401539526552054798874479280100778595194737202905785450517773210876274093904627664217087896927844698830625610763159808541836283690407850348896935127424895056616225127284424187111139742175769861550367147996287341666336816586036115776347336990672752436407850425870750711759383034637721808572171787867040825020825369763806918897725960272813551766359555369008298102215200271840857493823843463404151976476769505608245615187745013037915545426159678423164244226381151452369953772180122918969871202684383485008580439266534625435033684144977481114282739006298250423198047684964045700499033344960957283982128721032951871463158008285025630073097199253416776972686851107749747683852158793097934405536753348258700605421904521193720817527802192331410410167754245253828966667120896869066959741527534802486538697794814213081551238950825686104888384345566019451432875095678509591123773364629675956166623701594185254508777696855938358423251612091029181705819520511995020324893680823983658984134445289463251417921047079959681544348242336428226545794372692372710555396203206991378739613624606520414437319512585989691084225604343096279924535166028432787006105654764147618649134412618988476011871161176174825296139770426442151952597171148059857316319008217511642439421339992191116988270452454647643595266533445460164120229370901713171574396730622549243210689207974175845613439496485786369415702418991606815957114837924706276583590149445053107476328153672371988826810830277631549289053053309054056397421510588011173173624259489772063693592977926317014152177375082128981735111658860694491664487987631967949769807211387225025351160668684799500356146435491786821023379557218287165152699716747171118525681496572817909475636846794626922914145982086075385361325838128581047744198010148676426121954391485321937857223161175825745056379055203003006595475315650671275530113399251206468329687470239792286321727467409743890499176605166393398247273451919435714556864025800317756865340081730382008999881845475319289772335298806200164796521048013103263318873389482766238591861485949019415592249047704574944751629569261952869805482847485076187964448389523188801382721625072994100012887347401379503827565429536956861397984222511655034568782188291991864254189364208100428559764048029489244440286999431544209060797068138488071279036917948303889410631613653609071783009442335251021375706468411372150675185052748018623166740072939080961644712911124378168851690687152636242657981716272360112674008531751210187989856616384360844187261263937570711639450643110665869601587690319046802888179975138789251789302033382600147829532145590755217049223373532251139199377816017034353232930969112525253312623586650968120940483680902638372280699201581479597961449902585608256139033694415320312104404446550365934771842992838347917647256247553846094312105894345025094743882025483870962506592941113336939344807774333857559246106447656088385748224473068640948693911792929662160936910059619672058046112927413602641133674986654901459648016708435868287774414290668615948344945645389447500923035977933771878323449445307767903553732968409354651331594086800039943299434520029973997972020872247170358245484929660313095604880337826135379343345675058530992014007205013766731463157062719715777899970301760832963664496180944531769453782786410694541880731139987681946026255822422752659054171154254928284142208850913271414162437760233541426180575305620539545997118869789103382180287927683466359263328722082976983635950507246412751417915493637785599179955551205676131774926479950448865520646766399729756371209292342253230375897171869191320038011915313847010580894751103710200230972068383093734220389572204738384333057138218294008631715391151294432248121044026167344296554153994906802123768721883104802438335037335063752363966230923756628124344930824823066667395371725168787375405371367556301906701555231256553268597976402279959869134667598570433282106971658603464854576559448186332564233083576885215108211555470568611102498402366818718206869953120651745409919029339366558724204807912847311333791022419371599506146455643257205970810996148744009171600944400800644749224100991776676961378327520571771162642060188913001069621012719975616879356579622507774364674776381903557031554613164626183899471644962804093762133482256154093585285063604095574962818486145252296733465125258727315883318762858025160236294675393256457692095256809147299301908675403172012955681329136679068882047847104880308670684528945266280526352288948099858278138122571982152983739507575528732522333002351722882402274236943180747122267073988663992982289793510256843892352718414525837752734906953306316511140402025365081174482742881867558946711819558341393036386744895109077921643201808303348595161703457079437453442727892250803621275465682812470612757948692035787759403645587684714676873970439718927733387566799001707147984661505087965929748590189130046990199204142053041638541204666647214261835810680101119671987328311206675449221050997911479545372796481641332464838396783803126526974527526800996217750465630554455901999964218921901287315769158756649397678923625871002526192638544177048427824854543373485246408415747863083296961381743110326712845555410834065585334970061187440271742627177180135082496098534487371459125253579283846108495733349143170964265783240228310049084999316611153887387929335848986785289051063965455587856779394052512675146198225575826813685160685226331157902436696265382104657711059963750627672290691469040988335106181407050487919764314066291842987926248587961219220129101110774931559694103873166508725498106220854736457563144499585269340844796025590803773473758497040587568475208585578983251114008553072814817975515162557170777310423892854423941725857266538936181854775834841313839485125512987962343883924435731381636727900630356402970925765045661733523082119864477143992319117105094841287440842558589854591828173767027788340569402959004955496209139967492679048761783929913722790282394478743114993760685855036193635726366919281646932223711677067789876561639467819090601806497532157084576522495618669384625407346106291745404000644712749967622926110926484161546200044152526045013361888652066881156612753398387271641012465065069707318230692330636253323361496652636491861710310761273890281596614890906427796771768500304586050026598548876032748745560661889213593163712651738274866879860192177511587628565266046052008981840787850998754086795283802818138145571166593798483487121010056757208301490551012151165774999505131828465141166804040512904218697070700117502789118217881757011799336071951437667206962205197506702210594014729437480127442836695207082515181008065172978936222425588195732376053237990767255613446973970048111475327406906003989470824104631589212628983543100435051458040710820469272769554481897546757952231089953154067392169093029193022917239593994521166401648887303173760071638216503223111589058955029004901986210444270566208516858874657846143291813129971081523336552189346486832107062575055889569204779764011554645306595302232939978957448762070122689649065101813559840804505724400390100140731274834499327701847597741235169746584816061034542545091279699870380275538001012283603163465611262461982199241683458187087123834629996038283017980149937579958385413403809603243055493945124959226560037601755662536726263147071926627330397579739681070582185809912679415927466260155489902492638423698780812925417446385503952752436581448498045175710142530176456434119421700923407054359633030904857706163604945419776662166220110434392606902251406400662534634955006200879027725429514330729414999359649114445390748718150128403311817245720028164207084072322869924363637906029830013382588331716681533121409275188524677620492683809974717146501676057920839331441335611756584004196405884943720329183552267172012464409953109193104049710454987609231105984943550690982987304430567453665294790333675934800444277564687401697093610267530769779736419411565348631451632391904142985508356925365244988411798613730203217953060912015368387025230056729316696207450940869945087085732609107703575196338482810359713713493608417008748208748326398823537230971926601060357300296827790423512116767143254904876102176650828636238177999261485887172626304942740637066087766006899651227859028488435688870854251249934132957461677300849063722412048810486351833607582105788478276415836171789127878751995774913863112200095817219731620724265826734359757292683129297669686092673344767728496628208671480832287130117982942494117389020077301853155299334091282471689960919165874306415046094653794369606175219397793377709436411701831887942238748642178903226315630038176634039984394350259903642404818826365173877094681881535596016212112357381344909900387173219706291461505667196608334237212132322703948954261670700326222840204139808834838490713688568756236873972821185088647876052943858878154398036108452295290119418949379194812746847068787877826948329199738321813637001738698011330165601579245011628772443871742583319681275710749404923917723210534826813556804611199792115635188961787624222838297868280357749144703183117309267451561732636176194046420867059862570128119950356225936014251727432656554580599111168296842324630887916245767160385817257716892264610874515378476279517489862588759400986279353288449526312836989798094315853655557596853192532753111378907134221282861678080533529973289286053959420811124152938609400924080037274095234723717663596653505590513132952864494556996082973482603299570907476825633530733349617214889292079591646400005253626700994840671354257911032060432599968145559797065199363634024443013485358553096903157908589322173912400501417554641945203381956237907870947567064654736441817599030133169874435809850513308409329921637307179415797121505596627843759348316267681547361483722376831266222854853928769559314311516453482351462974230262892743106207738702327583347257343255073418756209711293007596476879440403881872245772428894598942387809006886767765160570022429524285493868729463954967473452483783195930756948684111248218724815254033432994586807855081183365848462785264938330957628876215934018527572714635611604096495848741918181727188701073995873268884445651864477577240571628063643629823381498664933719711731888146705721975226595293355161535054905556748231600295017994351212432809926812793691572968738458934162410920045465807052824075652931748546480433828467277667372465408055962306530236820815516027371309943329749013835233706221646668830065776748824796496873203821515403481693662431358242982021993594749263849809327543648287943978401684202437120984994285358048864996897830595936148863788133759020575067308731921628120931506690622282084422361081564340377067584335899166512389568308722563312370431403337081943127680478038027753151181450344631568051784427811119304033616010480360651629380689793676278383660245948802616400953224491732894480757870431976626133731270563054295744381781023683746687487947327812625037946403068404821179515960011289812283025922441915247660583129639474754586716019428610935146140318116225443698877671752971525506579471854896693299161353633726353720984257778871021963969529737638056696864469919610652990549021823291288463341461745658196818923709158815423854419137415833228034268634270528412880176399743949684098436545151764808037621890474940291574117228642742099787203176241728217728943909316865508681139120292560151696548836847553144520887550627322520986820956728317671976999942637995822917160562059982150970188456881747600810174918503207854335533656744305955848523776905763263118084840014285776681858945949676283855087045314258144345724704848862588029464187573634840404103894223180866712892573156913880210941350057530676361055136484819831153632387796060320473939457951046499274182173765966175071184437117482300548554320910233082642730383441340905771671758235037180596291586921295799336094803054868654783300594922457314712088904540217979280978206972309649721117747939187410837030625379930905708922216077345236391355415224427889858554676996011866717226573284500902317901517915623528742357047892492073769825061274994497768996753440305064706308609147879050235771946584312668535382349863330619689165469488045225400697841438308683420945152313624856771782873055144938330768188830228533484539072777676288621174758383591174373428111551859266120591487668637533805318024668712729609072229398523718086485160123036360459124894334870048496268059214722190737366242451790601434447592620439125925688554378002562577066479148099403750994197487725554912679416563348775203722827618905052389999158549449132934144278869650558418194174029486575083256930594332067675168863746142182765289436778986233090158056667090055114344509842037236512323319173442920502487915350688231536171511956535138984729489549354265465251671905107322377161139341194957492155650282333392130805576583897251810655822378415281546412435625299891570936314575591808748589598457627433128387196163529267395720789091184009452230300568216579476581666490690617079142992880172101554732999849871484520153965790173809175420708966659583409093397675042222969567234085498837783973515026144148606967405013968129221996850769678027727546724437939786764873938639471144223558805453150126362453467688246584507726314234858755257613249372327101196416932603923876678409815426680968536953772663544718483590630542490212830125919754847520844335637870620750259748880143897945855447871222977288111120710289630712401604748081800158699561623039572621764932347867845435155871664158575944568778592102642138913527353103402748296629792282931339874803572049345721207644441150660900480354223263800611351844649165335747129058583785778995953397305265153466457307648271207106933841755284800173286572423072588347389473371265486528906602274118016616051110756361883615324285948255542121018388617393429971547657059902871986913881747913505618945621999243830107953781808827534104830189506669438816895001570614199966464022788740600401449446690236000386752843289682391258250118596826708454171375230100084828038547451602076454797558505213110716133424275936483995236100877507252458154705540281795143591513401554743920227107556492681740856954400392333022313617413096959018661321298665015514365435702958343475405810062289825563155662167200644626013194115124101909939309881973801280180286865651082770804770708925770021949194010407116488673100323638804661110174122074558148849619932527110133296578844209787618499889861992941057202336731010657743493471662011975117782769943100171940169465915041150883754915305783637493031377296530590579478465770266624611418118151308382663014912718736243667811378717083123934037348375351399464066584762968474672839188319976496805858657923172552765177918611734766607409682810368851695517910820668769668535566347351832545331979629569958712385354954320607573591323482556790988242198841428043770117589326754640644031989021773585291145176715682619509712469857627368954738115389187316003486029925804909835624777136546838231786116369428124898930700116304757737511321480610684836361305755827617201183613599016226711933638766282580622454684795805979910429883053195467015506758355187414682542476687304460556170492494222372936736091378684367873477950975352057756769446238255495448216466543884539843273333223119888727667186214532881009420624759944316332604681018734739268009296394422485282107888401947814911435006213502338258467877107613025035095947705497222528440383158996961093244635875893484210009666662621892306718221159954679473204119107776413748627169108288082538945890348944116291671702943246576488805935891209290357044440882440616988112049760771803999205411567030106954631018212487159918607198945919124746583662187250740007964450303400476022413179261955931351541329445132853798807563729784795244975649442141610475973591541757247998997569954312147663387468030027099661032307533502625125226757168214658314889312232470003088587535677296459928834775990095968539127979483792594272168106749459555437523151612089607798139426399118416721000060753156861097545385092959830630086167835859742169980376554048704823365476687556205054970720556296203265642804404727609836085432513642720867514338601381912016890811624369136616317870255710486855752400905924014707203695018688470409847015560024524407697835118479523666407996324795730394150028766353286429089314091609420610354466487372752424469117223028343625757834810566061763676778713484036920142890426174023146532550165037896102707773795614897651004100247400667324000324720594513778754363955337370681133645258170004125298192763856211682951062225505191922440782352276334313631382661571181056123791675308882205794196814758712847895769366852738274360948123816076880468863766695051705628227773896005909629278831082009441101378072644264444932478467388949730201378589199338380343965510539581407166453755471188591539285677920199037530490172069747046519898015063067593995810243717296307810419081828547283108804014997932480345390962510385646169555746274377573088174671759816941319925564876382717936558003743930918246539164196606943327982686387350032368843079018751141505227151744897812699112403329619578899411423132669838349486271689054354325994667846159280728567829434554869405212989594836914761785595998946837544782925747446607667735586858010042744876417881382106283190466530434705822249195208544537073751479714385486563936276518740977911982356805118902994831541990123703739712170589460732303277262155203773917638164926865647295106445114141417586673558530367612784334295110784454381486543169237678266515479755241012670780102918863842115645310362812679364084847267550298678113360683334043175078590193786405982312460113678779634081633397692133306453783967599494227583173642792981372877123289397405148402114531410259019663941204746337648535876417814924797220501872087767808147371707591438823927918908547198125478025906774703847340249860755993291076735291331431147473039956347563581562055217964550531406898256327740267512363054706301709143604432824645393176274543280903080113961224085737885188243085241104929914707105138074352242641728640808875883374933468987744492422357552424257809037803052504496823624579137523668996193929175963007024084495340296243421808034237363653234376851244931100227252951932755614188260198642576960001227335488545197773575697835079502443854783344487272928756180218155980756996372556196981120682903756948595059376528222210469134771206995776291814236124840524002555833218474954529629397333473583277232613017497675427050858540750216363548462421940693176688138283149332504084528013928357341391030426504389478388247833058556229774472475735418107349855107671151140414476125426705940815170870965340796792926672986283077350662694342588135307003223190292222414065390141770012959411514248839447238944191012595787558619114361833154856048258263354465642890759957024310850915414015308735193383468952042808821263510175287467958021562255179950695867193590207547848269460869104879043399452823300627960234618114735934916785688066892497927050557604169560512990172643386168363905045423545070469287623651361781522792212737981373638590145508807619640097116186981566485137712841052108180343496717257267893474126291451904058140714319095127766322406610545032623647309297048391950229848437892159969850135226249853012771563966507170018918718497738256965685145766318386454182892526486552344552069343891905764896588637149459107994827559748011905590960924451663931662216740718645446043997380610329510204555969398689104155868482486872861362872463965066004409842222906088068356422316635007954084598258841218211504223050510798462976013390853032609672410435342801771656132037743939009563813750435928051952370719826684380509753926861846203613344375962757401986333126130005817434654779499269039259059835173765446046437465891023487566947173658817104448199654809101733680367647588920618400272432890678840455790080044801049488287868510495979827929141841250770156247087981269228032869576901940860148704910174336356899482487060012463352750882569114367832689058550565449017993249335679085575134729129130359832852337415833393121219124843640879462872432600832880562182070132120821414507632504711066409008524912616327851153841020418615818804034724568593231956816786146387484798140697108217755572980398153609090945376754286188752340691484667349324238400949513213121251209136215632803239654579284417768469179024379602197393246428802255652092510037140271493880349529210776067422319723398961742044740206811481297805975661622521064880565158425745228440856134995764597530466683881509534165881543666813245296163402348772399500825043098248261004877073705584336727946933813485107904330325622845839617092899505981949227326210971901621958417551894279565182000945386952632001993528543421251155049118724711142196120421216174769092112445490961434016183418804871101384473623519674635234284922207298540598436179505427013255345283363811657098165872418376631302920843259774375171164336239618766261674186542819986904739405000234277100967261214083201036444546292301959183697373270876691695382626056660658997498243591899546986748900686673644683798588680977951634795039162446476490740273092934949288601843315837713787472086238073604547746523004670555881831844537775999620536518614889360701980321917229084988021994093069464302367757001602847616271431150441705826134296019556026124038731108972345704246758116949033272507911017805896634140356995930567179174341458782055478171090336837027062746046293526682227397999872769913732069239383741550377990424089469821721766973715339480552179750172496764378037063734926293981900757162774821262346558365574546872060937603048093347004942840841209142661259388313079659344277358779012888006953393630870067998511684848208722416656643300343840417989329549720301015377057928849184427026933295907182472598871557129127922463076170007071537861107124785233764096505230418295738572319720371105784099576908486287652990040968970191962541668939287123950323858876564113485151297170341961146188327664763168107550523409070586284712775445334938093410148901708824899239534779081892176083176309894753988564772110745075128057224596758156842971322921928123847464983202610885909751730586888340703350670842900996903425933687722735565793504479337159762797400449260645895088062664919068286194715015417066574592012251289270982036714322111690599746935278859447092231792816089284006711532403830990194744953955060325673233400707140804067181300676141736671009716513226871180094343482959841380283972849090908506266255995429239922094932802473265915580655919408768605764447039762298727411521320555908011472758627666267903725626260198136466088156693022976904387189876596996531676767368465340005252281683722006909022161657348427394145096141430439476139504048774525459977788008985350656051669011647218244723797257353345482427755660630314483936784265521897199944124395749583213767889665043645851593857013173853331588883077650542289999844006383026213341572122455628786979612688208046545339000564992884793733763885376746254177416980234858944487033335121277793219544104163421101772750759291009526073874369543509113668105274510666925727194701126088479955253944003870259560445007049802807157022784875145185410727611079961748027987999946251273451114269015197701807497398193788452212448230038903427528776234805309382081953897972110212129178632433633657348088550789342140016738018991756718316419772778795135174753004176582255394601488996939944593580330123680937581685064008707787446197280453371130766415435746584528172812702887538052344335269955022377901698231454041256210097778166536174771626694867627441889161760473864483791672092391251054763646077433780856500309373428032750264641871246362193425986180862280226547542860451008353640937282039654307597269867836384035491240080556016652360246510250621150146820156969755615475876509117489174079525712142854703392149508199628859782157167122377559382316209071296340871642333848918827851314198226720156899787269327744520679834936778193779704084422499322188520433891251163657418010462965008254907460392686625354460858303013792521053257663115908077980072363410078228811647595975865670870755654934991845703427830769801366046392657275232920552825774978173069573615942296216621888254789401204240558242481893780761756761845444804758153045131930929032138110231660934337782159506970838562814006975020932247809100463241188884619867234403856402821179142793643359200227664065362642903869142863706636340319227933296297377893824743172798365292956050194133623740158480556939770422031741829045308196805702953470090126781908545582342849938777350294311700107551856307767744522588713789205207805339982932808287777269101798850639031259594718769837018846893504397109756706938292850388060576818352778512527202986304926437358246134708050414852348564463756639503623013718686219371658350218381008261044550019745637441744184232023926301356382087770221866882430014492433755047629682987390461064468145290324731837826356001960754369479079841937986622155872312899175194859208439227952036463356357344265219322770626068091734253182693117200033713876471595450479799411061104956623819583155900048214632582922485674190816435609115208242258128534363797734281393881493598767138440185873525471877884770154159253702447986065473533361814615602607692710192869069088121222606130036815383359622251228273239749133673763132364202245971069927137372810874052747306432870010872175793005996077745639326160759677669620882828077000012075235869861261684555510460852262836559063515166827959403820769088520473794083187247152473142289087003063032193642291787817710778263386140000889878891905720201137055600309082191156607856863008150717399701708911411526155047960733172025932730004014423341032278130535404735256848474725685719886252866245379830280579288405250227783622055509318519809541351067447697623586196027613279423118548360672229603951625369787324190944539921399470879986846970039652751182778959745496128652888096883966625372362281901947616481719296638608891333316880760736635783752561842847530046977824693499536950531128612217135156210152542814325577263401105796720836646444092470864420876073948469088354131007128294124574094576055173291076622662839862650290205873756168636258592529441671564719818924119214176954628220884817901167590096265374863328835588257943880879456822194476454752795048580197218317980601051041706808995388541137733920846940181266023687393033677575738657816949491001917158387531006246924642307470506610679408953667482451645151215701568925362329227892576868661832829532247204602780337818038917389694884591523624810529813922677880600848750412169850143631666804355306876852383331122166438216136448203234503475569010120165863378314416758700214932459208282193718734156554106505649009256122883815877175008241668479019723705210235579341442506449758686152534823183142781779534451813138517884043613802530234361738100627849909361031931528678980955588589276630370253609920120696565694130699881252164378784153336766731974314789823870707683508164596103410516701825723296008816038167773605026694164164418855309515480191265552991757918124790039413234284200879847075424820879883008231158605630647612781054862053396662711222721496338460644987356498829991044418921944059839352262286028844149531136697909739981561178631982408591758045714675462705093265638249743251594479683243431944193754801842690270501744801480302728483709843104788823220070936885244912823630430452069156685012433344247615998917989977858915914731386747969621916831605332061565777906219611899089548112897484648836461913552260317576728082369387386145909330500351363748458666943518468851543385852945619963805517648939952918062135120089428464997951054645583313331211209413479315119555956887822298411628942170786306078806618640174993842730948592637348150997179054236704117136715092771512450060301386994282643111022144205088051760579051331277620574204238799100553956938590418712160141087910158613885175149234762175367018947448488806660263910176305725657727967331022699659024051966107559991118157025721529567107170609486737923376592516942276998850863160636953743523596016909815660648340019153170286744836531315376116882607020773153725154723216661402449214128234968817545752618136352878712555085386742750398474877456722712071714071685820959239842934529773122709718765291787348098492963308114783845155143502016465000229305582570652406443430153673234889394880315298885308505880358446930103353220871787321941836346207681139587479906766704272892706875655584017319535641113960245919649833210949219613120333559986534247751958092974675659057517224494902601647214557823530421270385533568095311446183374872465660544547508732501062227063113326991713392078572729454365004718745627948355780214920739070853662718096428349757030019510277539999969276197038764402263989935317477399321783502489720954229686936503683192846702426889878327336563010839630433855124646487497239930630829796585508686494817443926502503165227967462882157015470375872096001333190772985777939417596046868711149520744705362444037929851501948997799642404837031844498678909367819352750757634981049261874185948264686545954261192847254971789502438757551953961574797714203779072926888486899272898994778237285624187199438596962566388775468643703539917620662906073394698731444791063933395130740155855948159693620134811563495335461326977402375326918173547428370585940339290264785939453297340503067898842181634353530220617113554791117780536881157300839852038603408612188454996610095923176898574038212824494086703047988836455456330631118942541552198486600636292281429054141555434450884029697407658973974276062141446043386341187233217313968005023702578955848167042087617189959909431703963155747259433005626180257387821970262614586134426644347897008145951448384443865837818227961795889073801194665044521221582413027746045112150747534048275107457969772044042961570314131074773391641061841190541503029333509808597846794136948758300246886735429964526304027269001617486394078589008823342868167290595519421322301070110843171812125420651823345197093529529002011274001480585140172706270693101397199758001610942037017860538092734996158605716935876000413301599527036092589183570850619293014873750441018826756339009775727637356173387119588151931942314929126542635573329475316715201182691828155525757553834059816198558661451000725236907829533626413340288037056375676024923796133685678994379358191424485034288249359022055168857397407148922925693934890412652098590916711019720783801557020644731706871878712116493712609103620394651275841129802215869587011299679959594439372235393772417377177006888551391289921581697750366578670794024189000004420373265699185912841606147189951297650959752682554146447148009159291088258667601637396116866798058900939860449425190846960810578581731359829896241672420005246279169846677336768482516099799380827121249286840361906585206609675867231179743120105761574071787175537483935531252680624780685298876335128558867076826295595723342574300911284716111454150901715938514066792017149250431754231203687071318981405553265557062025891662228163049176977217836256543618935189780655551902893614261917839139278428657532021241125182972867600663192832059955903480202204210099118066248329510954369068283896661552984053139023361977134995382235586653491082889039860563215282479266728502288541875701459103088921350464084804170643569999495294833296848142492887950813298171538930251639675494124947998750378641142671363923772462153843440187622649934185207868404190723232859309540240357135763069086424071391163856561635655439467041031893038043893565048537585811428983751307584886360224386536701501951444939243229287297873982601690060293562746925213802704112662037502340729679783735346854686299502403347138950988014309406913164851525666220944751530913004185926705113712598838760883996119914640129422453067761119552989395040170853819774605777975111868006251318878208584925434485707260803299843696526219256902902699877811842256071654598743342418803183396651037457258671278319896494926044811801383999648176401543467834485935336394025117545656909883864462014571038108286256173773239516949078090233947579655896794390181508745952416061501604635118456272864440420399510223649416844127987441893405832843978986711843952264386748177472000826122348269885119492548833239261491455322015749910186436796823510618386672075239847088962216530573986805333399388074243724331753707010855599164232527746522962785634237375980839654389842819909257048357177970695188096473662473144973514049572977974723846688607510693258274520735884771518382819710479127288613565799150971183815555890958251266769651991641999069559693795070251966377566994772933523398486376834713389822627799034801439982995347803168096780388954697027751771343782383319319041701619829148264913353197557569291897947449245939977590657851614976223990646638345534859480996013875183656107139865543827389273464672605567106772943744192269416293330261436049692607774274560208157498785379844541201184278186839459070017045761928780001486410557252348175073100104614576233630412416758954728140100916911821506428854726090284253847748806580968870132908890476962195140821310723329654106519419790788342373649899355140271586942764944318872835853620236950087125847653428006540190974986978123584612240163834180506507044591279050353276683100789763697936992482529065551803788416447776874101127432878822366302674061298902718302474363624104275769696536781502487281116640489044939736916121427163910752615390244791507246810205972088989779740760679572420089127845560933197702761451833056323764096420221361043866483122877154508271498988248946582934750704573203094017943891394611219544970349696658721228659946759657275369321250336365866508066256983200915955342185582400659373594185059790168658653808831498434625666867954514964705127123434084010527071806867391122979570958097627749430202300274890468870240249667754109538010469491225773307096835542049420806763630922762383954849765418985758948421541550060457482646182326317292737683181482083691013749025750008441918759389206151022365960785169944809722011738002828681782924474780210981536319670904161351086983386973310187998588152185881659414319584417872269421909759183167198054728325609879720659068279812139269387447151368087766285515552413702902761210746576085206134016717763983420798797680198322346472932221473759703508931589764286218942844917806238336202628463605364495870597178069650446899036484626465283369295648239821613071712049844883972632874446668150893300356145924341482419114578738739001631739153306170535335776541759359588570761196227336860661848996917814038241621463161527196523673288290778525069477279489027612685115347992739171849626157474401134971258355008510924641256380160797706841804023458035965757627585343302501873335852323140872452051134091562614421298646913783971677212627320334434613923357342504591484017986492160619555499953217354987852616963504663935239182843650935515801248421985470526775129145737656240331780005528732833172515064454226962504719893857104711142971871575824678593571766924664962035724135758031861545009093713470154281203827112563022407417130427003872356672213280693960299656009204343755415021054870835078379138329571746180411035004422006648444147026018717736562745000591502510685579683644424504225184651139538271166188446984778428763477462377121220515979551392293856768058036742635858244995147717056495013822542367069216572177689731338416645416984520275438316339720982492073967488998480447310619302228632778202342315899572254401097775518659675905281113028736828426672055149298415930543644583299894938849854591884625786597976076148905499064498111596511437721492172504608704712558379023912137028934566856933788544561885800102143111935520388709545313054701180539959835501554700774401921194285341595615609927199834602746026865090401111714083215291477625361806701212523946452762764069588057147723013398623275213429261010531371098072358934265288347551153016348807902105460317478544772909397337535047349592672978236288791685040567083896793862482929286373584433966921398795508901147434743749150702191720116031974574390174380654214224333983357718296353932663356102368438237767519951190502318273487836778337401335610882662139119625636281581674275019901881303645894488485337739838206691030271900708557752324257701110576231936339053677233844758917147230191349492413938889580870372224991606446853293409521855718614850791199628187108151516179033759845840013253801025678493560232681641304112108112474818053190514476241967303349901680111721830314373199916363752023159039172216096040398206386958897033842035149526497905392963546927973442410102492370431053872641818939666701858586896771850229614718174668054906273795796004074554110835874523525503818155235738678387212374607851164104116800067312604259343470747012631680713162974915978470939170411283953788649257522055039268800307713375877833750009581677216032221681798969377780980220452118875523278788624069739849662147136951179472154621037540256603560291533577117632664935619117839077238704762916326765231557325474331245957996294551306080881243579295165678405074095208623705168936421996689912427290118746617905356060934695161359869113943077710706925927325628908892823914355381884703313664373567020131819218845000315381667788022212462385158282723612504473023041957807624306077130129350913856333956960075601704030012856541432377952909746600356902101334619973392509926152964070921849265778064403702251461843177410161573209623688531408406494391355503682069207394032631734562105345248792033008870482322617671914904294496170517668396427953305877440291503321619159869352351682810612456968216003598505973000056227705554853686489330277278303596580290472392587795164995182679334453872663303049876952272290652504427919252405070092472386291845281438427660204870458321948280495504612198490715684426564732458532995663112082104741630676744461988692006589312497694749077801511296983920418839582092005013402576629950948580163649532703427007426432389781175841837913119420028446146377720294549090971674234291294336155774154654613562478620489072007944959464905283604545696355109227554082338250855964511978085303471569075665890566082753321301502137013351930790568585085933265946267331812459869533934816799038152962880016965081083523389258764024204127576213444239933284672631710327626786246739618068096155473621237402295842354978730632484787008362623244809957245375563978031921737344156846951232303371654840655636792668504389134395211180555075231766835489008854021993211732012173795483457161783974145162552172263325299113896519200183652621128547864734689329129043167212550841915351136277667096776281658100960121898953431202631890821041069250350772725390513558631010681338836603311731199223730068014182505048720948611547692843148425605048565301691027862182196321601621129350030429596923285507478323657221692356723308690843913908591499839373533088418891431243503846787162312562643298559228611273405593135360250961619868089442429158997225112153214358229160933914870393850145047345853618948376121322476559415232915191877029237325850651346295696619034465132326927604141384284104940726278635215316755188612888752738659581011899304537523298135058840246249652560064197675468032025291411416025385644415320740667463685334685651477703719898446327229656510940988314565127064848761318953581858351461732789493857430814361099277086322510404445778936607314612848209756329340400955515706615044794697323193600954340388353071205334633123216244030759196302088263730839434438220176699242720517277903700464572275334937875883124493772882846045277982553589974629117190497764308065457528559413528959807792248134214916122468862229357549498642864549730486519333330154842039967723958090367786003167699949921979857046547215469439799364442100176816079270513245270703533434553025396447081487539555318832539188179371130621142200959848066887999037309273424700150272311932353567857663256954877386102465181359815901629054777686628508579239454251103506050235196071041746337556844187359273072934002017679153078375989539744729237263587684134586640225550945525609212034076075391291304002081402163473284610418954632396328857486749995279678225227256974932378063748799605975146617407300646508445115281248229612162198301621332956612438689949221441098860420466989648211430051712291981872939578475060832434124774401909571581335587494212448818039897779023329496447295494610097011107120058180929880279301735722112856524401524074926896014586064645284025787357687030324845273763618855243309152843058647346233344535689968983544373768585638107466729737579716533176733063444602877344384461942756656008956846478175751195439553007713686434052309375584244812076745945692479279246221610209859830054559608669121887654025346879940720496967020202703441472992719684027099761180734486502536272885023848507173354642867402193220140279284371768195890498542563978674258090273083406284645922230130239020102712210494064481470522553913478190344877949163664408936633911871589119409241936659756382528369644022186003989656390002555373558520239307886471524544924248240847978566946893939101591618868175942692178665131847265936291855693294083832720606010714108593854568640805650280653982296042382960425296870042994670989547418188584003144199449421469060502441226962288210349543902178159616265324540429775549432473723435183055724335388351155868750570052984030870821121110925762948605399408562453447474998540696873065784427647197962056549881772705589499511876010234713699270987284498067943973127550307617729829083158639021609068198694876166876248505257903456842493152772521998198819168580950800506643956053005244298564883955597205705779107074775064954920560410320581049182069827084333906316146693982067537663896166260102185217451693547512395151650251860622515442768970466890784830785023584168520108782348748015964567962121491137162606957108358674002530460748205383953311931542645333787388239190469357740164664752881822937607530195276421789660224228157624170272676204986079350411165171668477433878922862150155492841602698502529809632930815965267821051708894288770478027072434730111743849812726706912268742913522600125260152415983784008557510748633763995256667808188623908960244454436607701551981263574506579285008254276518203466756028858282093035836235361347783603964852377096179716228366493876489703845803411969800076370405930064971898362485840025151495735173916795088125714164489697539836263348111489173683790307202342016106498929471534194206467703670236619231745465481970693851781290363167952253668035868270635907398964286567604439157326365149404098771592823051959626330984183061515386612496926793348619169953984381772388057378668493286760853336216274668106426407527231908569604709114482933617709856260081836957241189749944645797329154407939748812423407156810013908473229207745595810705907884066828703452611662322344732854373024377401412454610047308093529941777563298793420391427519327854580757916151463558076995273242967895024401942923083799561708000364994461418363049171823476187087416122329168365600810280309848767404813737976395304194996032831522151961764972747877338772484360469103150653334498732787311498045148674077952003826137391078028514781428119356663238317066396121232537990181244318332787275415595691392904548905177358554779730776950041394122806878076510470583183041570463367425049485043645861145902704280557183873989291212852914487588556799186684004802978001651215331998455651103837955132274286532092801179499395604813080715154519860263700310884365351662103374030380931166615899627606037977821444202747866756643358465980273400453189790614209351771580708435419674101417138520493707039678835551378289683766649545437222629278782431910915081058421269277151198486015561392159096910231570103309074696299395572833294307348577496960429587305924394476128208052247898013579959631330400578326150308493617663619541145457398478415598541416487826379968354655484965068723893330884632625022175084102212103415723304350684194338495048521142255857926783448317954281331806208263973938712605685207048807943538009628477868214646499343892806631716840775702269017254888560102373194277416489193702573192141464167104411094601781495870101069937560544816430342843765000185087694294109517379745551253275669994489253566870235359599618761510389529752474057384507185547341186595577847951692333919487375646288271335794866588078842097564262792465529146066013121647021630051214344269478784519495076366587270005550049290853735895817324116471423270904097376026507457216872315838742113636491725247623428286974441982482280388723476475151626546236640308647698649552237926898723069334491388369569157461120235275743310654926509148890627919824149404788661079777951485718783039126594793790493934837632272038076952673319337864292464272413199626321895272279651140984849048406222275222219890664318540532855583885944871231060639338572144566674668776538947303983510096103681508670895861382381400085817863562912501268887940106120141609143957466041300189944913424617560768100757653888220696169927598994126820775760653942255012177433692733651851571701615736155718740971186075242457041435668209851685435157735289264807875462700122432055701066614865410665529700412389926502275686320491784582955217938654984402439060840146683080407552664770063925635526050463080858828114282176733128692352948774295269789578714754546518464159739368247656938611175427507963676762930111217711115010922965661707024730756259468765000886192319602480209338808329899589964319459500333432847690875587609057009411713431217754219532035307317584264195205547037121433475619158145006670933044981637849027067346792760530650249839950797398406957253984643250233603689536500115348352442405508243685994615924652297335830566863468025737534475101122916901597307992293962994494399344673759352890176335860149830427005503177390882080482987672775524047013036988691137916295110368537432905088446389601442838168373955354993727124803940619312581024222502624579607407464427516137832912786352225692326351130360299227734298406092234981382829002190785281387550007498354887029411004444516914165648804193042878699521261473701780164884620283766110275251663034704330247039643971799170174328034365591078133392070417765385113187861859206363167474400055371522655576564111690484772582761416701725550742793609675600124777274705564250490856387938169017584527257950204425104947104591580745280320068648527249236173613289741857272329889474646530591965625382291877394828103339827886269448967867874155679073114000272446478594291226779839221580789574165361747673700545714324391771930089992532039355615577083805771633874606169143074327777827419104534703181950109061606368162264692105136994121103650999825296723534139959131038878235300532930543756892383774756907458565633919249369436924418350650429983793466837355698576235683341426320550382435332595774202086544871428036369774787407993903092029980844950366908626756423206835890915388437771028740118478336880793027209223414033329085016046157974606741185797924349530029260068056765023731570193696233156289520388186237465904424903321058275395587189939239832146040205150736703688901108010296342633900009000307247141435425501880417713101306482308525360997657655423161847556603523590323646577423890102302433402317529715248459372995317524973149732686261794111864090689763468092000256906411218493165600107624838278767380598788192681385494804087286890495618897177269836602529751153760701436061267387651889477636594218394309938999615079829796178129043574319555923733811027118963137148093082842236129344520021883930563495346174074879974960609172186419967215165819374469669659354675406774817850757154141336923629182270908895148819354367575871101041686523030055539515399015657974055645590968872061972618672855628649411788207171212654188728381656788516477257101826474128931622014348057448157727539922781409191303884058970991774171732184619054672677676283110527643305014614229403977921919447095658985410325011430105619964638402262571004988342744843009324959535176390415349128243011684776384819885858045418926055060083651571505873586447405050321994689477546422222557847335698524674593568868742345454134428313165210612571764414369719284736833092363337574147352072730297958959157839888145537305733832474412271140427952583024179048922871998780707105537165317028934810935334964052532648872237327862182119128247944893218196267702257679510464020538370595748934190326352380807252914093267423022642024165602352252875163931504828285670509826531457067884789518707436831056737298600621178092229130145221281260954897684018794640031283375852380367222732262144084660728693196987022336894926168308808526201777955990428656235359805557107235663073990311802594842106275599522558528275898891812113904245431175846002242049326518223575428609817762590730643635056265518270690087220715665664231863500236382140924407370906452645056212139276075936884209637918259084209914771549356519327937617740171934619118484443261755877094679161463067321925495967143395522276908146162636608852342036244661398525598482116792813154303834507401496574469035320493297675208147525431182290851722451366863305913656206105202003782340098505433498664715392382845548579262363097466140676864858590892288491645587647327290503334728021898925406657573115551257297743309405832663129869583024861332453535636338768655838813350015360183187377914060790985815564065015376005661819708782945057653704425773898113630491009016840545799271079697237437191430288634756885179745738870262979624282145091953894549205257778133887203234683473821119798336103231570614644297564161417750103158728742232425863332038978816919080650262848077155345811636422246365239387364859646100441467650284859322273518105564914461263543350323471277010890960917895721025163392086788397265872309122045243641255282448588022779978948161284825583120833896659383342006175718653783640931526318235363047442624956874803530303745173897089553468208725988835272737832783363628803441259862248635270494483900430124648519837975898129119038215564413359098247606750352524220768441749127225285198853579978427595553989911219110726067680281551981655596554880331694689750467119189902881707386857682438348709060790896730812357135892890722216680430154296660346381876019877898193661801800758744917344799001573315178749564165812813336578375593719031039519404786914959660074405968584262640465903798656181131371758417750432984847359756865556356173423367317798708691024790422840137062424170534214243023096430447861798007976084534101527137316123201017222350307878148327960596344849302903616943830401518114798155400005305784474146458097280511846287244785366444495926882739446825462106400808565690190232603446082209554684506748867293029163056509166644584343380196687218718536051522530352587221430856919409222070867594772142785353102684852489116815686132051020045089187549997746609846597595115357082615828205442305519359695430073309009824336453176087174751716350529665994152275221307648403392751509537325250144028666599195671216088740359746670769118599768310796832373367193248054105192294986401339412736752198556701725358778379210863991610623072981420827855856401637082871768470015079196781574285222753570088660712137743534369267634593491509488711924466963598254574166537744025512091219636223760335568453749055701677168562224472043488007690152366206167972745626864374449786956371003140964951227634472122004632696900918284179970857846253561161540144652389069655223080180562687697764192340529787443815912248744358938976549906209505298430790396346339895091381168348950717192458716140133680720772883398211268502129561061023880223294661971250033896363854933644390107257754981878363625637008141494314084768933662469489362232341357849935734475283722007299083673778480033993695188357417727160157326273961142280856334264105872928231719728561487048763589162356930340093562226843269366073820143788654957046799073545001439870380769862820357672881246258640152680020665211880750352320443509151053017589351731827832460785625392168359400674505399575339625914778197582022812217374001769588257007142794960194602417205697044898808937574397453888081176668237833625489276904537168725804260878108071577500914444649949278128247473327126782095104214744242317340560597571392992953634854857651045367860211043913664950300684158915508773881650805151473983123666030243671250713512854285873993437443460184624772095113884290217478363186140280023953819256224521096419496047208256578254231811921942413154228211411266409024814500656160889411853542970507365513621151804214878937552918100992011430697823876259995819414572607853349412022096010378679054371935198158871046097879406627473880815713926763226856202257112404004903237762568119551365678468457275586775293960071351834119607074880945553884715775239899186208357389250892632186613282377588929442322010075922558945735369475416924595611230325076460716099067550800004803653619452886125678297487362215650396480681678723853979208692157121579178470277589045139054958483606034424155395047544079403240457791177099185391167154564140261659524170930973608435079440996631691185371895496716136863860286650587604636195441855092086558965395536847849677854719274862000273328280539273802807925154463419069862963705231349807559374862900722858744441129288138077274018678265693065120994494372770112464646439692686873053540230923853598741174414551064332658997691964390324764878270021015121805453979491131879090647497242657116527966243139574451378691957426447208997827810122448336989271440141424108708608769345127748801688122802067387978115351105961440896719266920316734774187224112469705529541391985985001262995554003725656424636338984468016974886351690422303336771817423301104126270447139129458590463211689414511212846313151099800796503702646353434497044844968059383865691166409108044390769296313930484086767911028354421978548352551471134477978908381863928428945584405696309095426146575553897792645236463898083441143407213058120261070003742710344724275281317642060644334100709305016083535154913731153072942107873678375825015836719155675366319442584516813174798025991654465609084237791225967302228891243050129940465973465162734575959230882095229233232879660860290118180946939349160813956550735502512484525833460940381844936270215687066452018482105570668815830701004572249509252764536323816274537950455956733384495227330746906377863281533426420897212026654712653436708435750831609339649850588127639858158564594505856645564584337062535593458163721209631308486402894715589608042792915113966808225418700728296515482548260558872932144802234474069125147585235179241803863086474057037854114410444240448638612159139427417286561408718816555931877420669223378209281487237122283524128240112438769845332576390333745272035945642949065239471689390373795950026464316932123694104365880661205186601412389959971096313011894360032847212709388437848407306225681709264919279862479493977926660933463759689442236809451574879532179438145046456569025972434518413228146736420586726042634835063817879123801322963175357177011431363714705235682276356682745315339970027727287312056615679487355376033998242537130303947211440780736841974400298808534196916833404253628013299288690995651724045682605461354619357163118606197810392148192944048263371707498112492823764206682689713735352243309624292806288215591765913172519918247288317656029497098897667453058338809256505090533629814444365232545601469470846574134626231114823348629609484625038049949022305107292740219493627556415167853196011938790989011169754288016798868374436629979132645524906110082816308963542990621406785256091015530022201020710922999860798304675773639673136367941954086747979312258770171599707935179381138588686526478445902652146208660831041550095776971107486470380910856435105290331130852075587370611114972433420591160448393742399523663834320526918887381768394785991108410110200757253223180520268339062734575329782158527548103394642259047362291627562203395841053725469323350265891366524994757214978662703344697627916664631697433140379249398384589685914532041921810819061457311801375464916058725341531463068791653847928899845441709978940690144819138294065106033326035139075588113167024215424711514461102967630703219406368832263510160337253623651968373891336885389636975385308970805432799900330208933711665517235141811894710161163741155042648455621290029676217941313389283554962778155827581789409898517799492488079426411514258187050693579854534096957338829513593855166915053317541391543092352107038625024241356907171445989784219602577210236489224651202629482195016026625809488891233859189578386589749194882574028396883909427361235681399693753330825358286224427282935214576594484108181990321989160541587620954234548533451259164634759115144597274390966776209540071400368109982630830164545580483749914956097108536654997541247322676853851823879551013905852901630274306955893863879436926064380202883456720124714283737139807124331765027641611020808209047678759399087752953952531784616291034491022146673750615154671824158235663083639511176623645664074282667108644767236959106143743700113149475253492119794526692413398771543388846151106562017174056796730040077188865104766090039674729616960650241594088081853841992605334917450700674121228495322927308474423455640089388273838736300218273710349365544677359504205655105378762154750304597424565286679136058835343652435603313706798794502546781746061821301508692842416901712192287007921645064017673192189685461288176102113906751902528507360467518501591115693100752029788859986132534695759025560890639168619228208096443422314484402659411546503940871728622321842054447747695894009912859490258561926422946395318533223111348843069639541952106436312849095709456557321771284202463637324066295454859358105538555405133965038131018700176870929109988886620049401456460116069810301258323683807298761787070437515847101245219848594592740026457862021591805542467441893284128655136581565630705791981866433757032783505447066637186732407076544539552520303700841523119251635492010666684575764954164234809549194768375561672669994555490050472054477930579067728612640821181741926379536957994442487271300016494930836054553977742847281909533293601634006145646512475263604682457477386695299123662538427725468582998815521899162216161306500961957895069991361982598406321997997150160812679064984192852897156098696806947195150152432412490511400757337273657331353142498369125379200691762014674206134994038019427032922985921602625211358386282285639308153067514745829997345477792228009119517907874003482077836356480473827844561936352302751098878492266947683927315878255841232180532065200305571155927279170860460374480387460822032616939742191150324818037343131301900779793390643359953354945383861096473156953126695175362100299993881595233786509828754915762520841141691989029146705984800883107447645393642512307345663133159689481410858120259529431898265049342460343625820077428900301403547061119842121892420807170646286628675947257375815721973033616398589258416812781515167304712656579982998627711303148365165870830193695443984405549831204647494431386858655671002159242128603977546298470449956189594066966006399407125159822386372870117051960642796574368956855512602928211129149336413171062170530868471484043422548961694710679507186300803882715889258725613069890805812014221104538998837977786165082871664958818980296720672659416850090052619185992905730247619315114976066088131504168210944696344997241892285041877448078653090388512648612883499920986448223043759522197640135617221250779305296384335699912172837767565392193353194985832513615242856702026619340425280183449808078254957201189204910088921866722632535816405377422832270261079579209145741268009336154929376326717798085977742746357960947132772454251175534278604484780472971490324314483052698079302823415885307309222758659336641715539906939269110465465629205899341237754867836144409149873076593997284319155140046676667397128967790013937769937851519613771953134237909888088193906418502276353955234545304675507907186145977236940190939344932324638352625349876561358831639838049313297543963337833516419441412511891131643659124621769175376523116647846256310510278684387070256673992386284957935025853661178942150355816252226301394371192943060364146710266208644636949477366684414431734074438417548293516633674626015914577695163110845815936260860943785750259297557578055471194100479107997205499710239832356526607669187564715500989428257973632681110275384587423801233715375845151690735916215780281636905715329676457623141789145254694887761104754144718048551291362166165761470271816500537718777689796401869265952494172200167259607067936839387996373978859853268832223899784395554854407861520886998577477859016589109121749576986950843183166304364782878287192660263750581507605463368131701083254893242183598221466746758128080277707792728759644843171653068079774454450937080156456813243225903663795794268511325610050249413210914192643035903909613791817734910575299368929366134487462609025453468408032298632290772918049244742354833295034908448144207647557261783748455739715403232248064008641533123826157480681614469067168448016835024608440866892607083127935067835146401789974662241814614118070871069025346234471734264664664153374510028730149151247598713283398319130097892498175928721721939811736093154164839255676375283433148027201011701731716635926061097570005468870387753470210421613648138194946053229742315642599670068514575479074243017593888178162952628782106626512314895662966029098226947005430250293672069336383411513687342992865720290048545641937471854077889792957819727375236180771046078292415938886943350524326490045414029365255783659562952830860054077324901446697546044623122390129691424138616010440012276878560072761824634602194535425060255853348318595897100005275395444602788460441262198727175668187819317870852934861798466318124607838084628953328161816023429191398367069924394501837111007096624340153551781824570554075241542690300013029023576795666373061905946681441575897639017004294735151252011334541342856437162540773065177787030880733345386163806300386022786850827381451268080673970262124016542356406523493034589942629973644737855599519699338105539841773572694277892746908980134287492177314672799416634459546946618043410320703798931575384930105841806223507307348294674808582686580597035034585442698495717236350353895571332451659419585401308340811809532800606452804191150616243347205967604742974953198677017399195373159524194745248478685005615093041153113898070773596153225689863546692559601600416085388633170727729451293868610019155894967509870370378716623915309053858585325089231104128206472004740498558179696535548606326837970476478414074419267146578807884593776439934283305213961493331682016563640825613032111416787976127919795202840828435415074270711630195894471823167595804233625621096317099893660023475013071985709885873566515277557362217432438950358408213895884977041302975975638841334409653496306459400508272975757477707644919460452431248613705360696286113989495125482625443302598042065174007132928430414463161516065847599284995750358256722131502382182607118967084709896198854303392884798510058801590487175701697198694819418476312261827254138398716960119547135266942333557846712619142182226988096567243787209651968726647250562971871358945347230937974853739760933939828095095920481438360400802218186459303539283863988492904501745251050298318767334354261415796691505264534134786866216580437002432593987923729127305314682052352358589496905912566926225057818277392268645997361419658330819272166212804499959829556502204434420671965889387404438885619795908699326153630995162776160478694068909882921769200844935090176452931865353038470770317464212165433808247717057722458204582734954708490577006385099089103955356059363242736087638391787669725708316665461365117655509452865177660826771559691441623172924233578925166628145976618596732113858330667862592742939739536678083597766967721448131608443982357844317087120128882809351641909714623338443521727297001619560341954462653409712929793489014568102160820606845601987321703348734659569480377811480276908773742929105945706083653917607396813053230622883835401361024326987370949520964541935200174722388810440865945985089617428539042300855648288435866378893063791084724044224913717224528161279461163018227691320768821088455407309065118624552709054147334310318997032131124211656556562200018161544665918365177838201043679061378155571761671874908001546553795501825322306999698595896601038211910025892370001513707611512163068498129218081403569442155845447974150851475215276770950188324474108046428984249260600474895428682523192037219784264678840566593191607470687853564177190801835027227872872758862102744607428704893151971402946370707773600032208646155134783172635154798317840234643070032026491483351636755882253665360560581107625540353834152494172585197665861427196582449347565796917952594605282935084383235202605244238538172800885691945128611485733912036611221406807307785683210810896223074895384672080667917868711447235802343472022780740922290285173776145026471569442215958438423677251776433784619626168154933104878192307806000529389090757544905675552345994038111528505139429672321186285996267241641479114184027577716502602610246032861952658131006280532874954747437140354584463314531659196311705909495908653291609226640312558590422391834846401039445997395354099968079505387473483959228238242680513980592371131059173033767736033383332699175531379406609136742475994718390196692639240264052161005271401342829028174667074268873037497896219537412219254069732778341666608225461597827786942114838963857717416587261121961074080467750848024747942477885407247881725607103335846898940481734432202306523003121976428128952743902352913349372426621591893400952131930215919630645154843910303462957981608518749306753805391844037768938755336093021397575373432749900646501576808516404578465446422484156696696128102002551111181158517041685379951772620585497694026726735987859004625345246946783559020522740937794178182446584060623752190282512846489964081020493579911837287532981560260634602528520488112051881558576633392128932367185866026127282547929266769777232014070805412387063434428495494780058277129915353661616661033455480071280651190042469527987872503894560957645699070649095237436502821489517742628432394421472542163332983895137427364210734201432488470400606280944131523460067872530006959073176225268395818718740886854643088173309802938476073524425490916803384668059196784638864536153830670705862519570671958751067306463430275157944071389284459906093756609272194022127175302409814694084195690718289390264048071127852499562500292321424566217901693526780468013062693618698577337222672571854703531959654326422603706693696671454011111956704471227253026211552487069581544889772883230827698488850608279111139081731499452780652066993043267106503295431428137246952599365412863890035638008209156367240133576033736176183983261814436957592146563044561812756775759782864943953312671841473580269871288716421079659137145039660192379007235021979613606712354538905073734530282273626241926219559096519813496415498931740120195217022073211752543925478896123359743134046527061107855687149088622075291342121434774754802243548923911613071830674587014668305575451863423215663995149164896450209494534017049485578535941630747691786229539774672548919473562042207780408235680573025133611573586693682293349848791558073058374062203311968492929338590540287216027244667984143752878423858061228575043469044715616431408178805170003575168735954588763239296944747584985657966671294327678183291492407125129968036298321367807435161732040945718978358681599137167720638196849178568660012526830114068981175750809183840098118125863275726877165439229213226107319067595096056541822401841988072200171893460204272324376850246439074860869622754144103125790403188722578711974151427168986993755282195717119223378226537691382327254290355499886666155565711778043989024780679725300316524856819338389200781652319085415871714343619329491454462716059021147179314240517084102507584206723078240983704620540022280536980562891669923216580716027174772197522734523971547010445190008612463332105675864046767255862254546332327522249722872705602116722505873663519576790549455068896223964520640899477588935555118728489885642639462272017024911871042304937767411680618169623978301628696610434951552568414982192037069311873346033822112893827578565369332921741453905993063656638295519080310586403957967170645125069024048101485752824431910435159292208711752367468221569100102116117428749422435195480874446083148928339980713913807908188326263973798739002846118468191001616117724333109083641541987541807037733977445557110216368868369482092718931883568868320710205781839549905511716782568313008371960664160187894415046430360840150108704848101832557251961501761398665169939449175667697962281527857573856960572066120855278279384729535720754186370134165114337095389950788281778973161316936222493522758370755215352880271385747459670350821817555092795726758602470102456838797970516247742436549569979168349233402286483403564943671147275876997496127003922120451516126811518612441159606373752876003977391263799974833896817238777043506740506750569672345371864121811204854170016213900587792964493500390554650057724372318677985769387240356028023674014795991659319027996831710103263552862438164245322177536507737438234567850772184827559483687383313493821487801742926591330358471804761985325923382091738459263400533395721139811551061952753737145788773686332242509119935898355684245380999871524344508947858247348633709151275082118659410091130210317442218716231740810340693917521338842405076723835129675220977842863538838570298905014847554440037994951236767954774251888983188426719171282079334294209015555422315091781903552518808224945864186430202529271887860043712056330680095584516207912196741605949884381543369695074188379254166993005589518385739475860803721627331840611186183191932677529674818474105306098265490023367867957008084843292131228596336822517114953902668257563026467314170872377509185428312042708551056014894028176493047639678386238843685111739422251438819858659240683755589385882349259237291397741932065296995568648092365867295179690072434846582518321674966893329230867628957070727959583990263567269698916149414785798513252974584153203163632567694391377856215217561984959149593813995653413094527032166068000399131479724997406376883848018925293233132631020510288704136349546911389581374802177057770576501194210958280662900090662095455895952922507903751258707656594233857395967583641913108206498681498798743722393106074051391573390972789515463450841418701100549293929352339490555047766887533397921308971356122321260681725297173591912420857431144151368072957057444528520292303936287284208386676232012422601199487568377637890107600034834470499948033350312417728255540974894906146980132234767987679840168817254171635746944247150342231504756520963897140711733287199052261823043006126114252247910299527330706579886439969906275519799385460440272584288954742957646392921722712285071840092627818724713932851660685285982735565175690188200619518538959396679169174286774351935310155859762958987407870922404602998354439639111743955698602029780840003707417351987797814208128986886259826078288295978183738211767585289925827565779402838753021953810271636576068979269092994122332081467244448161259771625678572439467574310722893906990953795625843081016997492185775712164926530625680478977710338506503873806428903059544280141977623653210024074003170486829110833048147138486277776641141411134700437854151722745647565944128325284064729281703932864946552261250480812278066546409627998944986040634747404485972976781120214893700262962700776864193469836912196559587555902958134816110594106721641005166328858751754267871444746298559931504398870857306279818817653718404087072371699864257047635274949761159871864553382718048493579181276694854888265754323836842503332959906088150479515193136075850615051464547154337246953751812229310563082812175671557002883097583616111320373917334460165120259505295388547513695198502245410091402077857101186056016495285112536373805619379469554850068764425793582662707455719384487819529370273707677240008677941364617829174199889329905431800620213308605759696324922384266036693269259152426812616974107931936314561755999796239087889054005159046357383017306645683564919783020290080084354188266276630389750792350037683872146637083866557871167267486418877938599458824754946891078214492864675530596875941535094743438249126492947602900640626816516682605201305195208418224211228295574187160519653248496984414326681806379307475968825838657329924020530491312669782819764264636555861737257814068684294824319546207625031705420139210805604310539357410183175830763635855547729854020546243649845601868248782494366083722916325391223998838468699724897523320392222162361968551303605136089772525892185588081373868442628546123340972947247594719825943101552197816967445987451719493427128827715018892062967964488246823792667466443334372445768783650932276847216365327926597861923199074004298179392113960196136180444974088157484449393057819510535678079618030687246041873709360214093782958661881038332606450679308629300957340231809239541386491643102317147100996292144608694177895635000192699977347524977308175013558205517295239743348494082700891840129444579953570382161251977211930817883426439122917688247534058840113568569105556110128469538257160649292455770125495538178221315798276346688555166781908125803291407697732169461733200753831188351371722575029140100302746898370392206823932185116648241825593601913875995278076109184213356225938880285723261025638771435171829273007782636059405589499248430090507395644966266043817059736870942773278841071653096285847720973052388872842785519720082057712301040620954073373079074131387169671398995920094495627015799575134586327511880843735991714296374931888441728441203677255396210750228213481462502672070027655804693522878513105563427688315691033960161655259417825374315145562649404906103051328573363067642451753207617401453284168849162950308175995281453154398575746512787065902650161423462787919943979881373045162760766710020412069112897469417313735794965594375974956308486094552099189628687531504907591513664502115257148102901416617484505172022109211299398633088180958557800025100523451447550426868326560172628959744494944887591843561078131937913815382390309093721836603646135764381009539783815641809671083958058695841827789066234323997208547161604404175984464503317154817827995268851617598286925236999550626604592071525730772340116614438678543402094777812129734968926898838805249706254344173961095792441884758666300444331787273273977166948835139798194674903742037590131981353446598881678944316158182333181410603508153726241019875881115467051949849061142385969447071430293174683524472995331088072359661667729260395482216976093028837194411316297526689188305754730812171232232759885791248303407775925676608299510642300281996852777768199769883055093201925791029463732749668020201663207326183879175844621689090931604627844837810441684631728813735554397315449328500999467413114761308065528250254403976540862993897028477254230574095560240576707777514568733560660911164027628491122197962488794920919719744081019549853205535106879805939854476610035873302879397534575147487361237792750001285890838124514265564043993816257549345055708103270960111036049013390757955796152515098081520479141837643074934843573797360166050050310972032992204811000466239115836652045205550156919651876985753108511882418687661491136930069116855035088359761295000133765876206264988158544668337595162594970662428359374048065875420385122260929639954356642191431821215647680410315320294604542891058771702552764782322826397389916655528201619685465647108263166199839929141913977371584064608064931560518372668160462885460833825904052559232525487446238269331153203010072275576319570725116644842080301041801000099562254127030817460181451639872855249504783101405281644032904505037088912491743613674032114219370197881505289669191115666339725102847562282992104827722062686219183717620016670009053810181751370196656859283819369817231064093555486225217017806503433002010433901979974955987043812471929354541206166814790764324248093416623073798826154926243464307324973151682144010822317437720696814823821947957567155510183152862135940943697201053482304972675263823295643409251775515208078695710641135715599079048852000308998443365147681343040869018191040207879490419762374616180018732366582440195052109398857316692979489574937337246763024379822466855766884082027595050356964417938830549147428299641540485763571176630791063396867442668848241378741548273026356539352300227457400400244416656794366612151602509862952062214701598776510193718786487588830598063811864892771840384202479714753671060734842525911126357632392882717222248678648521608622358779085796069736448392255210753157676254578562770039244789762980080114119062142629262697802309419053655380084346108322693314186046387555078547362529458426936223427635032691261987667845238091053339431528910588595081638623219357166383699289032490492637052171946305255126879581987755290232474069522646558592105926002401194840064098002234708355743767736177056412603785567738106616845730476429457620171592154169334002572991876071363876240583415451448656094962033324804693343971049655762961593976297066885076151912827289593786978612335466784190032148345961782573438747585877866636873169466651157284680210149853901486916506957079095536285469138716305536975713260497539487932895088897504170589492979122928801384114641735140243901483494834409953729143931688672666483313110877950350806502426725371864142658000530524298514622284509212703188168747243346596134705951299221048095966451392506339782960271547185420012164781651967965801923216557013350844615487108843381067447936669701581264393705912574351421065887986439677184369792466878762742038199031966088774871791461985146959497927495091577027094313929817057279935770676680530674028495177529716851853788475954016040241011497930073846142161330572955270016054391810800317095702174651593243580775626759390709029208346126331200520463093116748535810881890789590214029280969917635188168538897429905002036621582642869637367938964797111558404771553296286035254384909953700561524712929248676990664268027555672890771304268065777309574112795833229648343000178637147773757526066376510573370005006733562017703236272157804073713122456950658000451365243156640984666437890952561151060918732685290059310241623618121821393747303735888058667805120335707683260930111841152236686288471908674572480934644415863419356646250380369057965918569544434281190333078752166896689916778972424669228119130808073144695540788762360201471909443448449642513104143540910311216743459005119296214014752955787563506481005960215799329226026455031691241147108668318100514829715220249042985943756937570338605098047201852944135267781839044524208201461931353506761046047110867880032513540600125774675511672073716354515350775740467564546773625931751949192729383828125400270153639634824207098338947197211390269779083737028591772004215230901360237196816933917418365075937249238289489519664517474164276709632907353146347698053156276299644067206813884028350187601527306430952593402027069326960705560007852515677831830958168352172023874250887095001700129827874640770088477088748267894441591000564104193456317457399340710961313017248940280107713891764504177572008655498948552271911798121605025074599505076142265397629925766516857013912998068834834043746828798778085737629582781731065556526248271040726615980310927343756322517241490626821809097951811974808282845446725732488653850506632469937223827840402499495075155579588963804798735372677735225172990694311589705059114754230255620371048307037911489018290834087588784489118913514262541380514528544991223674100082286345619792868487982877148648236324475499902641002336502515672989241220856049149331110317399026423826109222402863026840378874308004697164686896688653892908888550368248120484065357924046286004252009793530283117452921291694013012452689710675085601970717871430469429934855367241951370922731663376262748322509274476186705355837792627031981005758931320039877991018362996148697365516679601189784980979283781366095107065576389769095494920284591367622918277356800241104271829900506958825477539591139074623323769794742445046806844549811923250629608830706016637746586665823451139765368688868585497251858367212536058416042319010759692026912642455928636726896504361503843739061537933763452893337923506438382532396661539031328270090078026372605869153779790158114975147835966443119371550705977443261867998250798395403690942998258104104808320235007886395827396058854085834757529305766377155948275300278135265795945014001026589525820881535809992659754496306397033239422054893117968963782091965731218156921915818767681638331052250407009455124712029121229853509863319745002605952990996962512535770232149233292422902918371756443179499090172671286814109424001797464952110063494507489286583572836218344886197400595237063756789117220552400857531140181692310433475155170051575252395138766109752251376967741028960751290945262473559316164142117667053416973858243176808948953305076907744340053429083805352890095723225741883241157935180802868909393706423574313640581743148081173871177101209961207734736385347508761404837469665602717907172815245315415986825003151400892309583685112748087561354970624136447944387706014246945587395881875157037375483900812799815791631191305073159455699874952726453184709944180720424647006422400301656394172717417000667650806627237898448964438331280533308212457629498564165297603683005330533095596201814536379552364266045669094815323866130592908413705179518782885391608178843895593507721943908599070306098695414578805212709961805013864668263659456801304277166181465555461971864802703143499103350303952780537243247757156615352629297022370341273398407043041033747418454751312289843463448330916072297489550947228603763882006699951808016526893652007159321007469347838227845290392617753228757730483437961779205957423133282267937961114702650615542777579969566350424088749089485675781914146684720090273851934678145121661332713792334190088950823548177967036634599911353526949132402892549783182315147030290368498355554225192095926849297227429329670746793121529231057227266887907787741710417296823683465725328322598147500162241748638044443203256050511016097157052407414789483108366681589215509729541596118296288633006889664464761424868251508075697207330114024656484191810663260280961610828098934384044022817521316916077634579740450864475489855262007330497703301794492992592746760038861112967479314370457661243564840121697434184496014918500416667509484577208091750005389728147541687340788808470599230637129070073430753620254119538840744931199230298176281213931055880082348406250930099997644892131474814295289425829702403391707464848524829744887218363684594752953380423422989904054834494931326707913553627054334504092406398982788321589871439975282687382527988299157585742232538973667841941847824658436829731508637528873294333126455512492197640832921896267728343750947498286934475419425248574830989321057292756548683804427229316157541650598752961624440712304402505798858267522091375515639737820662964271259584202672631426244640310288743224337081154626565983070024341815401839265165813630859174742356801721559924247994100839726995727440702846058539204237542075407869269292303264841667356384943911866283078498439424664091252943669809335176099933471059451341679516053572923368990066666874757449425278526108307843816754739822401873417280308868021968932020745774110839954737941701126209762789677561040688472393431569043355043959374765479541107722014662183144336941072065722938825549407692190774441078960782858753321915644154160895370434446375101547392688528295259323153778611442589128447421505819293383078005698254076079807225899600597394036231277487244688263274205947102627323438859406776639356747529167566727307871580276024367220949794901177866503153511538909855556706825130318082594517756757470915041166519870410732304573834282981662851191310555439252095724165413410178430626175894754969803965081586836517280998302751074023593637693857778317403616030391294300783758594105937457495911831898900619992467757558397915177066236795128383937563039581066129256624299984117136458324115576207274616201970763421260662472626008591269540287056742044018187192296039172772722464303552891322264081240237996099955422936516531064307457139228471369347805581371896667183641492159987755568784706444098572577461330647106456864642505500845654266255675785784986760641507932621634796445586724804825234661941658847189372068583455118618524408873356836705531375285827273464530211293376171297824409622741337805045325963865525611829159103009456667438178228249818663036826017325356595050642667153578863435969356244659821131047672824027073753960885977073252023178562350962966294149673282281105987913617663555972675629129898773238318115000904037277942925383892439202604717451390718140980303750855272792006735255515726872169464602113828894713336693903910988220181669509063381929097185198853030461072434583732278670132155484148801537883458757470986873795835962457998101371132634620604722673604044772924071933833190955946467193727745045784981832568848781673614208350964010928134226910242752979450424074322875920275155890405752597769163775079568990790011179357608562620576313089932998212786942849152631002370603687507343001559135951561568906684656341482072018629785954649141307938699969538895334815846960059738983661910435922838925577737897485732721502153177603756658364399672630715608773383712188436267977700216733858417799161230426652038063401885860628668158054847759023612184588413723097590282664271668130228199739647342387168536768942903048215335281477146965401841662207280027816103616846025273100290501400476497105386722611733121356460862479247422423136568509249729863524400434851470919631696999221628480471459518981608021393549822530066375966975443126596639096620006301263073199678935062626731812642620924770697164403324825866519938330314931559469197984267612003966045863866972201015788625416680060102767507761247886189315197542287165885567727573530855324179812136845886842407006012451190183586971148682690444685861261990820722292205497605087495168220254730089994677805534741907220099089272217743219888597824255068651385134201925332987983797103223583347471587441601763385969737763713020580969602815567691347720622261608915497027350867773473053009262037630488368229446130159617465310289395173969224913611542953753887061037544176966126898781506362914706833497443727071089188815128366375777468687193180687785128334568525379739512376115254454972271996411457764941520663892297095530398936942794861288636224482830713195169433844170534167560005510649213833265560188061399433796080720398213642386362348032033608912171232984010644915093859318605156191506902055500168138100680672346717754260117089186413352088520765622811667571368215313648192931690611929246758643923256745238362959514232336739126370937567304572862014036290027376159502844050918215858964044781802663671275632445970686640642916191874008986729643989128576601368730858711280763389352215580227553234561000011996860379653397026149738464494277075322851278031871431149372405697954960554377011288988041397460571867996694628534405350576042420539013020311920535152345874881237317010247323158272868514072743121370478206343550711809592589261624250995693164569714989943343415739294968586965477039536600223562315623478462828317291961868995382347424217228595969643363886345652501992287548307892855087419096558075081207450828427802172568045049488806076881449935937900947631487975450155259484254682063385016133091199421369323619032897957699768106364086100270504250512903728636336336009429259604858775126013358083790147404111140038873509188439627229321028509151635583435121434018317321379915955146826488686644326984525983733963931848065007396624624086873245824814494088332387374057039409079768712880248120094545027151453304099706140774333675086185314571752011144888755660923397629275426696103405264967039920714485711268395582281791367551715237138923636405002368999569217223544507626734212235084294440457335709299668261986363995692434280862999586764462804267588893458612708843674809441081996653119264115414038168634657018535178610780750281661937786220251552811121932755517401761292238473916609900783752758442397801657480698467885473080056516657819600802796637198913704791752855931050223461540786095154866618018256416239835359875918642485964487933986337883281675673456299616415115334315480951017400269232282643383493361970747362631342105443745371632474139149874437298218039744155069518197620497704670121587941593906281087760663900161116422825796474430175912982578367800888218554386097104869672572220512012813499520547444244132915456056405278031334848026414291889820679831118669499283032528173939332764989929452515344861038133970522403508730311292585334275403838180001501207311530284561737536776525336679439385150738018003904736067466320321359256861982424258268359769425988891834901353107579210753578435054581177910440173885377613103029602346818585576208550342291951258953077085108630793762286052868311747334085246924630974345664206147068797936256281559863678651462571768863194488259682270894094809880047820980819652121296633141904163398821825938680165028498138901321188910367259686356840370100936397641237930682399537052981985739680607492511141005939470983922240373094036534762868872523557303835492848641021400195090110105269941824561044839357604781002492974528051356856322882716858531582971276158233151891719482758001061166682064881905180419457935496584015524938679537485836498197136269679501495612727882489469006613877101088139054857136430466331792419699348880275030709236106479372923090515677923301012083772841055789025139544179232297023409327666164031089353612346506550197928671749810611330281107591633975615821778149023779291472053786654887146920887960519006553068175199345764540218510930485004010070298302470141547682197610262070782011925653317268842506785848681823858904797722117650755988503916220659769243094933591837382999984629610968422335415880933470095195038427272396702222998213640926665436335564616587976375058610594964023775350673108427752899021809550290975734318279394440428416358270864880485969282947686454256522237655921232246922603216403296260534406169031409172728743109167471448586673392690941339233500761386733661913926579711564195722146166487921863647537268166412883393900189378843793326251434977519221048592357249759552135526328004712780279966160715100338758719991145937668205227082065799781890086218219812512883891599242761517474176060628588302898767108129468847066054495623339694990630531119985442510218478147160037679096466016472871212353118311642169976778686673564334243466986365344513421887199174314129751797950651851553837829443114529781747000968553096342855200040706893048904319035222135051752982838150749982418218000821221027659466007572148917166211027440349126105431353462037549598873961319031563895923400396306315474591446822900091034387682613333973586976655238250397554109988856944682993741153038832687571200373998605241669711765078105718182871137505737525983945227705273735338307811724293039942677481747857844953351457815056668384789524604391935013777635540164547183608539948874762242124180753264255223623552479165940559652159428149211270644198518008427119603828678446551583435167688573588666553003921273263633972173219402401124006599178619219321868946991468490901696394432497995514681903387201746966502872610615798253781676270593345922563726703904825861257663375386894111461671415704013982328958496815758955975431044256965587826036917711042793079330396444712658210827385057626464113041737304312680194179252199577381090689340485252768397841067596879173652543261279307445993434244047900325290895534992281418922661550812552429419086444125818202897217179998468772892454516364298812562350821681827982913425388984126955182435238438077653530193929892879485539450465461177660211038000573521405725270908900832450369396301049829459790714288406788362364423446931911624539853686268710304636625701243156704455513173121912550641446268681519104034336281374781180768981871919107647859995453957277787836557846630220376949846491541278873608468111524523525132092005069132335123921581954714785214380171991983822767653185529832902296462176080830802645387113981119590227841672559078473707182150635564382865515640872276255962694369256867470993257820815786640683515623717945025975523024233779831572468997305168610814089997702278918463422491681101054187358853541370367315073491657848058518225699337953007855727095796320048344650546105075438799987965780010115965113343297807844866599666492090332371119588034614815962169730809802546781155331497414395624136518781926322242212126111738710549042141475735106642940099358434541862752068338650821707482901712098235305854474297009381675372680498246961193531629850821561541696355956619884851598828197892504837854594853763053035497069534807602889087394226502473707282651848124647627440623610895891976922596684389645066251410298840550567389783772580923011899303697821618076351497512614365560832699622702694660355482886943728771779737519901625858662709716093897141545215703829742355188536339957147623623698603601879407856146780179068011970264744280241270022501386009304740940756535861386450730188880816321752206131359702430844675930391303348495353357652317883541153497729501166649059128584178637357309117290375882517724184531545385627322070576223406198242603521974762056186275589544897707097648940479581086028664565608272252695985519978385461270298235368779980888623171645811490011656251025151724341088440915797917995629763446347157136860456878906621662751154429014235621749564097089241852123469014149323781586450975647598770689623878782662831513658677385061957921344872728762369001812751637846589864230971434757857925950712982628739989085828510501886375346473068949288306214869544876474201946501512264809121092027821679134188745313732174945194393677458066949072869289642013726378250347447981807271754158618275053226848998119167757774874328363558544285482280050080925725005832674649892192193544215266618529587178798604821886174419756798320076473466530449037461275683564514709021360327461270719787442267476101145521361347025798769035862305257904064351188281606744257274116545006631572193298120555130320895458816124855210230120144291159148402644227145765873589961534341182329798245978115137706461360477142201711148939294962739247370367876800887990841180725325096284411663519127318813684605298970573320463122424076563072262684462518435454679099329397799670918143275005703772550375406485022297647314774245937971169025818585971350181525837840226008826743823522206971308086725238370198591164492964710878145247798991664026101713791729001801945443198595482894104533620503460827670071715903641493865243010172213481855256777819746281187573307042965940995815818943341678232304471359759547521831406930840693423425201946394155136078140918466950373153258549635826856536820367650417436574440125932572219536894850214488003107084309629991667069916500702923375659565624933801157370887730443314190845304595425957871631821650035768251935133357745675700588161914704655707220183889843080589832307924485840420479721018497774222389802977813327782906224947602866479412749202000115652479741020715280232371417403908875021328193726297572176426124672223252961789083481874771195825719500291853761627329158796895850612869488950957167596051027633941644537148907165637985290772701585216907726332268599498069955414182719368566964079778738649404506894403709172739430832483812860701711994925010712270977943369214884217343873622958327504803408151183882576386099965353074216631247857234791487174472540415416773977353237313744239167566833806353461094295031803795481830283416595796483501292957365465895487529271418224615198939704286467879312296872775022385999390589798509307911339710348969820213238053571498428110535846122318519631538476272238194882401919537261308509015544269341408484501832921691814535200590913409380782825729312568015011710832748161232705594554755288985764806697543358498041118309129528171435139706219236610969002083159194930308038004973845115615192409848698279260826812271621226347148596294660096949165146545513854440455896652664662982086064347393145601511143838948243766587559351059295822011938974622073918825855203485765304674037747132964504110979608000900710591343836319252138486832513884284659445290780447755931981134704905185507082754334957936637186597479525287614445445588036071045872225662194074538343182763581387206333925123267952691961384942467992871133550065704449103562528703125906970009675171982674248869673485191525736298958826313440737685839124463795771811839203585223630941413009882017830920301515394540234862767955686277053477361341336134317585305981942416489676597556231192802267972844308029335258595346796693527908025106889890416867658397718666525654883230613710976990223982460773293056943086378123423903073449074911639550237052959801640073764990856959259467835161700361294702814169167745121707318499061934110030049405091089203251652687597768407464118705587262284873062631090548736865578307492654510596420636439971717748080338514056353890672736152125278745415180272686999666574558049098528753804162414945590895290536376810838384749872338278130177910124223776542747080618611291354091083790702438547356968066932883516548845005352012545630022740762876000278189965318993766956670816060057926029988480660638745816142656627627329725980095658264701254169118655433415822429907018333755543680571262925394730748270102737753326939593480305378090041497738935425959063826876494952451785111175603900409638990409355171169511294783559315862343683880758685638481120454779277339837132014719028541092502432025619776675678603186227823879322334266724548459367002057855486255460496139348791762845237209715060370465957433947025320105345797114452157235916326842359002881814031158383045347389002185822359619707660713671871842895835920505097371898817065700108283787375202306726249301928217981392660343395922293798810213018995922389292695514840425545795486212030618719481639269068006256477106943366219943914592210423843758061602910376663277768527226817696570006259704556638503536973407408207227989765697882910630087340257944774485028538901175644256833558406919119594297929206899068026178936593184130216220641164993719997013064918042881667510966296639857348814628436696743809159474020740288742741596155873194822128235455616363757894611643647224031474106353661551530454547713144116185592550750765699108573118495302032146220168891650582987626357098651223984827094646503032787528299803795687375337535716415521479527471878526335630061498225089848181761233663225672797172780076000689197863024223702466680856461997040310794377579412205802612507618354004681779118395976566663323496203021126651316734638438527147309342912916595567455598788898062332587206487405522408405731607262231087550407719046411903291033429063734040918385164392715796091129729154813213046180474066802816060127874401656233078336243332519384540670454715745583308568504417231482573105334181486308039626280530744470680702193831617442340678224612396624843976028501578660970713928561911413192243146036318404395154528637843315074194882636352062224068537845495990223161331834270204181760451987694571947893404166209635920188420666864988741994797423022949650319952954534696992825127092134911542609197235550856541416934396929698448529241878113150931117481806722064845000280403935035533744374173671255481452643115799043858242002941922938708780577078435380690843441116033558794153328681208663023556633905827616458950751783239706559553397107171313195001288163724801835194985992893234206496492880436690810600229222542086487829829271703093553360879781430611307574582458851927414017753109316182751299082489936862968980744190673829865460359291971402072673998845782747656429924381151283003008483719590206069011755478307055756820979619291526176444053747239184966054937252133565629374261965515036771671483560373797777530959727730462368559768702172881144820184385009748770471368797602588280033445607747994312416075380799456393243241788643752058312680632077761340202928400165501206568245053746648421673814740782188385203493477801139126713372994399008908994289396480740394567619797350949163900460151994454324401926213173037572424658359177510621128355774145589025850168775698984245877569007901669079314787318839760939426410949706473791029409779926970822658970123645427337697603342645831712790323755075542025678643883217521252642229820136219561438076582205074408119972419464079449596415732632185306616530563842272789781017688122773847946064497997259961023859254631274069453626908864165799837946999674986973980073044562458129033627020819246373823314031927825247050395863854678718465140018834232159409781815403192689146719922220419531674736284772886261896526799305097044457289240280106703523752379348071706564493474639517562079309434676615180075049610076025272312862953863605214071893219208391305218496432349949791991200890165307754616675316037767465559021548508509086974711496890769811411508755672246987191783625071309941221218330432762210206106532007471348274015420550095457275511335848994564593142496752447309554264260302002672064776155180413287597586731165235683203421413321284721833513329278693100923100518360095576387821551103418639304238117688705510599501721254943674069281019270002314360939099804610326099677937361322696824162243336045221783729033743485514028112106902215904912300195405845084050471365894085705427141024821294725810678000125809034013496975466935491888964849846715646310482114803872978087493567631579909566456505622602631734078763511872743117843355670862454794269099205210899847682426474669808624713219772097743822613737554197719409313951894473119677780572821029371251358479518756027683500863564207518082827369058690256210363671257663620241170532231547449676895054945957716580610745452478009377678250055965192966433548008435821668443935750533536085915253850250215673478864284295931706612909790856665422329006346108021386220868743501869531585233382224803993271581234131627176306983976221386094879618020374513305514739571759138117852258346972522340805740293534468501044634736373166839985006182806093770306961736008400369700690930350003048728422536968520702869767119402931820532293780360959142075270637945447893538004126429356017969312590126465486251170743188118070596756583082431525950730888322553907288736246952895013610036824424684511792149061542193931054236819541914125761013475923788030185358665238957771984665959652399793441709980507301210235832141398286208541517756296177344586438889901843350239659569806122036176567841673688952265849842575071390215028186358938629009947253583934644766066031431160730592823997741918679489127438676346083954931023074819346039906254948534391762636758647266535374315555450755337773048514052007798545618546175476038027752241516869107838155803412318812065991032921152520304183417727697595456823400821299851974493531754397061837054715062948324748970453477511446653665512078605719039082126340693982011102668133010047999893862426663164039773766719831089359763000012744522755606136926618468718699714570571345152547025992388174249958717528273840797698359947133958323748729762219826811843852804864202508613225068390116903535328791761410983628344811823984174181475184239803712284362300745066554293134665928034233679117277149771230052827326133303155614401041187755108032458624668068697843919926613133085242381217234437451126070572465746172596918216408649838775434440320320285582876359514892151691183860714589467265500106976139064106728466556262082186914346668399367590879969587792221956494160619024589248151826666675436302500065616364227883873611920786941773245278046938889673186629123060282381987740448320894846384476176474322316999330559281963596880064398101470378634449147233491760176743700324954353436470072513690741746329753871825541640973408292128166219454024682428361545426002981418276735894689151751763432169935559674774102179658333282066032636240035267565379007043559222753220281627766634951409702869057200959219153633234866651856054449190982338793718458577720553801677990551480380498265552381701540213516905224694433958858209597896787502961297564505827942557070439314094655004900640797715631542442998658282180869876356599365989649673321592409026424577765323565906335435557308904714734577503503575561934585247632898135095022944386428071049163872551657071415728736342621740605673500875091774193050676894734382834258615955797513252833165953568329228141828227697809232921138538387229785902819054979551133613459712147819250697696156569052499300608588539088684318569526185394032507704675843143389360589617669924137510509479156117714647201400479643018699761415781505389688100432204785510004167655690418008915084848273483051783303530915158146811175701957278682954293009372069738957561370202831228148790555165938456745094000533422543890290184393840818611521344808774255242056741431841593066963805952481648861451626114559230225226683900968308648310950828489861543967712475745306718350355509707346983705233820072127301914430260768165066003541808907577677751052006866216802376574378552139794891836801143586156892445544168388818795973836727135077583736059370680165807244436521421641485439321409844805154241103540463192888602033265927331231233384918966600843811294094526422064268765740742875931663365509001688564143135497642240148228638797255085179791595061286752096258519705383621249346797709190894466336091835381919333544441903908695700168988531127761222191688199848638403615937313884219335277043542925759880841370557201532792451888569315840937689213697812816100254414049533539704962589649469576212230313974095169119697331536284481574021753218487326296416542309303113937059090975491125535091519328517003046454666539722278139916808334532800646076682590812909261556903378951458896913650352935984545850838951601969915786300144071017989756741800422687901801054836733548898795786805176681626644208035670264442869514102249707650793791092785931528916329337436363916585773066431698226283460520362611920509178963059490187143934615627817737220304912417624943143129577096417624191225087209721975114708928665702507146448084542197101493703565495151416638399056448525932625014717421618225375106026247853325530795953353215119434872085583668540517945320565979319820557947709572834692829241584661041409330145899170091778981034923518599957623523128950750357300206127943958692740729962292663339067364981911714499147592467696657114228126104816498471995618155174516881075853841903674053764592034512847521123842570444047147901067720831916402024144095571010512840907394247359414919361358339803425180040500164851536888065607795094496011513652245968345293148968284981577236254179811864796982214998415666969295016538774652800656663729579567472971009388245351852946738595035799687865935513424792369608743693774646154050685687820213665226343533536961383496300206956797995253683335426138121248822495569124260355301591282986462350571164864644654692383125598183892406805457042674858341696752646087287584553638903507392106046400888638539415313143061119950164422887170038732336645948582979489277822294464811758973411594171764357304364311561343128337082604422170279039939472028626396742004137554539410575455957092020571584445219103220658207832521328655276131126123331727464927041286706129075820323302555422033336946923920768636724475917657636711800499589120039763678524353812287568534095325207385977864837407153002969258241313378914284165405561716699403257081489578919309978158685484594104985926977277935439448837654967548393304212463207304091482471803777851794883448808321215694193142660317741858998272348979948818374919286963966102768635828121902004213428683117069653584528050401240366844301928429213384045590169116194285743227728293072132113020445073608850892617087834806913964213669963800585328357432657992672524423399679542483330865188174653340818529404286822950943560602913246134770160945088947194912976960168828162396742772610005610255626538346905112739747648309865433003927292028480667788913002921135628518747650683528149274972973874823120460041833134251638998817931056755965339194428656480461943338346868649254753407627422219584734059722636331469911770329224626944792194573319862361787527844794108286472126880076129393524472319480237420721848302275403097162686830392915478290134336423511572546588548207271761073850241431339912911025669019810851012125404453984918035636733079743139316105973521212259184475725688162752390821187242964918536100890854642708191364710294421465632638008639494743273282437370209865512058991154179739662740822423896908192776963623499933667147869768867802812528371977449922590740390471823843820493654372362293291204296859465647792520530077542494601601629787457072203136063440488289768165504006687410911310330567274896209806131614214722552190621095546251590584852238658076176825087020045612153482286939162821485038207098896815096373320827139668396936171182609170871195380965148277172281059235915132588511786746259891129407555062200423718828590098288431677209952504080754292434077650839222462516028667986238094358623976378535759630751818697686032998589402866982172649803840005717500009579188611260973110825886688636983171623434521285448675849352391645541766625776372958752123033660584749789270731258129078937812604298232158865750595874634479675813959453809785572695537380499816956156326029520288594509158864408464069728472449513490870339839418085720291757686817318140460441392924970526865505911065551937256012175012807572024626631834007325380084464756630456654051128661098376455643868814078661164340208973600239944542937676122966328869009860094272323317097246753903925709919955757001845109613506913393833345643870012052299881263119235353488470877516423856181082038715327801628823149119472857567284937576996315992901687963251162895781070197294444517030845853202176657872985938096144420794472860468927073763409498564511928502128733950554288643957777229085159991971183769527929091436768390267529136101451555956241273446129173027772614119265754583258805620766816054756946478338826126271435536865537793886897049626213942015000486686415054089912757411689872119415700839855876804300578044238084966579897876484521281777927584242276649287152405248196225567656748156092983447817173660148435352144983744121815412621609814696840329691293248465159919581124132428649562342131136230703715934970870702581045975345037913918888615803917168726124432889767228730646404251469156476402415059094897607404740325573827460254066719434788505397492283903603269924556668591525066057201171244100875662316088976449519814420830921974092087551802430949973021032626683988139290752467010252304597774047688995917385436699957020481755313998078852399853781840247490505933314368355881223229530164100406792464895503199732744020936044035644394604169393157198187577684634596799744022217806857740282501677272063272545874919264778418709379483356745358739300102923801255186562838586007239614757765971355740580045864449735251655893614828570947989504712011326013712052318147315640345350972783762946888272148150394516732862547351117987454488103257387343824466203177669777903114320436515976244364049589099396244803068966378454880430597586243257620521034202590219153680443840139017055305780192853481422056899224549716765475046457570256782205603529701741610384234584889881852595273157173336066090555276702563775765298172225386469948876888535086307626232674934616902085616039858772992337788072871515664849654277279366988790155190051856010283301360713945202836141334561786548254556496560760122757060141695595301945494378539028178808649060308711956767528290671625468194438852099026609648393645593897395693942569934514169278099441120721236458312021278920242746905649894928163691906826250804577918236960695043993513538467480708276562608775188369823771825624147219485862463622753229147901611777413479059913463472817863721560999298793990339962364833966415987170746972147518807974529836547087805646967125909821341057626115067050987726606998425117331203240502266204034026373456277796798156849751739792638587827024621356331104475621777955663783263757428688340452131162955273946535812029705433090662331376574575213759660594521392845072021303285256665646314332181662884480983907067896583476761580478817375955029976703228732010099909879445194586176548414051502851296885382922128197087840472618072608606957283200475398599338841460011564151644196503913212925175261113257787843090577560484158884237706729158001921319912331922096172155095147970996990374776679437927308517977648566659199510979939711123667990288259736091653265693719615131212575248723566157547370442408879996861394088245500524326389261692694935139594152680793556622157710644464932622025757149192481571181774737936340120612290554768214307057404226690225785351957145639235752824625099770289044561078413772441133373293563903671678365155483137880094890258716408758894372038159350310759147146070372043751344525127176469789446657636767091583746072428953189065113191939942677934085893644032774466521347427931118187499349061655939497785929613979821243871026872877979059307072646187950697322717354854922834608632537462661509244149662697741960119820305996643969863539682521460700560246827072683747758930985824266927391868172288245534795026484399322971453945334809695791133678271636056014345616211684099809852204166243163059740226685563953991180001373016217804079559902025526074994955695924633568507019121697811223860105256845434063783833073913614959020954251966571787246294150605086869194275153587168601196298392289543922491862180685736521604024781384353628220345598142282241593392299769292390139087013409576180509608356263271933061988400796128719314779684404803871031560197301552077817584338079123438612882527564706286925107574184325480368614885680886719885647633637431308732389839516520989687661283232202869897456649011143085126798921616967057095073385719787013694693769656051298150986681638008633239607737089236383577116396933678188392632164012377254751675951530155696616382346288837355800987226134511630000705060602702042192664952331101117825580658452317867872924113641071494300937567830023467825838243975005648519659573026552589650788424238139882244178837813993894356596108809557648136238895489449112023275502333777521015953168326134181702657010148169201307217636957593388284690374589520302020033875187759565843751808996108108535707101601918765011969000383002011625745274251563799726664502786394269498622295403564407774596664322575719024639627889786691179768790041307672904063858383144797681217827274177796727449602245789420220321227894782913932908260432615446298226329503677110341652606985788413831494398974172222814878332987761071814774050670574494029246545097654861759876274452601694354078243474363967291865360106302381295527984196104444526372661167231681690953472089540559822521933938908070101278803093154192272886534004936257331072826952357815160046597533203149131732268879685286840094792496664619034010020252411043872683455391953835728388025713839656769465456739546098471706174031633777072885130487616611556881730015839701999236865601569726305008949482624631047882305637358140174612453615506644049134434439803907759665973000546424112802715246686693339229800967338084024762155770077519343903553077878397099875968235993901695810498642794851882710865619782235207367125551093978686268999094843721109153186465131246054153169856134057304706865037757916227396955266964543891325961980649507653583536266101816503875379421755150103940790467736935924501113231633300752850819407822576731566474200518772977471673527383012737672933128289519972272612907223001723341889128383922109741220440461934096141556774557975644295141496137762062039561914770469652119476794940567713675570845975463223343794091845425090049713727974055189871255000159065824184327543690777622504113540425394566845680543984764607698584439560845849007040208911697238516102488164119747305288838103608329336397143755724694152378551394587691362259432882098350324632071835841098674972478935704890042089071398611036272894979967899498237945322421156834918444086451862518103803780390777888566673857042880018700068607593003318519581470417496026284940177096410244364494417468817421206807780262492034003819708161467287514597101990378419465347637520567428241093121117277195582911007559211495129351347971654745960554928383880581467604174499751097615558831892018859406609437212362839289167570871751326136431718171006265669632338885088897302583502540790165269597060802203161031663865606420826137955343996844819448093813399851076343010333919427663160198722861661871415478148203891232270602988637828386572486905970338235572879102085775248787362544544294805277009516665720747519094094321127839077766159639128567923840512621255649959888340144145863269449597698892732610928562324029648096447578725657504855115586608827388878242100033674245653038095839436424977121036024809150408121607326911006243694472520277180350716675939329399106490055821975141694571453424505285204969175181806122017274561916437008150147752975775590699589724473188060517551591462313493181709887113325841199442906419513836424737822642701785430505120672839109429582000311274488781134116516290045761025481460311540046195074983023771055279555709337660828539997829951323910674487285982274894063638604858488468968252273461129700826480575160691607695284443086385201724571083728031605261650249889547650285877075783132180004305182604940604728745010181609509565490908755416902553303039731748668189177318151993648195650451456323026997913780212292341044398305905079115179595341943918928369485643239841343266517577101379022434148838634936517622364105491648871208813993980272385083155393830634939566354510957208403250190156985182315536495100514060405689420863872209523748466662182551273677277024447659994302679640460865185397199118448415444736532002102407489697032330493658724243397259121012620376379922265623314625570199528080629932855391337748322002380130708991680886807211698196552511702837158238704541955256704945168667478288295438432355172170684456000364297230250777730285886098200245943523181483483146993856746417222747436546956941663304852957085672835385131870836078872829432754769153354713967888238731137894136007367678672409051243073820709423252789597971931266674170457636256015008811643340293328953666788520343413658399296983887963874707786618769112260625251208959811431337012617151148364246491164512076244451736936645186043686713017979039269625401922846331781140161182038105328800699863340235793678205008558473744891318504891869914074016824771299251884824291288331798644876532867209066696860791577627155115526650773017590818295471856812607698084734283284588035493409805665994458187043073800337003771784911502986432917509187727480114925854075432920161668608840431302170134641920315662640329053793455848942103031371154801756100394712276367807458635215292871302952962986569504045311873595779790009735289146844388858136219956296136972173515963525663137245750044918059750264544633654690094391099049554828893057105524490197765497726904642485272298289246871554649574935943617021832416048108813655805395175342856092581815028432221876159706773692459529205768687499105963453928395428427944309649016662316364313838742120278188428076718853388514876773779699240822058197526333363974433007165744260715317766794513388190215099878908128272539336861921922492298776658283969691483105428029966158147547059721616847220600358091716320944379264310140978734255141683551094115650382927242038719111787088395548721545780220872987394713900969829043156269385483722803745400309197942764427896464803122297832696995352026105099908089180643353189056703396643386065294545037104746362605725885867190873879264684253636012926308539635588233921192129023529863427246823850574110830314395663069617181916543627656689096682242961757092613991097085205751645633657063938284580571332924501391588815152047569142233980948821235450488519409354942058636026488202017413490525230879665324260107944487893425733255274080681940284072761244467933240660046146107089149971736497194881296591078286685264348889455551605141185715715711573507581595129520451134471955991237068309513339594319865548280630069754334022130539781636610394687507569228959630557335249800722182091099236498780419084650976599016132640835910500716933657365216836328153403166512020168290458752307001970536899212947391708424658247331134738754587821119481559778901416578059208704925603163593351381692236725329924494135252981602083903182683652945870274050403593444114430763884978819404419750137739120649896857904814736801584903728026402819372661269946026308136128741678781492098942620861568759854644193478099064802676869471903310826005798174823244107722629790921880792527767829649904138463415340485338062480580156067499746657228243100096877423440788940904268714566346522548966099026950253933740229842506434006057709398339393597582801534360001798545699547102747131623580881909602524365508920123884407859364951047385522479613558570697171868512276445489268104250176962061057511285972932757825945945342211535610635370901671718637346675995798727189198280210316867032661592800640405186817397398229283692709510166577249855879754296998741599493224870414286226234905135249644359204715184287445952543522351148030229144221279865517162229890556012115068066236242158230985111509434041826659890299715340089207951960444302065373788206216566299160330702416856049874563179851811032829828871239203032027902900099916218341892605200882951802801172727590072054607337871399424340964161322041764244160548051529644570986347861053057248253101980780398338719852025131157167020620539641300070065158802672267451316493451078698526769518220826483586649400936769592165605065510768896941387391876720707928464936789870326585988019525579799234736620745133951053903674859463765537210660449881191781953756456095701131501718643020373504740280641610230784581485013074041984230993680041493727878951799442972106327280944043030082909627191275652720483562546160040202280127857110040482610133850310041113935735080956059157736624433676060670708770784514934030100918783754152854153448678984322069398611636664786917035257286901558493892664845299486804241820391145894625327955447759148467254821916725767414792519831463018182936878030134821508005237159535146775716930970293399540800603330596036036932653381334811316895911676732675879677473395584433054160737319501766584697675139754722636377425888813069754684657252324599938075583933196246066616038359049579430833641571361960650392911556060344283253441213264806664852598336364153412033644209987398297859664529519331613632576254282640134484146807796997227304819161582095877985375605685266810415497315023225572225612493093393767750471506372936350844339952828065284998041938618058645215741721564885776452716732136619247704823924286907296024449849024624237510733310277945650497886940462342657499355001653023130096246634503078427802712075476928324251150918014878836810754278685055240503675104612330958334640104635738833383158685662730226361195085368696228621282781975492227909995549652699116845243769094070490049598291833017652849768421938673338030887967027579222839865486862246429099314364415639006366182729509828390887281857187542382807451567456775263241147403063199306740109126152998439725373119519837233833762978325820130295894740837392225787128946483521511090694493367711695654096716064823793009766974528686877177023901946743171643163774583321538227805623865482581901074579463062783578674386718820848815271922564189299404476018463351583596064983299746372209580483115583513522155633072440789641417970302026040781037458331047249941118263209945266338207679196883661943480761118972447952538741872563943275776669026478196446210915884633165067731147016545254315842009638673828930187197139264807384152896310354304389093124318108108230020765181498228323517070419796501242971354226934921287092488994467299003310788431351973408189070538052897017447287283270475356698460838600990518452753029041401550083263661872312399225653845603835061816079906281308161713200058828548474910979646474406640769570008112404912484988669429111872041873299071948321094472124335013531960042237712252409863155402427887174159574680042492275790138786394835390704801523616221898511946222825562013428830562663819501584478998014532552266575745134075106854688923045561022547719716160414553174193012364420571588206879590084685167510467599231864088317080641962651254719629740779444429142735005799781080444213836675623717420532071339134788861232912219430077465824778058201889679572493325959216390328513870002386626720439146243078003780108508486149083042804271028216542307193984305878751603345425485787021249012638466597234817908743748681501610197297162500114732422704216654298414428028429676895258278395521025684432457255030999036158659881673366126511121978330518944821597664529128712072414632940382092380063279338855776745375590553842664049309141050824456335431842262004732694816742426154840595421261897227971064761755864542538835615137048063662077541944470753548607126054748100563249040754680446372657811045637252850344202773810770911132512024263913583899288651574529261726087758714768506052282991962655654599160395380964959771709283196448610679264435914435435545240830954330016956573937108655950835923297985288283720682913500594008179493013453177339230468593242669438663045819514945674585196014403796301306604623722692050036293119409948163524943038613812050616976203917026153152320935217574502372580408577080589956083202656241907398472147488153572727049262293799888454310900090329848921326554037380210759842521663896436314528639935783899021294934709103575108000517692465179721905371736472573262515707082823708470796804862447998839871299285137819998926816139644666228414529261858727365313088492166196657990258052083512370265608778930667916014871316101494309097920806780115054093986603533890908517399136847827164919492318230408655753274359304351886171915576165692225751162496726138365751224621907545451261293455609001888377657230968755030276419904732747861646705373245138168359562534338346129226310232766024157083975453515967535338594071658570992410246505605967188016746762505076256068241114305880943414204649448808579691164501337085752583471090497591266018644779420707527435918375205484808209918899341089023762863516130258617173328424695881599606995026947391089172817634705754931206374034439233124352216498793676107143216716078155619704696488977129049215740688877915840988584438617822145718528266632760170646583820787455214273390831763130181874359824642502123191210552378951828345299744323752378100714172644726937397448756917770797138028811204862165344025603829939321250295686934569471887477836569318503786171350552680873287871706897643153241612577083481130852609654987631113320461498916655956972874256052526831158343911845945548579243203273038146526807048085440228720205968335937727825854552522555525633658475507625709022714451472186054012653298622681746812161258833119827922737499616624530252272948852262325137895457571692048700464208652010017809707396338558398650820109121370579945134649571588022896742516229426291454392432074908019157968490841403722546038053334597586282173146207930737343533394865482523369736466441228727160532283020203519325057783745824036192354989007657548159825830438710516760002220478197784435674786554037627486191099119334478732544360652104941898818841555299095051072143886550111265923691010682028896161143402872886235060640885089870201998484924918544154825950879114791196526817396402751903614161594314413249284844767109933145439238731730888817599307090266840515178821620546695130564324366414560321416864410832977270752639112431880372895222538719130307924918841671321422104098578200117655207400272276844462047065996978094268001894527051846784673831923064188291290835661735241915387586781348905552960191185902837285612007584511124917976874443320007962096915644985364095241310657706192024750431798792658827676006618372789811081851318015552271217662749102859988446298814361423506751230391676816634036505270044708679653773957597991523111680384759571975932671165294866890291781469637328252255437043343009193234148033825822974079368406372848549890942475990645648555608061792034087491269128012632611799913055779885031662977042284446837991620170618642994922637782238764351111098145589692821229898873416665931774149944262169479716599364782641696194622665860297872642656002757091450771589496010404432807862982548121318935251430278524810521780623783163830292237729628652520659459038366562024779018649469746500094778203745179744787287411292832102882212209484398476118845302660318566797708564899201392536792839617287801596728530790128824458273161604749024367430345307162594164176074512374577872661981231592825088802698797320425269479850660391051803191069854428200279744714858635792636195725346544929925831300740882663335069713742213837279329020103500493138138271202576953445996780792302640008563846439529678299062744758099179272102227637599693066478174256355895632444229137279088483727272204277892955320417525856392301391691217845434218282637320112228744889488449169971958424814515031170199248457731284369329305447169504854671173502887341880287377829406367718571107855272545027439325313231118048195062287801039517128251547704079744011045827125217954996758834452320871523142120526028638015955684190943967124925005976234018428309129721106959016600767800773657609653424926621260939062554174796341820883625835519225192067724588330068076798323666509843565531952352963163076443811722856210579759543256584790472083028500846774143124274627406712008650061799023770041942217525849988769352665653123280522031926098834082970803558860323946188443736794216661401103216654792474759636898009721549128142748700812521805955188802883136505589229860485364745521432137101488995119705115163663872971442369609635197791317498904212496475779655323590366535845508638177338117719673782136007508741527964653600158431716995201323277023954513596886320071462936824765150860242731950428916817106002422807162571800884089909328156667271953254493482985601807353565936490063571704988052245287794380090421269628566932545087415141635421209798216571692320919586163691433581866529434033988975536874657187200091495675471175869399206045733604228031194978858499292378343157917600104827019919778422647952845366241942822062189287635950196587133651727683961474292289608211475266293297680801108518493757574045959603632487268831870475954863209464682538840013062939227353810257486960980630559553270651726088881889458854014463981086123184596419737393060408932077038056366373999145578545413575210528222383055472615630385885059255084781777079964119853127916976710130904862082299183299689758237323269764683954158706623869601397399072006301023768068243836888034886307989973660141204026486831137026512834890342175301427870395864405165910664895649499339401470055591787740367914664330678825046808222016864441267705490462990889231610396319551270208821523008154013015824274041964868332127076167168662438282145503496875058933301060156069084791620576216247556792013822879387655043301015609831638988226913129415066048140483598810802450042184284534790509235663732856929254110158439238652853776213285999464268421382820505492110422992560615923609155383886140381237395129974695498702796920564030908458542531587137973856597716032865254945999555519268215144120368719654198425034815769933536376538845979662259869546599800963367694302699256881740298407858063880274636255487146046466823723163457376162418241773402243313266092041281790253887490879463653517350620112231468095467167265081662791244971530383903302622000313276809825435718026652049164065710058392636982875686528218845425177403433291701860069394704945137184920909303979456961334746008408360141093675208905712249328542640601566667197408838025326419957500400105388934881821186642063397045031037638138962078616785615908105970666848072432214401183045189745802179932879506503661160169926892212981804881796401761743858508293795497288505054515138433768507989389552711026395576152980464865983130246225318436098786074449938808413920551053553379170225118556707565924652660896875878022488781530663011189299839488601809108506232929252901241565971563430099639339362241885938537682714405156723532601899489345099266622270299345440815755852665795016355003485513470343030247891688464557750909206170365155993338754670373434515673474344890729196963567487833095346049451067609840137941280905467191968711307279960949877310261741901168852110289770402771750725326023644878771790730142597766617387282641896359215589305231455675695219193357679814836733079615185981494532894191494202515029012080958104305273929137289762186334605281798382313471335041077590370786530506083371868166287244378498626778276853642194953492603498421855583357127403886883885836940935751815594430672109106211025124800699832446881406471243079266528619298625783122948449685195766310640457446134671872339536189166175295114440924110177766050504211552472580554405147487225437155600759860891359063153233382919187333709767247134445921439802938839275929496096626242747851852143321406586683826419595614444811302465311851452800683165377142533357840323880845985891629268083086363444683002028756969400883423389894077033750383034350917326648905991626761483437851685452493430277298491739158714983604192271836850230980784493405896787462770216235722647510591259940872239158551988616586422574542337384199289227345029030672603248655906259582267883550602600006497791976734600207585258747105043073648085914804603932648740986189323928034744908098255933821344766822832960394980444270679540093256356868362498428450232815745180610774122894677898626295380784577737748828256694997501051960864355310508773769678858427953211229675330294050314646155670696128513006281076767735506018967559219046672576314999337854059321514339289813760973589291512956006929484492941779958328139116781221570248168424367594244744364124142560814926037583276176297935850121863931458994061709822526490003065178514041721340191685919667730544839228862312456879058712763720563967610855997738484110986953384240515035273217530298498418845886989248807442251776720296682747279910430255748362224550291713162151163867464167013685307810924660875706052379425386157122744087054699692187950636909139900772338901256139651331954623139581059955663180298018342788637288685693703624407855032036460265865565526234134369682491465443825085713388158515083010857025976206722566508049150312308868360617323349527134398521259437267849008941563820526420352389835329570083186583464542280848603671112421614421585334868588407133713703937119510506643770034707723507418336017770915906966250859392714457779777612545284112780529714525490652836374274532041270738860044057695463375945578488131897349017078890322667981155528091018763912238714108926175192220771831570379087652371334450288461000658795126832067363029394424602908291613403301694417905564857247632366638060356229254401747357071886847659272428200951956074918753373952708964081729422659486132316870258972220233476291040147393416622381770547669742199558831223456043587533991706845338305772075009340155122638306567984503439728379492151337183396235555164263500123788698931075402266827827985758798966218475177011757666403215194211430475423186835573661153854797952715880716647806013374696538604522784794098879566034271595319355381604900415196766400767707197738492755631316170743826585786268398955590943588950094055710812850665248306371246057515685603835140705460263846501193975610244867239205976267570373575697928584164988866079656278969012750073447753875541677520108184488157614831477219502328181700824460068130945545160448620453314770878371225849851849264322331978620977042594912912668118521463295603873891293108837188663946830336067779522295109941009459572119163661404249936530752396717499117672504020928959593858735039982569057432139713962529931663988526091906885653586678333948260854343681155201445620382508709350137408061980505160355985937253539246839695949160383849925634591755396453043213230605093750242578208082896729583709325391997423277937983732775620144501157835773169782713669125644325208706947834644790506273159575069393981462036731276121833788353339659881449508770423484186931733657174392033743743279950738791090109263483359986530823012398156688753287981350733632271491478715052599100313628783094550587521046008127349716647390539818066173321098883441691519326775502214259148243068106513098198561986902829159699102315908029066168892277678495624610724035713989859420777395583230708487887016581128969869914973900954319122521470281593202385777938779515378579216242170837440874828788938207536864631650021707925695160419204952351141744383390888484261317335224444405334511164291943911982647298199358651634397177487756052635846315492633731103328192337363608691986441256134710970555183729622346441210087020187984492384483652767233170665090959352075984428575305812647660761089026186422699833751700839114313239933590281449772008085353322956063814987047959422572095606603919414715775845713985843999116782867297140080030753846656957452693150446036211374661633776407062157266342793575824983840825988503539650027578715757816567898652529670643059482085364811984117159982733693808639244884243607199331949239797008388384529618962371615564205965056714408033327884916958905117170472314675938551847865728775592480637496339213588831533862347468237141519531667809040277225140471639289602482584170031864571604626318489482552335267793203442428923970708650977143640265574025837644034317187475787824899898797284811723875325243971322952448529911431824863491479518637670430416670183030142266372122706086780134505086638256809581542697337189842448201466568138807078956083078914042573766545717464926193908161669937130817950443599717496045042693611935153538170107185907619046668637682780490198722956053365256207070650021424227893884326465013715236563779978264892957353296908392378620391091251872555584789972436253709634302233508790587429589532216391509801145167171961432145413570889435102575643518027691421658901600101243028740711333180274831509471441363970040975091865683476153473020800954461723491884785332427423425912718144360373451410511124733762618543510426811793175414555475854922105282424926730889065868541124431038362188601483960406528512661222821018426609908180566445649028885400554486341254863275428477072737455192705899886565932239745717602748363502785152869911442158158536165007913828484625049997646018384934062845644127504775278717746075310858331331081378766209787027204384350408121264297091247448503920969474279664502899950384896800016121485425424079100548983216546261919955545160110304948561399527712491131121703428749568310657727940439422638550911833177461772289140256428260789245152969803391009163680778729354568051790537303439939804591214215620863005154571876729750897956638037540044494165204915173089631869950608929301460456111442675120336709522846541449804743423490056072443401931668639488560902160443144599099376866149073739297168049644758405287021849035243838024088110083078103002696025441643994920869398708097928729054457608147243944931376652374598134243009242116400583484249159940977891630831001557258386329120804483865618362285477673966085456329601205662202633077975716134981011132882535793560631801007945532729444457851725019977350569773480757831369577975538987800819349137551736997956603079220384740226465248805453341716033381902852333384963018192844489432465833563996775249149942572494885011614802999615211538382386052093234494781839377218584790421368540205385064674075682031006776538526166586464924849996221997305633941033214561290901079674445775245324638327351538968109607830183637493372933490844314261928192584633538840539336907912140227756773434502484963825951601554875931671665505859935816573047669396002294970903317953288007718946024502685372063375676609864247455233526343317888909033267216430459755810874730232210273549467591344597971004561351284427672406064742092762468963079815326249053439399272373634590693487354435359068313487688566032281827230629196355042908918849687627397381853522737078378841331775671249433748048452431695967512080042807530916501238508690101618688042669224601380742533413327767760756244107339927929071102366554213091026741301666301219160762081933491324593067309492418274354312601944247116816463154937961103763211936531976198745379209532634439768590501128794796923110801923630376808242276498556326458387701620052434490533333673484807425422356378970682316288218990872530731798173336948770133525347167263291420805178178401485857931145246128671194111903777566382885389319534810780284006320902582036439243233941329943545366977662665625399483208996656175005692789411845909205268085150424859114177363169949533435970709598971858327138544520753937595899819320214624170348226394435853984109970566369429245844593842060900121836427219839436411948833060571757106877941768141962450058291686190939485858174208231228308050853914741443576829425144150196174339330786581636275491496080846570799948117951382164344618535334569872132525061492267551757608119724147113012711589720647380129396738928319702020681771510494380629691657556351043035720799950274633864471193964321040826168023679548286349282765696463084686682083728437802496958626366203460811782687041853955050766064453170886781206293780084089528718232221062118479082517470264535132636707748863610012367433448949586211055219673128026205743911077394561346714896392455809277280208056220380648559012009492436696600855761986492087241712156674719511425385130203071922818841605902914489650874652687191165885201829497381463151695898805191283614708185396113651861648318472433979816166577072211589148240268098979754394436359082015637071913956769760337206346335485129192310630578820676114724912614829883781890292346302273904974270705739940675462454656770989905395043803536818410726456795330476833411591616256344650174242893470100361170352503213167524847166414949264593570513069153643188563148413136131430553791949183486238353303381629815587830353269469320523811788717770729545873368576421008506070794568082023771319950857332389433333304897516001104876157383915111068616433751345935277762747897145698010440132727349280699489770045855320750171908001720948920049499624694796720784492764001330045685079227382006697237165841386631002742523634390939294288855174883650223501747313811927568235033789355400071202484723069814562828176815411916304469571960802707699088449551852740136426067760786975243217592141451143498797355678422539402203494313661240087140948716889045061310318913834122436353093717107555952680669315372837591914711327749337779772054876518246647582978509226103074259780129887291105120471647091399460917726010642895260005948207367692718278941794066647748288540948884388299094831883462495166675807771482446464267297234382235117062403479204242743266450020104997545179097355944664839507380283329675379705536101854545662402818703456166642122594451983861158467852253449932450754858386530249756764113764142878345553986478926997857000823993075301539396411432554351242136367355371737398776349245353018332853565884731132791147859041388770371502280606178218293671252405853006677397074062737914058173366572157920758962093047529255643890834802440393008710674566153559880462758542516643339695946576618576551542106035019454898139575078869022054006519415540019361203997662688162924122061135707505032418683006339395616696995626224840533078944245855235103072090131775737476101289216211278745826377541950386927562554028926167234371154674822420653937059966873619618480510636933075585325060909373197400234314359568480165646225557130586073572967608291336422319728055257428668172480055008250477429493519765056296759349010985364430382198715414346859942615832797695253362139344611890815912703558003105923119285264105426836465475803482174801132062321173551490505340255865086436107850127887436916230983923287660308993549007350082847422961174287170455923062947377248216341969079289437702045226841751757948852235842052264734585520950743398324930471892913831540890769822870446814220715494682966313193477397881401211407968724765395964540483312600080651395179400336285835544335969321190688087760735288089166023559057433896193739907703759368477609452488008373057319744696341851045213690627041144959149260013549636493213984018942891160938903420873260402693670551103042520529111484743093582110359717568522779729276676319239940498108155857440237268722489353054206408805577825994925583323717702526382358286729748235679708919437148927660610148876306840349495360019910836097821399817348309472580153745812734869823717661304383844684620712671659504805213331838607472355458304678740783598154875662071038291392144991056347899352706056727634817928033332375109280890713094805221755115986069566444141213075212332652416929310480194996016065358803597454815757240390410637665917309477066820875354608603718795240626945609807428627930536408257390743088651761068467608105137272991544269221919311005838215569886158047435186846612122521474485346343962753716610171038136159775247558256509750470674868669355689928366783878626391832418069265166708854598533061316606016173567723017910140555720613588849328366093391163675526394391266197015345040738821720496689056951771163826424133016836098391538142113611889228672973016800230149478497697952769721506176534093845213973930972581295586583056531885463947848361320373242725437958250257931861603939376083060648868572678878914617927313098260439096176931726065883507349285766530590495020072293600301935054612806890864795548894399045471114897215286595617392279855224210149859158258622723187813187095199042663351228454558304377963616491058429176577055836545164320013601476543293438101271372277543025792760750908151550740430921041548219258818944689566201231338323162903816142555262588984698517214381190484776001769548859122037413617541841378381911291098470035566531867352020471815399154894808434097084318358903406765796402463916446529184607875052314042488690649248385046035085591067457093081862300421079383915223366208839307511645349009436071465504774485593662876099280034127558187872237996958963971331386197020253688028078304315917033654816042973506217829295037264901622656415301748137070936969250690724603045643366925538337206559481475122058576041935132234989550967360245352241300584238608890386832517485439944096329404251915912158388146412301085884982030264285907310958855132634122938388953447154353791370542881785673089015481483583741767196693835867866154579505530543199191064620332109810699758848427422512976096776213904320371828870761036543854538593254591039955076763898652920308405786865101262771220968994879066145656765671055354147670424323383219940197880139126552796724311143343531081733020114754503012029959177071837997238394683061356763069452321504742094192082857342487917344319538203950230406543950646747019597287020881273963247659037407663581402607326621852052631995870964430146054459395959941995532579409631310197388344309347624065785899798213551897734372011247063089794962988150945873729083633897046806664758401444575489469115193022385376783214623302326360447427701468368498757262844077263774280671713489342440263486887937295208569129121569839478220115845476220572673179330754660098100027711565304604493443853015490662910196891377844532393556205678744564182354937461587239131690048604516952518343140705154844120485271029019390670041945005846094098226539033174616657992069357057380467873959013777697247855011945491643913068015165292799542521895339824821737267822194201831105609657449544972989022811262405352317243932868131290749076839920182867241275901165275435707311701532489179627645503752630277260624032542019499645982615071126383972889469977699863607662061821707145995558621792721774225925994331570089527234309200643837951428556175857276574879011030230312233520571173908130772988882503947205084116902993003302353702345778681516363467054623611107379764552344726177152485629052950568884326522049252991771979016884188295961551440780087880063240401208099924171937344615553287446556080749472369570836571880176816305719289202764998624515316826386300776172166774838027273092327271114132638995893185692941265911039172159312347776687026674804571111070631156349698176191820853942695292217793851039082469072178902190579441765730480860733657680503265892847757691179245784377553625104382561830299604201447998259684111140181025138906053570439185832798679430484968325900110187167660676490138827198390841185842169596979039932624118150119659935355876488288827902028763860533327771835694361855239326572519372645025068815956949306531777410069279237528125964906501290560915584391475828540567762602464985061153279792985647743561102523321876830587238981773845246211362139774729434028818253940841188331097669419294117017732788486889292293590246934000928914574450547997103871737844970376000415532493372903164295548857100816773789376221761527436535166970729217650098155080180657732311175281230178369699633542407158877107438254293848108779300653357726145614776499832603351980271092232197797801430743174314604675777370402885186846016702900088051716352547324609975577576218621273241306831620361328091976229755535122728614913285945311289609610874983609831913466531757903792927071640953471647622680896461834258458640013243905146726710746848295188195651464742587121990323120500197194408073620183904760939703529769807632204872964820964685967141332037057095113427305323049242624408933090177732606015440425433526937134685182017155194309132665708359704457316206623859946852847265898675640049564952250593965275528723347880977742464168919250893120596274810641365835300863619803318059417096652997128030356028896082257871516878330249406457621165529227954788273920197086798282149003088757360541022551501046544805818803097265004676665064586282522152370269274023581124107988543044514343852845084365067409235822432395626600036065520785200664643593485936150193642057430714584602402145333190208085725851209669794080982608351322202840136864371749043342887915920174847779146723188954805412957916323730159859833412995483636960932428213131866299610265684396975644686182934341013356351869107165388050805120279511884684450205994290889531228077844511306610956105967810153271186476838472405373144377164885331258955253689015999082655911894775022369264397272419614377519812141667190416979022028113228962876445677369868550161931328458996614672930447298814962134204254810753502681647658648830374940164772308327001620184524210286941810018896435676555991564337276944579897337823804606636366164106903855311525609860165785767185914524663240399550625770714529408251743956160597747354617579955747080717196126766552423366326287766626066817654695101369093124513933209232688203144993353484347961796235438117819545028387797830967982070702547970565464861550694330972371664848863008727091034746380795007063996805244375440929947130749377094683641526750123503295902465630285089658891702101732816547764086087369088710480042466299186435546573794156664500630488982211420457179733315307128036662995003482496724461517013455128373370155818624884092664700693716802416600174182365719636107247111708549871151531145852276415289676962358842578024128820310676548481153215969024763298579569804094657443179038891076685159903257657000171270244718901307753910538781672256534807500620716787306915225750921323677052699255648345299647499651810282201601000716693152336170386132839755957945057565419515761068751684690912468957974725568106333144616735770446879354115564339939527549581747836678516931732030628657792532758631036409082525246576111348567991143472829038439274077708332703632152773753677080406573675970827466065671013033496567687330574549186715995334782651279830926155068174051918106888872035825525628305027202339268369501044880402373631822402688032753575019378240518902755183417788074558026243011364498436262547924231957375285967112641374169919212845947705535963606042594923550743590521611878225846022058748054252540736655870591407325600063188384269330016804697996934962975855602647078688613744011243016306188389974761990863872021978438771137830482007565976008581489397569532724849154169049360502079762684050593797055864445468631034041646543858350158845217221447029966850393656085931246620958822297343696786741144699511723119914346497285401042244500968566524530875670506319167124027686512419841703926863007502571954408221782305536919853854681251101598312380079302693347834864738940334090706996223049816169206575531814204443714015728871797280366476881562774327075143290926303485631464788219192378332117286419169406371437053620416067374502272877563812774881477532781990295578809317927425156195248278421331512165651127503727220714184164817212920152974744571933366130715225330286163129358940265367288510371312815971239838932579413073021534634761686299013834711131498276352379019630405211173072583448953473770712997135570625137631622584420856150810399524445325446005353658800183484792772051210260691875564667489601306095918130210482352958023244848901684543301896157897860524921018570627388242909264263865607019113860039293029001499795572236969290587308178905250954665464555545192365343518660321311670095925703994207303501179961754680158168192037102287305735918915963518311520420911008747277454734158795730319988939109066274144784952222091320057342060890736751584865270257465850818196158387865196784229729057025496984719349815291682314210257063951190630189449033403943314865381817987996145149180009560684530925580952802393174911208948290677768760306205405935190633612848890668265689973468203687113969889536492570792072625518804847959762612538456770175058394826121902613424285350852024021173596954473757084737364766233866018808483189744120235772263670467824234931716655848561067204958626051764708894593027038586470011472631843372249209935585842309739995819755937632983516672811888602164572329409645118076512252175111539383967090071748779911030134688612886608318889432263511783910723871930986748366403762619552590067100727249215223897907013621678838789674533178788266112208641739419309204221536981786427564597738261226909977459350295599247708948126972859415588553506589046887344135092111549074248842199107956153380438249391127123565926040386498185963169890703759129111299741701754797552726026143840896864093058152156165957760947377399604953998716171321506467929274917384024303249511484348784727846638884936633603081333468642950535098311563418325262902101456666299495354300674404073827884299041334899661378696865729048289100165142867164323673671483463316768088046960106675855394909311906577965090587481060934237029768982751976634486731835245665736143708443974757164504474650483175118660977722839717914413280890392696437011321255176578723351301355472747198131661777918391747431852095570201650895318250173353597432896915978195986305042541689791494962758314961029566567076912355976821278305840392350752826229403075537587161378231756664805155962764617716049561393532232166443312440023260958471098369219735146536638032512206662734430991604636625451190484904424042826451899091991714358305893354393697587056907747921190287104116059834815040265382506972302087949167610090725732089154808387817948093333039784759910197072611831770406004488580057857103476470332974572284795751552845771326442409145339015866749251765541056895729339152085572475447664145176792843994486163180142250014737558954035028930091399648276619288698912911090071850171159807221732557634858132019712500757017170932436739138870851115399709669804330595761218228880524832867267500336605651810323181738696323990426065920385179520899396776790404749720375920281208576884616354616798477480616622547456300790071075434535342059875701994678078491110097398955147170151389174747182620732451169475574332427891340319592018680746263924158777874049693075817214805954266139113998006776083311818277699106546977425379447164456283491624445766595980662025102236337125219027599210927365608822526476676473062028584626648555591484416238291788869541014166416221094630394111794124452318871676322587092293579831838733209771677191409873747376297220465420281884541136436902715186631906584148847238411111114913529234842996773287985402357425859256538146722317495940883516164130135451111716857147656864918117578666891006040081686056389721444872557804284069701082327562590575023111669824603396219781501954740131831618522648511691270140785221799109969232826133915224453502781598077946374692588568693335792457265993206557726856640243519370352724233291089765924602024654834361854231291344152954471301303081420587814685800514086198284980694753425029230800566475877517091414795848808860043502591632502519795896997184682847281706140142578651087200040700296978437093730952577042377043227556301773500778103443848547910888295037728483105936803491714691712210987411601673331187747116395917586590118522867667288175150836081707295103498267074057215428848393985540457728499865162894855431786833929686471561263211825071643490998849515808691322159914299435198364654266414942146330149128090672591520999621305480694730917558221240988786242747921526510848635720314390708794160684369415925219379381798317117488145575513760272834661380462465911425025056455717057504844027588453705623584838552310096276865880490512999995039791338387340471746390830558459742054777478378946254645618263075614532308510161236960535436060335387132802716615755780483367819177712299476186655793470858156005726150826797104554110644737561590357867604806220380155437647134286845586824906584839615123027621254818906005112687661882866744695972291266756853007902554133949101001377065971711921733903139947945918876742309774313442886028175964649285341507898756213108441135900858082973832807747245052411378060226027103939386970503129730832540836760505825889840021354457083394397679040125193856305729939708418175283303824823250706941162321119946891629903775539304226961424359359631872774261352213942269318924847486278756372947192985347105355522209310397141974157753726439102526449964246948931122640747681175683568506826205773579379195062430039368226346359845386411618475198473577847275018136338662240292299852513909159087075782788871235596598882315428669809789247711248057768810751746870196841086831050103285024432037016912161194886297387349539505932495043341321300981746624092749296356418252453434417797195921808085716894142520359584182836527123424503595133794361844921324146566542703102974148091765559481077794191298581290697713215737825812515859767738374532538071129542033797765009084562714044089958300889072253429360983770161916087717741671009133982410228699324152412892603983233793047352002350475898164859881938929838762070517807315553313057380432690183056583055618003794543050624832989833942187395361214487457384639966176178502169479007103378092082851523582728445964777237020485563311597847461196812337005289177139250090643587033254848396053691148405799156898931680389565485406444266062092443639468668793614928475473224383979538973214290419675334897918367361253723429419044996084208048929817858490089271170193434953295794032061167286476879576303316997248065788257233659902145537222317487741801810687157303151378375597924375543475804065535165393292673345303240720247364546919216170826456576328979261489004810358818341729329279024805424759173805265758129864596382144034942898165149039860702892926755944952850590357563315412018746269992107510651462073934958041635669939419748605357351915394005826371229491804122914652575281010842874552539347523018412098968592364685841888580120265326219396513759313151270319861509405354292371226874626625931438310082810964908684107767921426002391412857039338253930985349856224682917919240521013860891874976648492003207925878479319096409283733440064243828935445005549118224619053385302867908875149992451420414918547770451065092584349383417496478320329582282130058141043443574907944112113485584023176288684801668754977990317315315593445846994111842919421507377228464766076654380492526705780790913683488395209857532245358624424402551920730482420623106128544926609989593351108790811843271335798018106947196273192021000344488690598645898851575766819697758926768821086930110718014233637131591774875307820045423926638293342343903988659166101779343550504661185029536106522121408925728276729940955451107571414285316183384025954861981160273627444209189350578825406565771975124576521020739616085900286041777817305558312331737360102205876861648149901883504073656456239840081096723588871205718083270431017788538315336404028827306140988213941629053092289999116474003057904666598828687229748427190711726381266194855693150491335700693808888223048972531334472506957549793481357064278500425538232969807954466355815420850469428570602105982510417749844279560893504259136760152820249068932010429398117150494767209708394746654104570155682189638291794100023616465320298792143514529015298253465357179951885245579208083185201762213187155779025825875468557601018564040730169324555223979877456038147847821059161273069707328971789380955819032892690286875314636664643666673040320670341143969010951180456793129882944000754527385159623168596836946959886224985955510196446416589331625498876593169734033330147438965574479785591446297403421351140542026625991818298276367276032010365103065648585596082034114260906750303893880788325378969987680652256387842857231779644961915848692574006071348460928742731515687450013375064668351711685071071700999443317444682668521339301336327570675515675790515746895391061321410298315041276180631256632801230991462118094346806337107659910304581675861567978870441500839167559282746145440773265064409488482355628686079690910261798332331312301735759647790040788283392139190371973865603931622792557137343868239599677644323943380445230823662958352515412080358760464248856151631648829500880189569955976230060934399387368740743577260222233605297556665789447733319423751792653686535293604258976626981274350495603628924391007921630442633793231694546924816940412303596803022846220304658855282675963941703132168265736412441797334408182355002012143672614980801190224554866008784525492819517153790565274467250094300078084544400152562384913499781086297503004503142924909427736389399217418439485026524143396188541110594274199430623968955949621267829188797905434700786907917430145271739102076884888868431031062016962486793714191568972838206409576028107041812811159793993172558848583104984621941249261011294428916127454116196085389557869159686651447573962644102887216444268293330465030500750140208564132310441821646128052186636398061712097694737802704916225121060067248060639486202354867641538846236192567950040934633590352079904674438040219570663218428855158791011153358471276100072122716964757490072840962113143709720549030060128295433631044830359038905613797087636783361592758115536361061583387447918882342116038860270329480193196550556437829700806410045610189269181812798464296107961221878057077753005569309348211194558214491978191090331810914598993572663439861226610668184840349859308447507068869918656289898356627443765187697789052731274330458978913267119080484429322325536441001338829021454627751658274190509275458556751516457525628103806155213187991551555110797148479303002757340485445522914236261971011649835775684442774712420893001167870348463817923878118663124212087262417779360228967547351354615999202455969848431513744492852352187113140801055182140487549702252717706196777986716912896282935381089015066247704779992180076706387858039455010811017926936983582260308852422214322797385391117921774145282811615186518905714475452478255161400548935441793382628545439199095483162748712122074085045982320577527139164671910998048294010828365709209305656799841029637313080041397798252670959042265993133086321577196745670848789702047075009450435388663345097887618019548590977595080078117328773349811655066406983465214460670669535193595640321638488769857352726442310139870292205788347982357033574116766621187851561383411109398890798056981483939968740628647665856216416582734659822699864387028022232027389737921521860716749886310534777559196368710869431736231841338742925648622488044446693095912803448763915074883542812716351290065556638372497181041526480959973070607144992707314620662986044727320996852721206187802494834234277435958497167863622012344952998010453903330139310403154721976963394438106062383679882222845132933689610187367974386600823942925550667496633418413272959999452196107584459530095922919505314447039244604161096321806762345047532616642343139394247412624146300216429434536921241619364760266364712060643257590853787474516991837988058772562206992426039939445327779293396968988018968262636818140373367371161970568182057046500261080922282057786234392324928718274552381703989721252135441584674509440987544867137359865781116839187398267635315370802330209171027764530133047574975583568284534067308095507724332800954371320816900624832971592454574048108149032031180097986652770472086151792379015184905890725523201331207970330037990479329833126475636913684402658342072486684973846400018506847565561585689334221778516747435026310908769078729196959708901274293855208633992491041376873179681624604681828838455532605373219767617356139309321563727216123678801109736225223132197131818371055618769509484062393864690845269382232481121988795629204924949042951539130495761637451583091296497734184234838613488869138816157021468756900305088453985692442348425196565703119943806595405763676310799872686462019538759752488404449317699847886413459376479310978887355482349989673325544225652792020677404701253987308848846478597245180040004859871329864411077332557696153706466533790847957904790667297496226960996979623400506621349430956840030004310501623161683331896613156143510415977080369766552420220820922560324945180728135251632812027607462703828759497263951864622913811965425334816460100054876659674880067451389009660238721628317756314185352834972679990782073262471716096787103920779140922548487485133181441335136965862388638874207107426870324104143897074669119760151005252198299542474803482230869332990173215671506808926542122429059611102178846958580965516115715459150974545942807289187996042737621826315242401248151008893491136419128302728833303687586633039632228892807332950698106252670944313081281224328789735393289168019452555022235271056609427389480650277573680646104823508404174028492504655141686665796120704627281883184051065001466188800094780897506193256255786173884657835379487911058588016382958936607827711254023151144303138643923952896436028869156418652334249734692948530318778899321554551076849915666014977424869334265641764565936153407586777118720768511382407011186095451707886261390693607212483849201863794320315975443446379508549954844270748199434169813538514515236485882614140518926028724710838896315283086391989812267266141856052283372342151948167666950702604114084698399779174327370930534485214662250335238627331050336402792063432481631836189378507721251426442317280552935162277209854090710880649694327252024952712802322084560500005050552689019313178578587828901255244534918660239947031532330482351553224454231570544762620049936392211628616741946096788676743976228919840560083228143189122926579815142887040921099443924113700054801821335769143446887151685302661943583723660847421736959645050344504799748981477797395755062633532387746634008997903003829198308893851101191306552589768420755545491852210525281992745358046303626202753702828428933322142242206546013779249194968180210197077056879110577714613762269924396053450242578236790814338894533601713037983243373734046398582969591640271009072558580941640758551632833399190174466979799555402917596948342283165310181952630677281020079981666469692914695723866028206262844795138400020313239245792660065333161118915595604125467308591573335493452568473318929871650767587567379919933984970197969871401955491915555107415038684542015517784135513732263806333908659966494370314388056131914746731260745092538995445762626525783935550746430892509338728724570116950379454142688786145626495350987799852551420261548513178793953684372323461125620519487603712425989796892019299665861304348437355311225926064836216201363491105434234034085271338246770155911902367022189827187453238169575883222394802617833058518867983357581418288313201424301029664722571735198441961423753278570346165643167030546973921377936602455486167046273387716195221859013785181054235704240030085705383167666690250545191206663596555752528318559313785642606310679690739538882270457360905903931224440181632253134797397605672805912010204774376391314189992724989629908159951805366877014553402702802351413780669929679324246734050718905431298061829011138771239207061788199237564968960302929722272719336060754736282394623520653217827163025545992228666581860757076590505608890712223502016779180249850046449597970984432772223210963067391409917903703604685138087042994061513624718318157164174043363756251078420622290788890046541211792038967813562065844115910546407420730855206410035114694630706656239810654091602864052734227554853687922995820026571217924265231717034706901649073580984469399639818147774056905319137666114723554443031024557399060268020621587355923054597635799753203051365080375938261722688558220101347149118423946639782086897131422664199805597808087778755934460146517375772774711643588189868261549442638260544369300308081998053099090818885917690560080050960104925992579431096744757522820824672111188008474694385688262558657864375605125690581134831770562346612062885027947101338073111448914889424413145092229558936265285233424438144531772388448029268946344560503625689143881058928799691130432595878295821483228281310294000579775971939324890563602266243129854711212480068319422900359656740177986076208881675144763972429532546919478774848109573057090787001359122870237066940064756020727998795233148349095604456357474397662602866502532105915395857202801252163614825767688700054802226244273368407638587753556784186490530446379349600136492149834205588185309043434975702194613583327084355214228415022375877399014145752218065714370843379704729012379898587281385152290986994855602553897178675493055740285502146769028758838123644023661162731880956109695275895992205837862294463836966620768463069616576048562141642617748205070851573407658124449852271620072909994673678894138506548192426743740730990065099372133123067025098242001654508085928284020337852311557332271202444756563415109437332293073136067206292282675472814238957736672206021165982416550738097073624176603602103190139450884371747780910987320797612672816312663691165944360616327201049863181869206169811552194245004485428093316022969762574938628458849184997661667226676913371884262306497677255210853309194683592586541214507146811332083364182052577768421649381772843213448880034378575699901476016242871907291710101272218631760825598196425012046659848500291062378967724362415628208654224296301050264046010843583521189240546692238035055303671736637407811922720844228374608535712020803850847439661818658797188914272820760537415918144097891889479883822248424868647268171305348322479717747755128156809426362583840498906230781281944820600125369037983643469233476215800096420829999803127418251697895111682929841522860027844867860593174953234724621630378969774697042341831959851267500647833757396099818183732914782831045747907029467604419247160857792803770502068394268326023928868073704367078774606504478069297659786648923135294670847326425419532148910446283221302250911396718018660582980287414286416144666184141938979772093471105404542529878593593923093422869092000920261333647952880841707311809819832131190803009687059744243454948664390346803585341050124994240275947499022216550328395001814827614294134481548166545206694278713431111208384391478893212762242075687376458719346026847602263108509274471862737127649288499104113321965656578758529095981922604923550690262919958676791157441122932812667532464876475585638497004632269321800736958027929962471892784233901747409228152865188591018605349812252862524113525043120617511773134123742802741833197034918112243042251082802627557603151566282590962341626377630591940637428371067649861283117290040955941009947988265479953282858809198896645316132931990240735960534379999167754507823944860777725712063171590918538470695932795811773106433614016513395108828570846652867127705310874645600543189751677107688408258389443298399862007877625365208274763842804889755654294891644333532963026556495907688566408195344734944816415344728050145461172798768730765895560670422835106480429821350085062758169104606903660714934123694196887844406367640393582605417874662923400118268263473516400766500274939008978339747511803381427792885562689433248170106938218221685494416903855058330291582850580533855672600083045342746232744578768124020226875864056058095921074465414479775533480336104834718203956096129379967890733233047175155447756963342684522459502076528136792077547715527975029031660199646506182551080733811356075788234669596955865791611704721401904757451950807531100965773671153926707384947949229541500776452244004174210770250700597462247974436664333648403856051814993273918419991171416262336549457496191598641282534595874374967856419742684496982903757256449151593698654156043953388240787759814327924132365623728735004974583455686439246833924748794548237071355418417707082220215455696624883068879178949839454538313303539468745010911604053786155638668371992660289683193064841311930849597001553212259527108539034050071523881217115024792078675815925016805592779247640182626723500475075191624193546996958606285588448782516020839394095268221436255620438932516224638411552915606186353474796957122641014083186405322559576766484180476959549462991831761770676805683071004548431955179660769531360605369913914001431070930693105278645988377812745542814756147871039955555164031572044580645945130465873459314320225546675224865589326367545042751052091866729477955435437516283096069714919584998339532810890997455814840788699070799361610714040751008232914374698601862724512899784470746149356979390623784505286582426835867241109376400421266233407908831693542654471866804467185250303354235897679384108011897266804367629742571718333739832158872992142034872701621830621731144879109654179118273756373142810671281276866270497148943716024110471818473132674621483575743639492334428301091093555927106078365825424002294043538635667846982670528198085215934168997479054899231293378034659551954949503077894945738299055358654775271816978815980130898648130495715393238810997628553812135536471411942747906683594961994901094707426449545492285330287902376488676387542998471173428303515285815413840659358949370497227822210256010167890547887712439367549189298461212018224271073585228691808126401846917056832590356855866558687656699300154059636805605327941229435715756753929576294543676902413136367105957994475801797425255767760843567446617696965048450932924168434152468978483121051863610911495870962549022193087681770602349504697850159789885867911021294182176987188321645566995949071459883349333964392164680637469901424025205840060226667973596819423851222503459733783663407968508948627677993420872354741184820391181234214018476345743060420661016711944925873405627219546893555309115732338938663221167574743803565098236517267130151334456632411926605981879785380824810232399458471396091300764699568022560617629637236621680762973441320867573550924943318050505436758374070320225208932773581075029425002851255424032478021820788103876636642372499189693489435078620916794386365399960318889665922022155363707642362712650562762355271392629354926819274996337441718403346600527379504508951491819741886305215517400511543497125933335523687320271104974559127328584116985417389530191789572573811251883107488225407230885296478021715422984306436230760067331878667265970723771463702559448465182782953602167165899793449449155051821527370997485336456577945719845793671399892477124437317941230624443387316861451092051474824572624349169796442753248351069935257139580557321777254035020835401035934056762069103925716628071932022822421656888843998299062473646673029167946968479418010241098280913574084966973655701493418283756065059842158524837776985129006071700827319633135624584047552679032723189665153954486568482907452446034187842176525505171391277811323280626843706110806183385083580646449392801927847660094314210144973956789250468521627521691168629509977221170526507065815208265406877130708831110018042874623348345833645827939293997077174399446710527498302661344181304840882066389636701834007109119371654735970298240842576916289399150198339730204772191360396686208058793486204733001806929880496137973459952439216773695296220484866691688441987813783141216457431305654818845247070625915158547374428357502047446907322626355660091736985537584090856201536014211065155957601334944714780088384319807504779502989142558713866911848370919750047338476193685974383415770439830759045672258800347860984730037879755724654184782556876191405877109286720936907109296035541763079262036235811809232452554106212142494475088677092759529336254172174579018462505518495810833303065821811424628579159978165043208102943329170767552721552977213121663812694338057508946496891843500809310777121603492751253027068611610605522988669429707398398131758919750481617073002129126365499487068194783949948695414779389250010123578682805017362850572498394829727321563804881772796054088542252563345201275243562468565353131027986262943358545105409866046452475734281738377380825805712360760583001623060194018045601202403840561410281311051827014212616119140939535594936574628967255812019086613735108488770101788560589206821236120063608576177214678187601740734136757893413347340731088153946031458107529772022126742232141996722133671899659763619168303803341847433957848755376141447897193628658267876270389733211988117105744510922401210368802608800643006451956391293524605327917377276969515838759858483175079296660648178907794180363499359690764374504145294892492181184138443690795851343315378453778367622023848441710054602201213223439803097297080574031017695971484347453260781233158585640945534008564068085452014681882598202396498397226998634745373782673055547760181643337539685211031721768693341826685028086907881030431108884266469548627432859411096993423101332164614078162385769065629005460070378656002388069431875088553609066702521325150580327650847248286769224298823874987063164397519276911002798484520603151452831500396263446353626230982527233857984176436322527511559135118516662123537202750172367537231476525469000877682441750114130299923999529214669340453811596344677279442364982655034055922216857694231283628732536227499253346970677689708655991373836150166686339773777741724847813156901945098226752110623126399888059407368880030631954026479961479045735227902666548635895214281308115020066376710877614164755344935568874485342336734855401772587874140972399420473176166373632834631466879307301060578727679711260393263490977606725818192551063902149697949041354834901510261362550684671516440436913594093454137283618501819363093570196165654110882733749945912249516392844289427972380042677492626931228844170218834321469779934450017704354772442714354519391011234754209080079650532221139270821005280594162097640929157035267829684959569326977082422789122180160135318179152172263623361848659175400623527885286220561133179233393569478077031906645608658446601645419707765727410731821850287179768927131082257480372141311994713870447256494568504298299620370568650816188638632265022118865948730854765142885575100241562111004137807318062480077152695230439985117458541067772190450996313631491964645501698200530097773555914198632009430472319270502617410344316791025773701242113787094646796636933760506951630485244286289360959889489886190993240402107542428647907324412070184690407630951874317865770858764457961072036512208259402682356681483300081146533588677519142956140371396715213324798107793067346988201765742984532407591951193261159434110951393613151190305498768503663129009752999500294187063011321543375128570923344626473938163300684765032785136288501943174695485713412219865477707736527962727119372678521772805494955798677458677612689439122394742295129852083103696377624815324351327172212116586762761108435312957147958121336659299493387545667927129672050967480054767417477567700962161335725837174192396592133832755968445930917511656285373085054438404811826012493123297170767541151525007933308466379056388115232219155207984924531563355210920216567530638128419169845482986823422251012992972794171132893174167402946150155521352819189457447515788434439832296439090113520762751636823931178651940523011407309653332121918645128969172098822537420774590298086236312126872547171285808160677759496989208593610025842606936770233280002212462355753922163616703957987740538604176219694400094732302570080988988322287393207529174985937694711499633910789104501972656312259423607171883643807144222730611486731404837509073782458442589407564864884240401548114177386968867265165412741864752353124806618498325388561613745704706390246346890444777138771740852722344804627516002216250568755667326069242834360039341218315664603275794634345439415248462438104574219077978322559665441115643129801405745038498237732059087272916717962213147574691306949334845643149203817993673183228350757518286702620424151667975199377081796232059687609443470599651690033278392825224402625010076300994634957772369602024050782667862886958582790120089999981614591554477716930635280208963769044433329636750482480006993332274400150351667533309952131981274458138520766121694472061822584627973808843014145689445237670225216145034867094845505094124385327201551598963814991795476321030677656134817592682789635410684928050475801315608608897619922602744717437152684245262093745119705902818479688790192641500604501698827192372236441261327069705427381298140529507011395435069111317599436439344679725182271077881812099901453566231833125193411779188274918254261699377507090884294741323785267337328521599462690545241998282956598497758141104396841755916906921064881904407807286086478585933118784687387928867284405653934956042131440841518987110317344868255290770899763268777702314862524750710851278115935789962821331886690828510248912266645539153745198295759086530977960053992769449573826035847186146508402982036374200821425243645326446922912548729752435387662297175862161286861249434257730389436495695138397261171345073338096872445020992350643504390817242580262261740910523724693854118751921790859707624115240916247986683055843096371788542487483144125435405229243403823730679832704950189441634396043665816597288458253273411680655989334585666948203443521350184198202042808603915235969641085765600865759222241386087473363520200455939162240106127923425374257972577839255029660856897818387808158651696690201388986867538069635064174026025803032993864875611476254468418437152227905664927851717105120147937560042988949404831852375174090579263631478167408638798115265778478253937952811850450777256625419091505547307791716482373923609875594133446541924972104258090046583661663902865181713785782671558034195425168172218728904073798298917795881907723293122972715704507477069607526983445265530544736383259713336765669772388615515949180395052336372918035435486227969791146364307965756507372297630160442244980892669542340018055010382523583238731979548239753136213246752836493678179174047534672773174467945352972363048007263646196818823701556803686321664539098147806228122509340692679041222655410719911078964502520481981778522883652214558744508222399816665847473461830506507311694355585610389987006670997087441750528082730873290066538715102725628804166682948880512364495756920985832694071326177528435122204313442416924208948311469813706175801043924387668188733549280222589466241555827334279684500305602150573644426218832216193907243816561196394039819022569859469988601328873700306961283838298798491677872956422909585760758832542484821949218203960949140379276495158504657815694576020618011480136767742348660013230126738344549263672956576176699578371155752502269775581467814084280696673934304731203972433100952624737596074290059757395603864937378265886507760882463656564651922260406365107540371289769595233911746326331611005917648559030759126573397223764302858009918358709328090347240796257389504036198617398837909198379850191271982994936963082625184619366424221413448752820993128334942484698609242747123797390794455836270139186204546264473792146180703390325602538871332525440955085293701226183196568186016002300588378796070700525330018186650029206280753407285720540092333479046517998417478929786783600109945856888587129594655732364856499279390547260505359877129569600623022194242092610374270112275866123775371798744896033477464703742350812138757453824689767102134499338655159862287043289249135952953073643042785750472322549578938854264633631113121215426882158218807420973732373865184928885631214057428704445598838631500232970812821645981724173695069873196557137910222658726800675044029743579266186311297097998840025768773942265956016041731773250739044764128105775487761150384660536131508828416631105306510134974276298547145424186244415266728305214952866515155291729675179582349299835341167454750439337016799311935556049497833448794660811805039582370345085711540280163812876178643394488988739803908217272109908021426729443725985188783657628926048920234522258168392049211721605390913239986858241981009012071630776000472875856037146751818993473183519530018202534366169780183179686872037357253922342119522594345388978118034979863857938774477372907708698453033318167051994419734201927721146075550788842939976998228603613815142177940064458604585526651104054899248155917661487203630413821487956835585165425393600678208691818101564665798249474228226025033459445583754527829706912865424227971502237126165109852756461621417906243439118981542296321903503288154853102220666329487424384135675495848804248089113494073137161803566000700761491811103385073165275218166320224053162793506433332174588364415538836395771221618452695079850613490710873283731610002307256057955787739059233467886128465706451233781539853478475615075896847213954694976327081896115812739770983006135503769713444433319686506302999918303917580961487735532152345619110366936769592655677695188476661784192033460549941060303822779671672949733250886442479835830139724175412324879055738418971843773158496548635589788075646813863837454363823035822418285683901954119168625102585977131244960538997758202832053997116057057844051595756623429229331946110386157876342274653450747069129646690922649062730486307007368462210658099787869788014432994057481334407777291681624218692151474036019389959364219524239193697985364573605994892768309552981199055535392132790639282067854162283219771233630436142084667358757949472703423761955672301424532599783721807422967941235969369788835060240903598739067136003461920517933740123981787466398793695982469700362676981248780651636039567606249711253348213264664716933514268581353648609710565490645736135646071518147882609642189257547724455908114850321120791144886212706493139386150031382953151171515116233232006575117866911603918459359109266486486060847683606489316613630431579912193980975066738897897820456277769865260685405811470965830863986264610118809793161391157959620297585916129083388727292964471886454422111163912867401181611834272959404003272249130023726095635654217283242446626417586803319762834940823191720438902529985022716050525245827270972442195033250485081759551473712556113970875557252272281946046032105404902906809833735817686752032847066784591677786367894407320211946958295186692080519500339354785962508254272069211639385549007487344877839641866287506293199490400310031593321232155134563460945745162900825753245385317736132185279401401243923731456547199325803560132211033157783498086850490802312261659968499657250761913969559175888616392512573976065252124249801415870991222655570880811529332852494650190805756876494911644484710111990659442130737184111160216814788652119918195505974666394985341624133037299316685060794672728436183985567517879649926050045157942808564123924419633452377033685942908349299788119832516273921274230447910777031668536978739366252386037113309384783227803281451301158641479746867760624061735482777232653806362753260227080237601905658959003129677234934576273126085283333871928223216651812946525619061571588538949352664665739292404771217968438137413035643623142431420332422370509694000790124631222963703240799416842156651615331822238144652238607230621977176258814229818525516834510439811885048864299540486689526816561786428073787511189344814400378496970167277453177251639644035041118854921528468586869834882537193903498222811973792849916847362567758947470864334996311121328542250068802187165549595238753892822765417264678089265306089530969347961129011983139681639453797529095784988513334305276670460352750471859989996013049428431989356201023247819296313216030249383316846026834681970996232528815233630712319977624823000201325336768799453627733213496463280969149609759904613455110769983477152189737683847746976157795356577320068851262752996682229591781719815737906145959892318332330277415038961035085073655899328443187687411555699151637752539938828359282100540921475476511919879156267779588322694964686812917194996865975702589786223957970623943187226717716295934612603942243547073493027127277539636737973741371915093571494233546702217948541115869468238143711040374366719401117903712304971164146762843215914803839941716170011467017431029725382379268686432975219118636691239418563499211150284022187073082480372256416624083600083115962575017988158269261763033809227476214134879416367380502397138675857686177693697228254373817908656413739336148765341381894020179769291275690649497836705572843099408517310444902395883646636400915252090493833537472189421947492729675952225829350839735867622861562456997989029241253917212865664444335743709366354486833388285253219652682455657919628651536491180945392350424722223968294679874688554961075530515358753321263868372213063904472411794819094784576365117123687919619650990820401006557519206890186560690760863927668101170767578592539990450301349548810257681463018458562472522563365939646489225125979968500813514685496733416628364758200327855028228204866374809825685571279294485497295796283302899974887855397164105885806211966227960481011890180353544518876248842486469747243322110164881320404478607457481005441451674326196479222723550962207167454325748138022194052348908272046924690312122230515596156806191270683086830002773031836409028694794306849850727169753494401494071576102492855010577572047607193264464862221659792063199604458271832138618297249830706440279486586706565072821307840847593476762996815833730772943996541744202668630639651323986159692606397943188437582651597973096434410693406515805857543967582192202071415382231714627038485827983257627390898161173835790862605281371066626211135295996662862276748576606043469554609199047267636520867088135753156691077494671207683375557001508741946373520556925558421666021975141415327140891470090659483187070357207870640034295311328174459602875674364373565324757431216484260499492436930266159253939173681907932049718494402810755378962230721926837319869247288339425953560246937351762333197228180933707643655568078623489464443913057101633544229819481843661138598788618060856465932943353262999936066760544058749092528438331335860064004097436147245013158297249579461117161385747597005067600090494818900877174253009163420300267135967257394570683498797206269265522625104984321148492146247825288425091058316241584728898533554340976449255448461164411789115139518033081289984553533838767235290934052315538315817464820339891034956514657611731999671367974688923398068824602501008922988811561302782212377656131022602953308053284389811876789285384879189843591067124790510224323397470399898357079069732402992051736647560940562879510846789495625391732039325151441211012163933363774094957583759635731923481130042154662781009884630919256157058179602854169244554804621393724562682302347033427707845205430500303793330586537757030689480849964937613078569650594177559701638988732082161988807025425813295082428543989578251520103356710842952331896020939384437597365609590496557795898125932796850339522667703836631710355522210245341819332936037268081873648215846591497327934966744637966013858310797314005711303460480582981222372660759320178663422126522419413305917488854650318330531800336453770836678779525809114615043542509071599303059696182511582883526494030197573823433472581437693108418377775774440792415741411848526367927607925156727655793958986110433924225782438452398123056482145131722241266914469303123345151710110258630704526018384285588965624594892328515574024902022411065275245328005179678359128038349391684908291492385962431094155774882236823520525518356057928395587995980783855564698764557606846908927905812276765121734787127587413980729266419374083531271035861906208623695183641632046388586688744229498852794042810678446327090987578628775297975378417455514830896631980247068194617526143790538789127560894399737923003670152097457898520527633411534895456413798572748364439479588481003875429800959505429544271628465507145475837849424081339839545756053796373227406569027055450137767330556557517316742294850380580929347975950284540725512063758531814891545706656149220525399227852337188527943526061705898927007328867860160043411632698907584174107242443595919989929163423608652766914639416550817575898225979436111516578928530769912427392943414086711714003769007945370090675737096269022874891826511840624266893654723608303400508556303637084741289139316517180847298454504783104087736717367818104787000055809459499919662807152901264214089689012890833114405423051793356594426892106049009284416036066376926035254426159035867697978490862953503452103465953923669222075685096938623015968816338861365808959721114024276297875187345086478585476851769403497286272291282349280925202127977141510374640421783015942938402693415723149383674066757445296185724357130307498916692789600722432315729747580226287388196301548567992398673043552030465185914438134964436646022838392172887078682724068888736252564705237675606816471154687015218367178267671261110922500551582928597053128983660139197891552114998374784058780512449945048477135336717024286514631275714324395035604233613960783041693308877812559168025868396150586829137433393675446380409506859557077044921201652743791567280646643192135291472728073714053340609200388234823574909875050234579857807249291676237318915332276455834652615585690516055686427237018018238654487298676485233780353685373959599364347194803320909992793076969954078326208289264415020292709474025259654452938970268932941553454705127982967762002288013907950670025003724847233080795859682811329098792930233196854012153541333430517548791862175483199686699084658137989890637101571997329025140297372346780690650782131134732271656435399972580791690936663230835331185164288948597282216525072968295613559176443905685625083954916430884888937454667905363751572205679507543298253112860460576761967358641864774979506933607762770125940701741146701271669553000988192126861825829486632279772943488655314264748756238075347856256080715023996557295898658966356347472293774715170956086230333306768906733364941192909913370755907871112408100857197871064517314600713544250302892975074310450193388963073969576510291186878315237276917403151646172028885868879825774439470642431105179705798319560935234772486727775103671833637514041117299425237610164102296802887808532414575825603881556670740591331935537847848054845707939097219770773190655030371645137180148394831458306816917777500333808884574487186938368056425547938260535499246725423802092709410518018578366998626320275620261340362058759911136665547621392162349940331250724640559432583675312389153187875748703883641374645628750903403117207284295937486925270888866192570688306391360384684428592586707148280014058394567562856149574976053544481579194262051332324849256055318066112738548212796676220077765145757731243615915833785586108266082652945789479360254514999623616204342573016834022980874285091570363717376462971710262620841071724125031610793978359735347203289092276388759711208724852183393157314918093983081142358632798801927366024194481692444117036918858242406475539367932488500533083538415334281826409871200208119187264861402246213483531052334703913385240672534021997183000008681420400533253505868958240072115356096552862031357959748862565557208729351788228851197938030252321886992595708532600329073686048222047357923017859094518394953461569849165497648245086623697466125587941411789932693185931179234268008175715208252945145328726173546308983016521970879932633949938214772478841172581274260053642782259398064510216074052761602549888611012248699999752774725014034920938023356440385363937701002399285839285954221454884462452728764105493618157696323404352616579662135888141379125123614672216174624502158653951445350728176534609770983074870576961565243483909265637487847622515522981470671438776255951041911674790382295093785637728611338744254593613664326941347069362646185893476288676715016487986689965686645929872512523725186442563984929961118441167455656454094501927839127457183376724153785188172268290558983370972831504351481175887247888854219426437427165809198410848202500116379768496596235132885231994673643281452793787375006904728515534426979421003028183954340849876889343349461917570585265758292779879612443382094661223868629688200042707270844691652669746158892932809736409737095298340950001621769421153620586665382109094613989611548327354240669184132519512757007254981093668344524397048471934818094624604449773373988838330770523136145438732941143334797438543165775752336621710270915822377464032068728469232852108985409444921809321124486487930408724806849053314139526520629456855795473747575358476972283511501812793380422802670212817139784970012225998810554653251428237478825052657778785368793927457498522696177579090225476087912544819907514547797706231290232591710763827541073423208846154059426900104601486640112187654312352547474250101249757123100364872041531665156254853892992160899310326221650594536437087458108553352767547405983470797860408927670258989293806443096486977560694332737864112865377542553021604172749492283225405695831112098841647432699169028444842567323047807415270047351076557198029570294577753543567512734005693075003265083838305841619063784589972773495217766585957765504426472554848237191758836781051526225358358088789277748595237907821872637400253152964147639127429919969575895853028649653718612314136244620457607148337185252636654431258768970995248281095659026021080509926765731046196968328421484074615984780570180987931676509664165231304328971305790397531180620418857798063448212899521779329687064208255522080469589868979933414560168167599273968706925294429163820352057200854856311831604264683455886022196412938099995850188755027993937219087141546507730249719291144955269680474451336821711924324531919359388940171548477916277346398035650767107950334785638812070876614117234385726733194455763188819957006775132801026264349957497376417761398354056581690673948657021385553256611479620609336408608748171459146052247649082729324750880574256139513726272397501360586071748282212470683066139364706146085398647064393150757609839743770312286176546659662331053950108517706476417551227072156809165553329431560293031613597269812309145634177389965902865208949062557216045907062086942913844089379137374295963554052292623391530606413130181066016704975851947245444565787096661244228850540545565962485955835549387187087300923946205924370716198775233001570126505953683909549878624039543931060156299425682921996888497131464134894979613482781713564233260477436147183982941411704513398762163416935706684598875172222125497466261103807255086396689098630606833653912474776049659508665884169045748684266454819013242386708084962824865832104318558176764376728834090068513397895368574758498799120391267133408944522759218951565221521513210995034594421416723275302674794930981673151130952165371919815472865654074306428058463410103247143994631386598707059345796825771548776913609617625896432764349700097290165305852096708307301794053358104578333610830244298611843534571136911283823456339717994160176767472314373888992006531686937563496121744277458940787530310465867728529475623535764348392753604225632674208195163259116427938603805455999699513961554461844014697101407148463954024922344532254510633733765809445135448693569414212029757972128349668943427916477997747513606249058358503450707131857748379544402269595519909224706304276093172872200537952084972518965405418202748779062870165097464293727548726183051225734575009449910638330815868379213600001507140831536834478164683649845165833307767565674747986179600078846448713594283568697675907646905859231579491964615634524589670604732466229222919603242313292563046864614904204850389349011053864789940022939533502939896060912533331769278702895457989670693979408323156837261055690612997966197684036120609361662865372116697334132273673906327025045789988936807384190410125937259490163493018910140243148597397300870796498462705046658606609196099490218888319125962967167255776690534611187801678001516642909389610888420716453816216896143350630874020982287471388955002515391403940355686079897065056025482424297455593932328107822507135814203658905868206094812373640027840638309762684756889455495042316738386779382324165081868348128988642405975011849699505491957154118612113794202626663285024373315319340303887740190846390141021245352533788814623513616775760166662029934149819441807910693277441094386253293779617376608490062211893655626643737685438398583506211697576726238845802773304387950082191542867758581676503943573340535645474049353760000407734304153990390596517764258425825188571085024897437390229022047625349347227617028661031270199561054743673917385141832846678493768834416329247917102785326991106453761114077846497614209932415909071628345676542090532237215413038941370087035515296382731812030378010585535086071649609719426940845800924935629787168588761719051271539480706866555399730556129307932960967903286228831408464507981957447441135548517932118574334656957087452852010462630814100303434806945856225379262323118766341118531673316479981794275083113274773144229475733341150251350105994659348966186935617259977855260213276488036852267507950527906129714556497318236047495474183620425204743791009467459614605702884606325156728796500359246086131254186261164471439754677171184282962080652319556473113841579627354358662030768694548503742772105971104935700675818113154199675446296450993004810711598384007905678746402272908347539412667175308012003249762174489714964182146196139254335912856534855047671148868125932807767140877570011268767319935489106882751026336953641372403975905287068068357460199846667549183821523383867290583433899992512316113196436769258341373281566941528397464900457948472475551076364250083829856583093848184002718520773691158449262329798623625672893744070239195926315067769312382602386117292998039641528757286372100999636535410052739966684913910721426258881299492739847464709531754498870936464180647593576772105529227015679408963955391773430787449132462444870416831369028757180114507714796162994097965229479302289830423553543716672870126624380880223356408502505143762628036399032926466325857050663164377152141414403943236334735527143506944798189245976603211630402641344134938124345783101236641269103145436347952919441814850100509219362821869731779289255989811604345778187634238843058542531469845431287224411307273392223621081968609257076170627022531472866774091004595966771809002112226492131059123012395524401409130840886670952240754744040925459925604056797840654153629140222818598801383922918605274000318424763402207169830525208785751925647991658129359404722199746001370619603484469142253273859219625911688429219510163347371412428204131078312521537478817458124851251515711943623327432535873015713099131245154022050387805694383360231864093280728559813072595114391476251414115105612422451666687657092553577294780851385205794777472895867018664406578519169576298952468056846022485748320514553729720498212440421480873900856929671959691102430761127807686245000707608312798056852492089919767825191374378449546352484605833088806076405030480931149734439682125575762317567666979468591295875988586067696159719857977012000728202121929479857129972620929856056215932246451176617886656875330774282800029248055374297752918631260493746554486424332439284100056770869620094580423304473840685985581284594443639554676356318496055972931510681902227900580963846865629739092901397278444088927625316060174512175323223596635464271215173272470671248179423156959375257460466704853972465899315384147716110208523133164943987440625575595492428656875492227643908667291615446091692136551103983239653252343306479387415778630192835732790146099143006281737046525093352399015303383321692925906524022989362661934934893087255451983137663385929175331729125843346068911867217068724441133445254947536417841146062945461284275305055817037740131310533989388506599635210452837170380728016248764217615139980501987157563034367072691691867678975938399518183349032929245084416192511702589737574025960331792763101179369976249933839955222449203360488829250561492169915187848488352133813546638697905094082384330430569330512003020647542689729607290696243179532854763978573917858805045393624642972923360848076464315409283868883320325181128137358575731841141336008752312806644474106496980557463055854099894986305231188211555339353873474859210860811883954686833200785043773828719234880089011219860726776993151083387794578137395681992539441415760329355114696919645775667943373956563802927556108812181703343817991804419880954865313823623570906258259265422441759953837318213034541327203372512738785946215001441356937759068798506381108694952679046778428273913924471192363055341510942038825589663447480808724655071017546032580977079018084887371897833974585252309886483168892236623633608092596337194123642118767290238899969256530527774648681422754675066328873159301002584396609569931058707985911686755667921238706151677775599112727618155981372541400252770292161470093449899040582450160719540801798267833896248458257386661235555820094035181615391761210013201514726473398687702988540711314784415165611428846171186637951395390891117034903880904431720414247760568608718732099545013844700195512716586103057440508506674426440432870120488737261054588680417421415997669666072700846154646968914214681270790891443136598927268018230457989292837525679242671529308219938088396371383513829070522149309715482259524692150100729698243243170519664517767537143736377320342569743131576000772623892414210137499372541143404389715727356510887798365848640063570041824399705061714730134749667151955395408259553267233412722946722544841979525059831529410484946189813179232868304615904364221349764413598991624459101117390543676323766540068612262410780850682191754510242369919751298112764223722587626595167233366997308721077654063984612628095308660767727788335809874243336664469650348594316005521524527997712177582985433405222421827352023000788741742986909060593726055574535997694748834330425514369877951498258979555471471679179256280254615994176472649283930178135358520213299646213938747267961063875819776797031840643761444011275485003135062367376011390169375223213941687411065543578255122263191931268346525305653636729089976675841286830649920084957985079983182091346628083695636066037450545884880342215224763872280437772130193642022540721179348301038539067052226148586329240960740410232077724076719941933074379640179602794056153878931849448126630366449121968395995577256888848142673074071943753676277439942891957816084235975599800499221331963429445575054759896726664056493790897484196999979041091077258480118239087748690929363578262805844943646643201591111788583189221740186158230041862774779416384040879702484050243758737396180957657045337736644273442109509795890120072753358191808885561143568919582389718466498906608432882696975472976640012650742095388451292577546310607805794211794872526731870221155240115023353967965646268261265950580652517569134311570831077085316420374735082185412178334105700498348994467090930982704046608564557330433460794737745422028410123383026449552186676993118922319708026240342939724565594509654832402685519200828628871520303354659907431906791218616073582898196966525998456604778518775808429756639898819669457076482982376537801104480821948155437127290215048975989063137371292255583369892469759469512991651977304441097603025933865967503861789285045686127016778503116240976611545659671005309403827243665514698654237796256523241731926775805216645038311385832267341949995349345120337143712480432048939517419279674721267235538144148773888196618786140378730422197912996933145702924928819274683027249464906462708102576284199865378072817247198862915997674760967619969724411318758319150139860728702466983143644338059259473062479337441341251136571463344958718041873895927283651566399974103378822097712516776022035778757024582984959206074049378958007318843966585507402776300209981212330317431954865007573871861678596258692353466612566475556221290368085370562079529863028726770479899129948247315439765882774092477401131025097126719351075534445791937038153896088592146045204382449776929635304864369657968170445773742984098401490015524185920225763799209514562906388633490960139199109586405500369356607585641315319321876321037287715734740655698042542884865790872622874467052541302114516191233926612269837143068069372911966464581836489226336100772377918339997017430543417955533184483409260176851822826983004715103405409442511575392958501699876176370980241379699359739749266799678182207496188278887259380709271558464276169417811881220200302671094255389412279451184215220316608763605717254717653908719286402432743783679493841306018010293776132037809573820743995961575544873893885557371106620024934078660192449829755932583844312687961875624098221969319592960825956785861903223457009436615657174601340583857458547175329588529281825817759522561517478065827212422379321448779760885689147606096962552209757366346677486479865181787246404619777044489131247734973344517305746239542337359222960147328171483828029463240234762743079984339852462367254581093247496881912487727444722339175429198418306569348786768102521573505235340699312163176953368250042299177577283034938626327090455389705101801231412822630217280536539965240071161749309645280824815456831200246564760050822816625645542588403272321490829675724757625647871214354828007358192276642363644215705569427172509411255268460853667192680030317256784839410489318068416465182240942048540852410541217333875786142554221718480415364655788011685119304907227596780431736806065658868895700578140196902710099737077626282154405847658306017805953270109084844656006538579504497347913062844950298475000624593807802461474756795710272554983332986726960357883251490393027965436828475426738514693704368355847677371754658305835016249293745897050037221134917240997088909303788365952398631981876236644550631934490837043384599324575218420827853341996953468112512290998910118508058368480827356199281183796552701523657377371446229296280244640150059410145358044187067324603150240125465454234753087806328592983373800684836106154412538999593333228854663886752328160947785420006181311555492640126870627683085911270632567566497196217597031936106175430494380399397562226085820505775713724700574684184167622487152859545443101197819795282808320649488598214038736767155774993602947662700842189117387653195197540283583964939466643483144060347433139103754353194400032717800847588118269417755837748228980196044698447155555117459966114975618957297589531025256385383269313611124856847933555094203423705036773609747629993223579136836610176320809719185162886512375707520534211544776451787724843527710604160498774134907335081487782003185736113572477287273744594987453278838570107312049403459439616154956361167766689611225297033007579356561918642412039862042351499070203677171670734362913240284877602140382523447498261326523074018672548942152936448612864238942281016971485054083182444884976658516623119241783443840038637599005534528095550906452163712011107451803681156238326947607516621169160279696632354667483401665185867506739715420044678661582075163126210973417270035270089390813785188256788009896927832207269458165177032304235310530784973279833668754721580617285332296853016369569755078213605463806413020171833205086537515537769876291163718353935785176806153654957246192843306977583721064090209213860670755873366278284731146694356112836128641079559004002254226391096015315769678791564593127027040191861755574863458714796214947656827928905520446631270416171257356949630324053218775734208208707352745316336877599327376544289193840357338298059982731531763806362388039036943446245715340183027028876700878867894823447500679379710276539314405617382778779321523857121184099569639200088330647260127461551321017947540976845085131459220252106062585817680360205815576561317097853802123894027473537649740201592660227253215208665718652180787253535336286901109870316077485038505340620733287609911909430046232777894658232541648130822984956203442357546402364028902835744049322385506630401146466094678939311181933556612117212340831579192683816764954080291717396015179907637927910740209454544484620020940494346812081667152503688664841117360723331430178613426704792119994507463339597961582912180485480427787059649318174139867894312835107494956982841566936634012403433014400369205326407188918321370081099323545741325379566548061912035632904341342440721674079655447540473323435578115174074131502634988528157016557725096611137016379029069280234146796417873494952890751552254108819448087621708114157879380263897971591995437007746271250326994748281459258176566744840254790660592706521431510252040343585709371016332664944544208861766545368966176070203858185718643945512771717771126462340210989694435330859791230224696729456049444931874797448190666205901990022773404404706047728240264908678114538893485430998492202341475001496340867000102451568921661514895833260753351284845810421917704132621965694459985561708757260613076031848510256878761145520628764096546633297292384189015486017225838038530256874999727328228659162868042462479908473591292317039978456135788051455667270609003714659004903753967026136449225389317747603027189029302132331861294450438751914341403678317971211857993844185767072285430775832763642839893380857130344402584216425478945551275452726126911475240741718933286365449542099392887805340423732916925563402550277391090990103009461856160325380398722525911627296282840653118147186379977651147003004205539455596619849658743884272497840142651556565891989990461482146200621382086487537906686054784810283472305969486972227445556306386799314270110498027199184723998729601880411544050013217072840518216235341741374985145882067905276374370402673456734419726980909551966936168898349099056013118191121669810763314733966849637019800989313656361555185062255122377836082600961396515335778430176046699524720868833915050187410335831225073138858115341320132750023368696463905258851239041884097980873321521667363966112295621481408196853484869516414820512046011270838609083474411926408190568208549221067938421774161653615323597313042778630927402652268090835786660162239323289672000272357397078335324838002819040365220031129351037551759080295018273443031629583752950503738576601850772459109048104176768424112047192424736335331559053514403989988198828038316150468369041590506743237198881439490990030240735206878626139362142417230532781787915881776277722153041401636719952556819157696240542406864724208535810222516307163089711771203371196209408914205198046260899386239116456455457041602201119470180778257068785260163599007012990353761767155146638357128519510165004725445841030496799579251099536222003593901371467769185589595002725238963765758206079159820725918141285600220341774426702496450546625703295965504401187597944659370559186404989609091874701909475667882765007167965653676963691202996518925155746368063481096067292420425261038013355758512927783312668254145822816733163512972521845022239900331411788575956036510565538571221792912687558750223825193159727789498447242148213801191092265973144008959510769553496881300346540648892630543907558255569692080249277232393576544142840671688772080932082248104776503665430415477754625605348357393842590741880647681972143665827680764068510718477849991582953777986711171695766697217808110207238817277601528527950957344829963831495080189197760612946845449856499347874313338620722524536678587578640943391269052793901069399243717512752333064216609652213903325489775039903398475644597709920058726094783637578873701398964933403889130052172662112664401234863706889612729194212845729398120745400974463238492678986998418032578216697398787535163529793425342885951337963484155201280552448143601303757629729684627153906628606043580031631193433939803339573099952336099285665881951625052558634519821807530768463602571648342689992760592206538095196249229699119943682758736270234509842377102571108996012979287131700312563871231325075274852011646217490324852815025726431287919572468646158313215648871234108776222986538930427428871446626382454867889211068707877775408428012171238878085831245950864622774120168959961998123530398650228838904398249180627509826819313234992264543915341308100466237004980890221896048809692789081359916139959517430264213027631518704865699292986036419085506724686177764551089893138300697646969103140434157679730805317656450112106515079084201070585410771522755545674286990145811882326081080678376861876489292037498590349005040506420431233457294185846778963493309434908671245607034570853240131342624221479924522786967966103824972808232170895592388859214778488374212741930002067933743362767880728810477077119033587641518790511495060175189928575780864102942829302110986853038938459567150649801501668799480737649562384047579012796413756625822706258097659366226727433966511936639420219260351415291643776848261239190898147746596653543396595152191966616115038519128344514775474142407978701620667842297659854065695349802198532410421433483049048371072411757440843535597032577419905666426369192948470795174689331890487275247258551972462984251818492509457688950866483757092725893795589823008161311098175326042954071743096167673298668602690770895605762680440311035369330458123837275462359390561724691378197755065609785033582857072007701141601177337816352245147897785293177666195484377405498856490877343883528444680135791500601138866781466503888278797427855163730188734791811195402648644580204431685125360518084497709015084517301345184102133945561277761345478109076714415077208679412694811002996009045698534282249826076295298121954254880799044667107932322012613410362628199761328638943684960476257578460880248555465296183749864614238115184932252646335063145918908892029363391116259561730050280189336693719614036150283822831295121566372424083647926301224013469534507191378842365672998458037988284705523247430109086171516853569664243048426768372818105951332933032002571347281348303334723703329413757471396010966832040041755756929038311499288609571953066505515809870091192057458137949876697904871019338591642196454761994431828793458752064983000730626576001880582238095101890974748009257809768228864902679754952834096830200133505496834855471483353928759078804516147795650144273739118227073635602368966430847645095812424952133075680901876442136604535424610998986770368942499861456071776330299571203812448830421380199456390473293883095341791283050030274160825094716948352970672884969005552393081042909766299316836578034295514839619828479001034020412294211283009894482309728172371850539251431896243098468366473871914976035366333465012184394265130940003582266194322688798930585043955287733418224223472585608451297141809176214237448333963815947993844471268251391803020662787499781161588870522335991061095640574740106204992016574638662240566006498472528543699474072710731351611293538565548002868068239902969530929644008156691475096089448896431070179429062230650771765879353784634489177574459678666030434820106332049307427965582910342688841457994771583289454422433693166441206170170133045532866478447723388056025224356405876687807093963291215680727857413624117237348206557871982147167301497585558389786326903083957129969080838116073904993132495583849110631154612113325371273152946450251636563392945398091162518329749301443636853096213765052320600290184511915405713838143631698577151398538311297037490823002109492091272565463969918989139231074752779217876070742174468274764239638534505536557016941056861770974829818426722723731062754256850473608793445382032019934769715183206377236991012171582260130652503678745238044352071648011001819945926391583411469491654139404363837535293455883163618467714225292276184322426752898417972018637810833353584252314975820292983913900847239281164942920820730338765292329659419343724647385055217200412366678827741212066421296562905213962113647998213422115810854145170153429184866029008041485189713209393003169413078410441071871063812829663754605769311812236085642098445792403036541552975877598524657171278753011962481821941504815159497188794900452751001657724773506918530244842278337202732627292021359333157790239768279515807898916247814746516502220154435767018389458322479560771089867107237037229017405960851460730851460740033914340542525125606747307452678254474256862752228729150577322375589363115869543128075290506704491466476349469652314744886166752579172516911557938831117073400794560384165637203740088018127689421656055799482955897820372014021106108125446962790274863005676359002633511380933832611441179675141532963278960369480282110940563109319375053885613442720321184856187580919392711689606682774327938095978403984043065918560169760064595648552387896228510920932294879148215791264273880365414470361779937075715272428260925795826929183818797153250852171200347423907925488376662796441827566921911502921527788691629551709039720898293471668668427642690731500997155798038928526243279660903133475043827916350500010298960958497605491464186135208492775393268071047223972874272733012417074121982864331810464433959850120343953480376546236055126596708642524109302397915140619033932446282629272734584964582878912064118259979777352373817489197856644550712653730317677569738497875292232651272157523612069558528323507023977351012566635792187537988140410886684588565964797188270901668934759149505799807326741444554690218882561265996350827580277374403393204757710049904346792781909911008127774773896965959315970731132031601405035832671386311289405178309844604387008753568851758435755918318004105838750693264037763489431782118365171374640868158659745135212799834422516423165433006610159900153397585405054218901693944463378873009602398221934112710232314379308974758605991519088653618831877080746111222783859676560431558998867548669289979329094808333104960672317598184720925533987899703329625142720823418873502456801932646638097834770798793611856041594025024355931366399629335020351680255398255769148150253933104230856660684780403718926810498753922088280819474188623868832649513424744310807526380859029502358039222509153340467235550849074653222270662264218721980475784983735727041764238030544156898027879620966795741375998709140726142816367113038061190269968750115437527285342744109602822925773425852381300925157305692836708472904309599931980790620634023858000517374253574014089307952394462209916926010226542606099886332084523593502322228806238430375577418293056203769940500384950119530235549819893389898317748103075473976927010845015608037521945912127790207761944774023032794914608144294498619515309934617523941383522030521740993184363079135246821484277618518563016638119353971898330977936228930116737807435576820798712932408001857499915012471299980012489234603899972382311115203861091080104742169637929301548893348555032302325017112254199008250227391561229211751670826018597881633705321843860687949124581799446767274713116529224620411013863149457858947689949229408734398915463015985071420933609923446891344389269143530380920190207200466889329745163009319849523324383699634408851841642810090144908347802229072147850068006397824410361843422268351631106114481361299353590824232191646945484991310727597823655050984885776767716530753727995289237656142539058680797087962444463659347867553949571377378318439345087255604475391842472913221228044917539971254051400958004159860291907865237735237598866531443473266231157600962915766914283427430346779106052507331360064613915303731088078527965910468344929162662827536582294687535144367321601143530969745073551668867689425327866157106371267711036417177316576528386390319603188461188725183643121960798249319366852186879370962534362520414540993845066821693723027600374019560700881431398871952869957959908226455506778859711083113272865849837224553379806967320238308986740190443524940555145359143769415882670265888928565453573551120353604992944407166291541517996507632808057200658708836498388699347965092828819135112490268611345950834142966702157111579320223780200500681028522790919477651338523584232500019695431435901775837708121179789126397971326486438241283388071706783828281481263664196803757534255887329982282057741086714690774394876637984575523593462987434918924123121114683491466234498952938687294788308073714655253022803740366329702710561489910489749011102860654160531780491484822452109002814322941464152408456003614453485163974498543873749842593290330398155695150603140114169830229684926755967451746967439090327601901879819136935572681271088481189938853327784540665567303407403304778297229962439131055118334973942102869940337622938335387288168514573587178443770193043501188676693479925436695940393824828288986502450443012392363897518846113513950648416291102209551103561605744150192540147868822129879498873396345714149727938222631504154236308607717223840761399998636748808277285034851539731862738781512262697081686956177710742138793646522345708460619276412852292879958814243590313252132858825766764792941728141323009050795517855823092411289043786062553335136433491966652189163218848251883046956726458853750917037289831462628624452581911607506652066477935871831556480202429330268396042867736015938487420883502771553084824879444203268130878824898643973985592398365243304166303109855160396935566707249229091514852853501184172197877640887664653911409206315575551827975649154926789021115941849061444511407355691259566741619695442834924711500801125190560662586334306489820148180524328151840043256344117325949173289870525274432267009795450616245223484898882170656280059358766133899105431096912258396426531851904418317273181305894373748348806441516615507846408029152970439878625769082524883057560542257283295359676804871950137665535512711359441838018225120630679243322275231933111004652134035579345953494621442000717244123438091486881557928985351477235478869688575484864724177985920757889266841554587606321758190635222108381351257663618334001699100309447789032679798980116868837847640469396044016547463169520177171522135509099888032673706739486596248325625153910812985619218840453817542423382045845898705767262222414936357555744076649413213091068102028060834744463387441508552993627505686895598210560928796230216392434372269496243059160360373062580656488058483933544892100947276696444569724576902399901917857017623712903855655176755723900715544125948901174305035589153292184447321360025531741231872203253738033361540931048214226466272271554900980360693285795093341367203458922810153842615000497061969304401808136705251381425373320234346918825544031324813325857577537169510781453284011956298063275348692398900024069555716672460463664942630315353276098682479428135808030162117644650584181523733591545367029182588525637876700524375917511360434701229524852646734067081006326767332514449754648793744667973333690841014942703770925666463445525871998021371129107839721582443756097649559595528623130512986711612029980335140002921199980835147679622523037855625572955542672497072321359509081951703477630304812796182910994474874270904024163848208407862812610209782504370448265997005188020948567686851382999491742965656235026915811088219992411866716578638918344085746348942510052707371145039772968480924207250408423277759331515043049885189879933115381200375679526757172662203641421012891831818238919132539927320080131443567274123183741246855048587713169388005582692757066393937601551833772744764116590288167141255309524170158807143792208749129575725027302277100547631945849780745110177928445750783815934983871565980861823307371617010463236144327098923835031264213772320200638801349301886456455252796521509972477353961781281356536923548928774861609467765741520199901307430216523179407735162386928548522585651181009463775079957864613969214762963512438519991370128322436603009865418007732153735057355493532117840058075218032258202452173870959983415976892204658620041650664324823439680256379473821485606423318639013905598192683751263477976552126447221787721935850232623271332388990467345409821957214074930515512735561731681965222343530240898764247834599142136328530628172523886342988847895123764356850972844632136919712757062497656382822519902124218117026770619489146280712382356227186494924452905151263542445215003558431325767194514619039374251638699187567912336612850071410663758390589652340768784446282998399053781105815531033292876788923632188588741688428485028506689230455242534802562597170115411733179708298543380944725871890598260637817205895492928295412582179515512587961550860988636912019504328596751911040460804967639408828293270695835103565494282282779412177747272492252694940192595863732298112981293992866090237367017301960884727037994408986987431410325347276541414428164944367995405200639241939499085882983366874170590286817442336255529779779332050823006282383739916394063339304603843837469995137790254990720515871721236671606574716658583132133086528502247899918649837628696167907280353059479539615354413074421134614915571460528771638085890404257402054919498797009222705882019553387188698541463751275187410514089955770812355097884666017995336679039464089566903378994640019458684612500089280731257479032134032384377474213281243350304289951828570549864827059305131454200925283901757732364036420659038738349258019227038323917224348833829880692782052601028732674698730898324034317208516020481129321590535762908762978105086745019200986952089753203469063539756298117209360109636573805801329578166451969825371890458713951348803932328038770579626930209716147500379559768960517945742138282338687810824141969738643215501229054455632041694823389762877696679835964364407771214584938857061391603565191041386726616611041269000589675464755302427796899230223363320959690105530574483867609365028652707651252922400104878355859996037471317983735458706510610823289788089348391966479333498133326459398597015207487913223376470757778849972451949585805274393554571007746855272839321137320358067422478688550846932299004719397966025512437731966820286831350979181351706672375632246286428425131389208843277608428873718338882415952079319471955439236409995570687039335609101885271616197011282993451768868628217726814639657231297068939013477557930794257818814367346248835561658136296706048406214660277572596246966631465448296907567860365315474508262638388167956932409429856703107443379972091407580685019579325538717838829393262642509566324064020120656894630266124700770327346070128889391731137610313887574262782678856703169244614327862356498360196335632961911906073459313694055974215149611639587330910192998700953420957178242465323069636764925234471758321174622989179647326283530251309875291566866319103264953881329689686539081757514475630758866497365258067174850887211830011151291531994512620290304367893840280027283961195848263450902936100735890064181246238383454029819827486245658527741366462273706210345679001096757823916145493730633486514619976559670539952560192798781143478608945126045161560247078727965814516019790517082514726263540965431395143104235265672891676590710771508731204732868859481241051273540142836109829776823575351143393488539042038744832191190399509298200200427827517615131030464696596817137681694918680686307343387477463811991923610539342390114730775061454690935197469024430898421334738159422158796698215800336499443182121017004924709382289734812417571570599230624049798544132523450267621298694147592171002743895193520218752877147634091229925262643072874281267515351495943022972481929525990520567859702840593174470487296886555295813610589663632491527355768358328037890468348645026974541379883958036638873336754824431007432397809977844148163087843934900876800748912083444538262102063087815957337699984701472872118108810228602245185283025467440615565867626560113239147414312669499164563047728107789546421101185566749218817495684822583169333518330113111469032614108084687889752581969532592395389807168873860794614991483850581408670011470405219050912100816485631726492340978240182047762909445780924132761272778399498040778872473506683468780661884937689506355659914823837413125230005665833488087887459837690882039616210480789192909696825269995717971442480540679827230445247545664299709902831159958198659107118253542927695718828289136682826172012871659641387826883967566848670350062105622771117309082523409129184672952513873414314879518465777535545965640469358204572338421515280837091716979822871587410603921579733238978428294658717190237492894217061411166368095816430312457954641796047696698671163231478555188225271353327158748444538051208780743567073076284018287244927486541372364908160569755655012694660107815827937286681698174833207336482462101000830786556775051024994526189444388949784208448789263063204553514801895935869363992383989406173882479880653424287989414095542098517358152545181559439970738101572737587800988570375311678205688648680227781698511359920393342368602194217077987224138866827390528149800178323831085762689678324425672021431519178264182200583238902636081203942205060894511551481804177787789222908703687060876277466961585716766955314484141684824137092430501086410032487039631179140588043820349183597988306638479609351071282213843958039701492171961369913161288013166753663496144913637859401743134107907610654489367132946996807499656656599898091488466429819080721945583417988236937090739108225392393062261489084134436080840720518268412642509040555742360729355835625848737047269860249244364388551330361909208026984560987562417902706948432244862685514671565461492093919143919053551764073888717298482503157050204894947667799790997054370075711167571965392377305545541267881448530485576327316545638850251558441677380956506003653825945417077734125101083185007607216336547648167753020070017812771976572578406885418591366578733402222087362234692717006780045341620081209269449582022533735592055566286320096314591698173753152376990194100950351636437257497342576761831086050566111334371369545508083355108245217077132574431993497828777291862267149766160895241740477517658803877728617426200106240824442503373759348199715188806991850305508603866285414027259359618764176566015716202461535928531519959040481156785633417278408056149844118177357771723398548837597374537277956403125900843426092487698796522060038337247887826165659144266179262555277352543516648237934508331165708835923620660416834536710120934150047437066458988839919762687712176752052071615733567992298735745271607552560634125776368559949323556847665053343983364344017536924019924953363739739238069588133531881971738198790038084585400467150522565657190331026415972869044363318532494272747528309884251085020135129487797283129134955563999678153473087452605987510003370664648106970436756398307572445339691113938555442503402392503327111216467177628706511223433445131106207814930890916948474354110085947658137224037282876038002659784413833389966577536923219054194487586466488333563192207882534286607689755823052213253295038655602260206245019195932581511924053740148306658381660007502088103859719007455989504719959199688624022370098422312719045186444409865275023964554005668838538717065898768804003314276202161660046224028387532287371932183495683870392161759037365870378153471816829742022679213303671025500984591417576415013224976427526131432372238480370427435898205721181497819521695199569245756604238555594095768532296356811714129923010565336886311497867725649796516449182969830568986524683593305067206675889416226568700667467776904271441407407083899922843790353433401508892003241926650362323244669618755782356765949289703039892460971792847279671179635232810965109318634296714118625363578420145586200055264801192874045013944656337876533765793547101280011474219921365866824528528111508213623110223008357783758967490875855732121363449132697912085514570012679352448945673722054455699512285589177061739666595473419768324183929949779893518655661392395637620592554704073179110460079159489342015792115216682284979586830850308247162884845980843861904163768272526909336856855856289209496882871182382284253742220731564764142023883556534059957155098647910496274784647695982079256752752523817212731874461106751727367876922278113521946129553046544568866376613932015496403242677024113702557176966331314147987485587776500618859290011046256117564989663776508123836676848588740990604702514216539905089001224773729368797709008358854031734507314524778875715513689587166568204617292275500312562976359519099804433049284961948713352455291776329482555158528938714379794688992690982202241043608723690545824480760583146506598357051176798758398564322445659653883978109205195875342764775063451351516010462551498221171047952761615343110557963749140776915471353463793820041269080442364863786971977186045627612096907504533679778321149578445188327161016733537091551017261337211531718222584449797521370101138578637571451689356137993254141802348343764463090775371178936271395223758888053546215132871623645973263264907347831592214256522981332110839886681761244811429324667019349279362128113903770615097982189397786635282145306802636601957917864778592406373166404609594748780537183516636479348988987666237696848198444217677224553970128049583725021072927492939387973131406678287295060333215837051954555134559580766793841501015675975686252958121580240638304697765193789280889766309542660801742660015320726344274906735992742310303838750868035067715434816196011945289149779393629275877424026825087250867861042268464943204196583523126269010702154990296033292996301232633600451263041352326273880414261821194625589614621481435039460751686331526957987534688635444691745604868319767389445138829945557036685088140163712621878733925171719912903486247330030616110809517199128037875109656750515309543057816543612001057286232450989223261856167249904987263039871449899563722655849103318538528706932602214398792173480350260607423978357260262841204977689872606697216056186781177627110889378290482470837393327104739460689567266917947409066602057197685014597101862610053422678916740679281215392491794999736869194770543658492213600850826113772343257357748999974966646862817598168052132643323185326257913281797213986194315362492433782331970417923124428482401556647061001793796974614644146374302601552245425068094631293991374275048732866727982586867299443198602209367557048509628330586863924718085383401992271493546037920028110596922731474839317413158279281449660236514881785194857495553825296628928544731043051290037497795847010535612138963585979783563843508376293675486928928620240368560432703016464839699004614336963479730324643973070734682986410289833307847570341882410706035620203149358608059970451408371049339065903226775713383766446520046210773609514222234394009719536777497157521264473808103260290010601755376375128944487831496506015396649209812816691641154116603864162820868512153715153214857156214292641135932342944522061494326052424156385081488253318758287739308308804010244424563423000790436165703277576831077810348748196445416327841211340995222191183834928282446066124036343610419956841667820980995179848021972753544306012334145636345469242788630672534490435699019768229002915027854101953593077640850146595969678938040834130047173843319182696449824562625610966705547581485782742750019193569754957111384142422693098714406272048246690275881379348239911857637969395374639587394396487623780931201349507658703786059593409165316212857681214825804785454406246035103263544494708727689752143458592404626448840760903528766200661741406809885215190209363767226260020161569271514925279292394349516543698663713086930026764095282703301392011194910805801452168381447987191121101651038966639347644294217488530209627588356978458187712555634707328991076917472622496878857472945637780340822160873078379287453928647070833887097388343486242547268549170306104350397121188838883717630414838782139132715420672312090918592868266707905402847838283817741447030470208505487272794536539566016673307771609635441515829175785562910240044638709109708193681693498988612047942631648222702046703171197038018036995918515553202965800967151766641697119292810017264179310686249098174092167807485371050138732721386791335860998406326756264358734331459575843754458348743020246473182893191509531399304476755251362475007699917170769227569865440203971157295216524415243949578961214876911357489778045089471116757087942277589057192612834127539561429795036589370783075806514107777561799367094269009682519329846273724448226075063312376040420606226579946052871499533921839464313010431240308257310813796953297350045498149566912465440617157880219355317620442034091876473974808484269473458788157833944224841062653579407652982580157689712134774576649563414020536102013245160637027241229173708283482479962336172428178042863333628995072144881068134784700334909357851050055791579835819993369938919078855937748793733232958664282100941504401258466606480072304285879473433617844715837557777038860559075036286305241310189045089808273201875605975322005844531062715195151797915627527227043767426412955711690826312326213904859399816132522747866007053965338984171057025681929593018510365322348434549598391963963978694377834965846629747606802490458017300882193813476396868416807698014923192586339775664836658766341449684313675755085276361159748098060977872772548646110742819566443882553894931264585974451896568692713576345320909432329191978867732938460202578969805841117626179966691105227138049315719499674423610607909770844521160791730958013322940770157327942176561174570862409572226257756216973422007609062850978943389826657090737420761844003414883587867935941484469140233748571396535867719164856880187779313152688815798730851047366264786343110906690456958087359936984203292930473105135207914464795177332775083676753956676839616061970889225534382886380619501232395584709386211550324534716284280089565440502618212533568495474892176150960016427452889728008583009585851256754857409382824360839223059868177009284867087089233759573334609572824591006069547367637589907697151935364495153182711319305947038376957156335853646286719763212102734199006281137318510484082239543004279521820891870732618767379751936436517174301912452195515858500009346844946333624182436144932047775745597477555378697297134092758438472268259686440290961557507488828129226047905255290811586498455259865263108658908108333429828462548753847035395222688173374493973009500545365615950159792007238709765504153270035862269469905727293042835902296243908885108051130524544039295860312457874294960461704297433465088677880201834092008850508622553794435228220860393936015979872464486218369432094655014836167282864744529215023900350465025474205095208758331776442854033301324982044377525976301022559985254052064262014797526491538763352572261246322299425401564999072867591799210264837679564818210511981942484419347367550222573837425446264540435003932480789454843882402383118810519830206818112699408969214714890771002437785406859179848810611834587939157897895249692908610781397859074332968181062455107642173112411344549180617143863911787592142599221103830711534341946220753039091246803301590131711585744596259330507047146992128774225750352491247300516809574619340803690098665306427682050899387463066124105414727706527450174926198530936668420097640927264401805120954981682938808937497122584641013675775017614124475130061007819304334146150886394972752217829953090526808006416982226848990916372009352910786707508968220210057679139011958993547936147966490118973633913913313205426499116198180483289628289753922647917821422365197105987408479207378688202883242466848635521204047614912982323229562082971555082608683477031105441077568628021129950041065411357189639346904634901122309263060604042182459498319052990486730744557524997951142718195171955152705835743378103291659341873652263146220674706345842845399651075971947301094972440179034940858777305492854046376112477130066203606181027884362361905686143196371891218566867461723013385075724240221863237231884677638870871514824806589988743869018969188105608326353236325097305927688067015517447979578711864734294486782222327283145659403561910550214577101267118198359195842334626230015403354661004086838478651678746355548071322593010339689728010876004910813171044601248764966384996478816369073199410144642265705203336660454259587955735645758255989913676707596261438020709999021359743576311173178998246598954774727539908930916660076602289354987368069038577932318511124956639002415092781664589295148854065404134914328720165794986897904105228701818926750816980704736356505672608943381197062915816808570686772748517380550919166098979295284041105710359696589689392164011268666912435297697919770216999111917919330915629756075230278179532217657570757805303971553337690980388190758788053402995701759866362356685288568711509682294899423496177918051252176912980769024893098281498162078482723325907549812527479877629758856714150281873264822084592300202778975962066950289880903751469173922414516117373236200592007187904342522395961970093867373581684649255672874462143340123627592027406189067543553090046199181560387938495761334407892221131213360519009775848200591088345069898598900710313543335455985939449539371563738514871995547288709899149717099865557453853836551069022044327356186744969440165285395704884051240254579412034741082475211430180816864505545472865146750167338182485420122101067318391174219106191578149132451894984737554210074640981588148080441529285706966675981910332391394161327461225409630476607799272119063504015283381429860857115375951091902563852339670989019267330297376511293073930408685748144656547127559175287170625602759915606280336694799717492851254483362141732883428500742119480326308474629145253893994277300307292712023255999339377235791621398140017455345157743797480475322110474566604833908669116743717475516498246883918535792850567571648068128200502461922501710472380562791777837266274792976754992434515978036391744608355042366955632376802650451136477327897562884811940760408505567755991943371446602338768076639174677836959554402251435124179369485215755624623152708416544768840759556689327523153588773638905594837698239032837244939940462121537265072717682770519930261263405131011794567726862378396607960453607591241209531721152595832420153806805250232955589881435332100180103925283825522606049915298029921979730474601014363197517581404675923699267951297022734607258891098126627094340273549635776498338235346021638452173530259278145491893499432523197459482054571609811152118358604382822750828699680773295881798166798816122206210473150914650077749709268178173219543328141893516656996726225532614616155825535782109732372144964145480642933488349263623237066585170692721227734919668736486025620823071055594017028797753511001501377534421345095228061797401352597912504442374403414993911378695436717594279880109916044242737983961425357048885938793109457212210896976809962934383898946533879938039256618158927261191949463600570161259681100591611258952170802495102853387577387391736206659991983945787190558172543898319811563549208819017240260906367745022542257215862969858492618265798054044542648065647685507542781690635778537330490341010020654351867056444600725742134400515488322443212751616042045768161748978550753431521309002164921763708234250842664011858870617982739646039000999917005035984844419409722663445544972694315262674979686326591740585922201929913899021636081152865999127990330832979041019675382703602356812949575718885484894548158996585291438561018688318282911420215824256564181053366052274323637660487150746439067098331099699133590016813975078431973610058954801889885392179344211757813015033142709721072890609147458369856591655871557178376678251514002934802779132788176763692001078077462056619397346276643471889051860874673226026310507861595605302904019926611844062947913645387522710237174997978814236598299718228984672615519017800630305843092097332550049400749516444981963667922916742978495469168830542223043464213428675244222559641372465360223325390302373504799079182935783515823486160293041019152665254669244337251553484057476118623338697791688187418040456430685009237857679984252841803900703795219121105287144907740448447305583823126614546808675809266107652737139662505986058842096766123241311026389531044337797464061217352716694018695152095606004213552628736647005411465202229724881492060145209519524456770399537044535503653485278552428092818034649853737871747014352652298058296060927306933675655631006324873175639573317249612108013023375742486479611188230160646021485741857045057602062508705510448331091023977187691725324736549678171827025854350857367142221853651998749544081164385242434699010462148364878544087396317238699172718962961318810331380285352302555336324097432529001565243225736281451441244383626777366683707430940881228999636894964033609601404567411743997422481938680029682705752264460459386053511483734147614889206246189047467069789090057143083997368074249551489836877602067430976025302385160248393155036460992273763059303744137709617381881876567401272618836048343806155481844272351542582118994509016606721029528390109438423157798344064042870350640009811005401320711080959130779602920317634586270271971610758270635470047089862499178536299073124841734343925820225780366262856563681630197696865029545713691461902530239990617644082120258787033928985982321512528065922962250274449113784758074620765749858426735195398669264539438259824075869878634985312874271222289591065300333486285099943609000463597587330888815728549818628905514805605297650643656359790017306505433032521604999561455462921956739894294221776680482732924998137956301150098361091929782046497943628813994000527459715289509030100054171269086260155394417155221992825311474474981873477717912325792856412761423320184582332408738168401676701575055487031012678065977845914128728416998384970709569084567940938240591387442865660758671387961434286169542262748114431185088209621286156937703836971883820023063700713498532968527750054013461746606851863361900918302321160299987280019033678109413672064774223196340721090982647620151299682387635218864611643767359438930772411750695257343179960355133321618900538874997843467438416958807194642042097007347887647096113099686010434015934445935235869172887032789819230440908198699191401880347696667340632614407871650893223740342316729014874671565184161968444189201284380100261111893625781004540879938157021522255220097560232016110258318189273626253984112500771155957412633601726463838408338391081743264107181981000983241338014294509959661491899433665442414798610580433644469452579252297031560727387090773122804920793620595268688387367338260181022153996571200994288560820984131955384932961253054614206700057463297002973036345297243504134660518513701881996961580574846342556909738529757734083752457848077004116251536683670523148712162479419505685270335655036255811845516656251871898413738185082110376938963029453308271969146723933445544216678398808588796325857038619364113533668691823371745503620570385452761404154920548093410520825116469923732960840574633323953299604756439187838495643722882692418256684935711312036970744285798944146626982940440243259206320572796355344792051876443036101761681332994644787692841270547546815497241521589993879677697811344954642387919302619269069114422411720727505990735423451330236685145375692843166401712641598949681625833621178075801577044240340071039138183605355261034345650381555904925216199608790225487990994233691341995561918274311115484933907100130613624901334402947425324732595908672403212756278334909541553031037716359151319952120653042856605389565451960199378687488456466285550453440386486449442316436075465412730419250581233139666068439366350312151419668736085450898224960861536152135185867422179033657408130237353463407097386978621181028877530741344228160851611782763049954423922331086748980058886944241598901722090486189482891116186122984744762602126891286947788889954518037578591847578658179673263761151078170519556196548101019542192422972178827452141236839298899921219950966497915159963931990383064388257226032583988175352979753133822329054471424193123102189976107095163514615701988428768276143620002933888436709372618900225400066092744402902612288263222594251081272178085563674870351150405363598042671542627249119373000672370544791115233580684203719978420661156756575264133241754701291938096108082521095505952594169906901755205108025544351605683390495611020686685027310838914181397731589055033046765910807089076438722439692069253237185857137407988146813617107621592397623590111842319147940342320189183484327386225980183544366740558835878843434406745632492106509708038785993044801736734464967455835506186045488722914290849033980967328636798291623395457706051012461749608514471654615461907885805155958164090759310443514151280902721897394416296202952461167606841258264257193651118507940376209277559960160750430862638544003063119896846885686308249555660945255836944927285733125942873321540463742126298892446053447409375701781381164225129047052323576876115966715458698064807588495517812849777315521945432890630824963283038201178770224803107159407149929479646287778403261223363503521843096238878068016076275033032400057846129001927229528074731121536709910369635680345865582468045415180096308379878570200530599943053379024399721940135599199753770367911763892068510928853534535660536223793027534667971689088093696435534992754009484976866938576457247825720595436885913356878436322958885914827432834461777384041935303678052916192057300765644653984747702110276470448348261304824696716211523768334834584325017618158170074851708925030334616685163105146998036994032265082649351684103595458267507886500401023249093858146363030403390431799321984288913827900366638405342965892869411805422193442476607778427804860619390023267275360916943876367889939792717059629050552944288757089730699565961589308369298903721498598873130208198052252937274686985698597344905910404533118067231268074572792895756301224635836344553639050447585237554237187615473926385081725971346708158470906588378076076954234169975784264822846836142903357035020444827524140694542365117411608923879982138250984626146225973410078851847835469593563127239879771322422252803011466255273916077108566739116290181085988702023805629054379505977888333458504416094015610856963245373411978353194970957817838146997998546212957235706053417944238735984187577496522741666601382622235945860507728374126431540848140543257728770244553667498174585506257885908210145304103830793512012313398238220240402459010908232491281119259790960787362365853740245859143256938521334310573770657242082211585528865671223986262442803461661294045923415017933798657008692250925474656641407814925399627174327947173153351488674309306483952240324476504769363142588211809039201745398991620482072294764065698123610575879239990919018177845097477020110188152252103091781478416286814718410798560787558236030521274235114408079439492361843865383162611243353126248170586849267090366392700903847700590940711759919940268376417849924913303869210713650881499486600369399291375912673510198082032566045905047271326744222624729754819928188460937054909005165030475628049504608726327800139376062699838534615924810999663003870604378155518555809057082604004468642479634386279148978417226841985092138233192019567945601194862143024367423491231656852567185766693035222445978504956414644127170269890778951060560157319001159153366444945688912640167785896516187416026252108436232737684237870537166514396679127550270604592869622215804521639294660385732410599781310015225345997628310835183980464580563822726734367041635004304793627613291937708418892365372462926012236548997706033819654636153944102987865814120045353946081526322864440433875320336989593433144809809287702640335319111203560607137123721673008213168452407190890800839312430109058275366205250714407892400046592957567540982767924057991193144834596517056876810135614786510587168242701730027060674277547544360855967608029267358243870478095638293161230580613772722648590595883965498285372353997483225164681573333093528266518146082325131676879036057929793769564241938695812752681974985635735791432701882036328410601537685168629443895380935212921501316498984309123321630690896560539245414075818582575180680726125397744071852256811803697550537811370773387337254162155783077998136139260045023386230002151008937374440511356016500840233195593712624219950456755602709741548431478809472161063170533058463573348906519199385797581054784171265703298875365928734468959889440483105487611369342780128156154506685642168619083538667242888574463390992326484854028044806416749277777849148764094470905849921200556476345637967246843060334087897834548311337500937551924515426952910820739909096569074842467465608124738352469555852715638237837873809229105999301383972349140978518806314128545656657939971364546512347889814434677746499243839745549434085496821905785278963818138788227119084483682178560650748255496269336375767160500845041211965416447377864741704285085968173737266456286908636782844882796843252204640783476567993922910740340600104446165595352012130489753031674375325514726659179226807789348871526142047478527815890295833770781423805339726522282109906204407162586791301051040754177580204650906370435892416223810863510587141797106376921507923706585072705330049411670249556770485585344642183034999634212718033461765721855167733204373924151870245392790533847136034096921915297875369116167458793156701916598963504716256970398298744942846624043058237078435583645188721516875220895106919650335582848850755877436455291440466679541806420121936012578497709616052436055873973110660887953814704294276219136844641026828633233491316942380677424565587243892817132573715039225384756492202385260634057495498817409376729174618996968849447438651524275719897830014298261710637311990498692791332034645450655536681356804188030998231562843856749783821063023604370825544478727310760904551762920340740054148953214330356436489263966982869543250740446778739602305595028057577044913201487116514013284845059277883420600293486999398653002478363962003931282816554196431802299133964339082686517334134710295459862422981506341151656444023354062306961904085317346156234440780181033320752836539637765261812566820748618332072579455425916876140950445452093640519251980647111131336294915130057887952563463890526477075975505630759746682078699506933658864698844709636934628626432631603188453045840677621893487627957773955511659584758055591582395280627894515430821977708273587855190336548672574727324152789639268011569756601811312195510818027425182688701830180389618109921180153744002327350143685877514046791070145460488573142464014719775224666462607105289341672175785785636779644582837116532596048648271508804280594404787731236383174239526906834594065731387806683810312339023316603054832991693812305626822290368934010025515540824505014373550866004904055800819660402669900188425933575475612489461754006793226037128802038272137109163234987638727295971506986200947090147147290644536294569783641257229454059969961569491501111813000167352111782439735715911699933590110221549287088775621807813448580308090803784905680846251140651584164161184898802157153359622411872964143042583752654688245178871627111852855675185788757710687400641065699819078737785124843388331676884814126413142780235897131300087000675767794042295138975554820687805238933818065774406875754083626164591563831567023964188397025633678976831894705897441619015556852451103991414009509927129208134883930886827158614697856325749085951277057143708132412972416443979828107155858099653440555274506127196970022152852750026260994663235070196068838195951901226193050700694388679288512181466897164982880392810734594594425145277010747540254916659334123724959815980937243187631969395057615965132417466883973065710392645837240554209361932638188562342046798326174009784516587691906299693443355514657971495391544728561880426793101845300569098425794416290843384103428433532725964973455720173366663835480451370644775464060991040231071869446357671164669180601755239422468740024479499174422540969130039548177043432460898151589310558487603367914589312724342842108089055031800524862982788405484828313503010113585973009842828842997863357496580850860576164764862858808695787386760084901091315664532246992972551334457471493248260379039413448940273485594457425872470601169491336610499425951581859141224122118609224390871842226264598294595713238106953126247311569792267591408045916275165887647769095561800526400361629892974786278869935746393289302784772588779140937104208130677501595295149843409040045516916436091192498850805604725778735440045121225430496531246996116361338257485789744105164418849630515678538830100507097929289869842380138863012962031595870368449430322352491139939365393163858627014609668918828116332399102195797196969204636832594237014948003947673387285362996498893568324450873540537743535056534603854821711282110267394023251844475916954867263041823882795389764029081874637667579629571754465336447217119587583298900358344826738992210837789139324675349016026924418292221582676901997883241267535795172502456980077503864620969260120519151472935172454340159787782578948633095232403147098585944816459715895627133616577462176777316463008663487043363428522691330556214498260015460938111888903483407164835238911042307958495011689203436440079726231947645170871740607808939726247817029707528046791796933672001691962619084875385281663738558971614563515171808152347823688835776551044010587300283608210304593247647772813318945215708243356449665190961352080375994732457200118921484350736042151554335353511505936967574133121751406785606005018892183655729980057364314447349331423462170710354049148276581887984956710446898431493336486442082501219693670051669362012022244584070902690289188539815076991604896249084585412067748770020572606600360003832702446882175756575421243768003392041810525563044846052561078538148051806566323889286743358367912917370568982001658853509419994080634339731737391887572723857150206726452389973327405188617014289408521826221588525496390096927700530194916615694712704975386005257277282332044101308269299946316308380373460537870091206603957328263753446671166333815126793409997185985124972795687935717332809889885294553442439851672033776503291554274443264887721833908801545606871464178350272841555445717183503635712835847454111574555428957040813993606346829303983655757980411390280488285528087048760495723343296178018408911091607486062757193738604195400505798586462060402711393542063473135601897503674446238359084157510675716001029712794411831185773271596144844331631983914306355847293130204369394906591294520017820555753204606191958963286060879402715289803376680564748631163779961585544354732605706829422078651876340011686571921509101147262919274733200534397714725016253909335281085498101213048477307375064227340237742738404136781388025861879347027829132928424791829272336845424984048519425023124383448680541743849065766147523837599755837436827188648587604690823004022272305530541355960423066622373404408570028343499328893600522214204868623144814096262598162427254917103600131084413444878272787958879586554627615636950208307572376617162878077813845076335610226315400300149703247844980376207276134019395030611891268642213818207551534645325431944404939484911584337895170629409460158195267486146123817552410310988383689575998696620777190344371541325321997610755674766272585613341864762790172346868596609005178380177197643540542477995827599858740813707404862160150196584296196865300235108316434722715225684926675833958816075742314465697600267290450802141478044266999798181754460314505939286458690822484397176800839036601814822536718951306251367277556047336732610849574799475352625319018299248326414375880464950033718728433098790499803680893265155651458193963227733678302044298227887454288069494298071624407103742606029726511822396803856771495738107959533072467418335245655763594612710039807932253413639664489159692525504663444014337135821644881246409904687287163074679059997537228125978070189536836543648574888644831035675845563456444256543964585547020679321324974526847822710054126868557961907016693914562204696752255468413654384841268914265584105845135044638348889740566635269100296237601047179521529273264080935500504241399172682317437518371206698252191164679109390317058985937891279210843135287349978923746243942956587236492415673014226258839242367302332332756085209960393165689070391298929486883072824650983025008451103480848813462473893235424180022676959276002111060975015754828522239530447902134449505542204271152266378675745642741095246354424117081949591174233756386117264813839431334973368993945525192858448512788518627713778605542911015146750683907356611234508054578084624714320305590177341079301003439284598636287077900137744074170197369832791362678850047916448152010409660825591763840224509288007108192613977983238577747867997916929628678484312086981992708344321702189165553145725450483938962182308739647047916262550382686005430663054055348229825466904033844960345821361870865497056140175791636662586196624553270860317688835588252318167759745547558061988509192208110982446214526926037094891218640093459290193317557152507105158206073349745662213176430687292972174814710277402015125855006072072827657752807638040025218633371894350219814524819056556485173531211595503626184379346080052739416431151701013819395884190318203681373846017005322447710808977433909401438013989700228454097468223262761822220000923587399807261978256800947277068322845924884982934531396402939878411968907344588411382353608130433802770353956057988123995165356338163629008133976720829250879569462785170071147086142288384865805215593930042281142716429409244206010531251545152845688482680385023770514390120249964130853888360546892416262838329124215503402995876838983718271233097180345122673497705484103613990394113665945201912310315279381292586441039103989936532865831657468034996514131499845770963950002987876173624186695006791243263105627032147555717600603384534055337838817560941475709611340136645498272773613354278454612251066683815383469414691917815553367145480458707855333024642595096969149913979801856026485556744561854762057979999525740659452823975840558941991229599804031501046377577122795101216805224759775291566915962943246113082957559045771262545476622900836264154550337918516762181438429594080158802743644758386169938483215729312928421578638309216759643654267239420575094950807684245791472285679685692775892231956647090070052910672328409059881490452470276241219306230441324449373327049935981028345657803341186138419014009323983051579450186450465236765577232893720759049463959695398115738356303988996304279133296397873937918454993649074242840305122969651781840181008202726251255269598338200201732051626378655203168283562695005237842315442453660252635816785569199733994053377611601936542157147928731741761984518796524537570290329910462203555855980512475764232198841731828281674744821677575199272966037384877239864969879821282281216306316645460088073497989088745702395632343584703626010687091038348669366696167639706807151020724274881841995504156963095650191658185732910504727058708890699778111331140953950996238747055691651168475711091623008132316710459448999791416324672791918879480341368085320907258619205084862831383141755529295553359069728282392923456600085422496232243993061144896990156087591195532431941673621783415534968864918085335439377691771399885070440351782227214098577120483079833078600698789633078109115743710576612129247562689471478971583027475694823115198057149716305975770121796850513128610473408656178067011375118510117969270769436026082511412473317656872143685277906651400080108776549606897106726106967175996084903691835076644173376659355214046083326423358591910239274183634710260410882068031350094763594212742454403336523913372221393700274914231372395068444073592462894832154876033015869210144927808270706189613779082330587606066014420229999040579785455831431784105413607063116378461011013372029175822827268642955904865189166841838664652494511493849085978259770122551290364477243951591483173084951800106309650343509243630679055027252127077097600827700952087529190110006990441313539008514641163793769265414575205907556226903898936477498281989187329406118783320836925104094559546782652175911615886119765838200005727188158614917160453725457394345265893867757701711237565986852695983178760828654565716204778832471205400775265882961679924499263777024651043353187335912650444663698352687445100244941790884161108894024122383427678752507550399498726797839014912326379651668542278139770138196032824575262484861853591126638605613073994015174454697576497569304185424876828609536343463541936657585075663716977753289795834390912299860055429595692350309006552596106689188771154393960991964084021774961684836725505634469420888430015921389997858562004268262580275086103107617087273351169844582758962838987848568536866274928480728215796520114854666787860781401779618363512027862852045798514760342608493993822987536400545682148741868633234198130429549917416099743271744548199466518283262878362304295802908217642511718774160780299064430577468415408496593517485652051759252477967737225877442715883909071511492752225700519516477621338834220995156823016458971267205590413855452176477685492062701573298782399345736587949597990847657051207023521317854186813702775881062566426314043685313155925442496007240616522028384434220232729907459067492454996316302676030017696544306304289537515635262269110399067115015900933601949325766344030018675066039165804117002370244609118128531220299897368842314840612038597119062748801523078986225354032657862343407428395876926893959759729734723153162246236849971787094096776859532796825959208006036988208425619137684422422231309154677467588272833957610832848352287272596425874795625902947295639279575385827706416874042815517983823206436790114288371262305728617648519163484014929254993635098412914618245093814607007379330185176621159604129333547392167652500824237395056106993326103956200895372444492615751744189578100962691038025550546037844951242792282191826493618935884515901026709237027589920224136377733375099216629832453114501071698210895924854448183543908330026719788199319524798816495566653091883319488345761537805676272851266974874431162592271134397686410317366356382198968432036329365558902025450289223503591026822464050572236380622701350054429420598709328769459925532175938746011470086558931749498362404921507647746725195211616896923105758847113524329618183881161464907898283091444573244578184097527852758161386836712160674583009146702500071328217859367993744141906753185919726148864893083193181292896071545500891246000945866379458555511230937626530643193399280901255961080156441044393640162169967695430650093348820038676994289984373045138325125169137820544511579862456660067292867705615380264670842829031861437506731285970537292804777424349382445702844955239728702181144924852025466268119718209523576566790131052350557492435729091223472422859164927174883515098241930595790363709530065970889791703108533750057351251199911159195577264294475529889260735508067894419670926865794789351634341433877261727556440231258065882678000948387854943513252782007035914545847935753402817916777821836066445860908202959172578947128597886747164078004638266272123437664785514133303588703323708681682464960971649078934679762026819866966511815787555536056573057927743055831450600979237329372321938847065165960574103701756442912105842364216735372517101687750727967633395583261247754870643131885475603324781116462486219741957073944079619749192741972683688436602833843687505294803660621477004817343642645739388127010280173106210702470444616765112048914001608306921299518001223052784158874451736073432892922015318342626295730073914814190461102895525480982437511787723494148696247114141395681456377491580768588854388799954316688495478455787618087101864675473462499849248035613687830603455689908640764373487912950666926498462048216154213464939116587750911262108172168234994812639575916968966524273487410921529998951073966418527696786737743605583948101695970638075146221400929579488333079911500421310962746011621821057537334102628004737852931905145691320043757298754839263839050213514767884032955409613534422099244209730608211143898885658409466013379245667498248937491785014178613056116726034451382517538516029709992224226159899784392917106110093246521397583724526814694561530447730186601703680100354425422777985344032844956476929367536330947769827526276805617177086477114025435733732113747231507771446442388989484417278682268981265241767299508512462298725092791724699920951138814704193109436752560334696910444727781638213079885352757400389434286263726571436300461985466334492953843406527945441686902657659864182871994452942716428887606538017419138885173276738872948781263847053441736347086412342563701942881008967642535891087301196147629129157233579307815407237373297278504887155979989263010616678105636001580867633474935741100660421643885400749353289261443365874279714614680575527904072627281748589087299656841781934767146167866717105761619983450403624133710720632990418007790932024267309608112252577049308015367795365535061541439039344080257032436577718030963977389539762502507387792546451894217557092764742695948548513019385975002156399897407732099204467830405023806161296039730562553744027433940764719130918187474328017537980399387270190932369853437521610778333568595331343444647253092856853283980845121049424593556210844199603265897303588500649051458745521530463682568209257097911049937477964436019833854013629573226919493096554483340172888119282020344603848801436205732856344082913122288595615138831610475395105234980284161806122924922167992900985620870672010354828703959200712932349288903353666392599911579741275447938844619781298849299901352199163718479469505231442217610171952592304576218889424530543278529285499301969956702957382930115466399770515570546183046962860421461789942194753610062819747602572682341607477050726063629857517570606002387488595388841143416995868793594246352332473589823045922427571073264508320486303824892412187710506482888921111931744418228856135188652321801798727771404144618587645951727309524029230337078179134359457557421597874532423921598426877959290135562534413663772170379085506013825731687865909876879275265451347883473765186225455961808918884654882129056363247486769471741816478432571934427249270090665224586034241129826570469051985062565281304204862674811334512289203105656927385109500666374850167061871138619500635813612543785183951364541992297497477539833472557844333369877728904251799882830695979238276334622715422810220216049618986364171126967292043806505529596651476155772264510617803000723539192468945418266926180589646800537911517873674727017955473143177946910262866403607832214097504785938834578713036605946390441654648599142082537071073399991243331919247790860248978900753107382940103731687176054075726594784980495106832009908489009976906655841201474280824694520801594968483567639676053344138972815654069286893767776802206910150747708666160607445704842631988555394444079102053579963687143132731679286264393906870663836918841001405020954166601792604948141384345823525141353732731242617897465687797818884804588458586968597818114636637033929972299021071894938945894630547711078185076764942706200989068183139402392812727067642539967890404821424545427875747637766284569988921645899292699331550158571266654508220117074773387969498339055111891193635223139850818682056761080286150043742221618198446276941243591585508281964046014746995971680287381119567632443122864922345623921408512101522039264579443992107437770578148926527921614982424327266070020149617153178352371489416063263696637719162257761840347414691957350033835379182375542458138271411285020474422090297723552390380421363531537886262034673399180572635117944820751785561831793845111671973756132733030190720538874580464197778376552381925908953931834822926653767543874814173425282820457856235780368598866872978655098839682836961407534834374805911013267022427665006531340635940887620904151189053362786364355697419559497084471652083101129907613850777490421701543725222543627512723202421328781258322536277440904294216752083336075099917552537402345576834952387365761587814833994642635746806559980588668858238718542356790249764702199303746481555517246271675700530112834597795833699035025788086344270975020223936103557454128713304810348626056101912773324997785725484973234539363509708668476089890335011982733754079520183857475155483039527116957759899779134258281363899379924750896202657850151831982363779346839768185533975643358752434807597415704907222073050313616646526084610675557655516540509436452861967899605674691934280001012071110329167574686779590151938533308810902221046010488592632279320408659180656176256006071159392929980737464315529609068689683841416992836101642952914490479554344125885365691861845917663542216982634330845770821788649271127689160283690994258238163475575732129636610409918898870573555371787738604716764402564975388356437257271170029916509132498956471023891227689261280019815527283484411568327065033637761120214425535326081308440294657471810462750231775961427348947133290283457780664431796238282982936161374417080051265548228699010848031901523891941664123450072760975599948826862307192945890765151721726415143393333284199665388587669860613144873247679270722074512996056259132966077999951692952694073695548450809482629931059209086543648835030064232853415518193602829725290838133554039368861323901760680441930116797430199554268257142376144957598801470453594900754821673498502400554491041037095364515085800202469856321609008823207900304954335434091067489249676058295546130540019073277934023667887406097400269276985632534484481343419871235781343147647496422478151681336596134672873902656758863545459735323003467289806126521288445189257907760471326102494651728283332218432678921752770875592467257319908538868565129108990298621178278707313971137766477971058470244691141718249091906299962313486007343757429926470388454890966772857346038680246637891248989113536972005824527127955893791451668304080747856649817430097872383128427967679374972069340740754256936682877742700557168313635278233995580685388519870934179354591575428675345680433016597622012153168220216159079887819844981631991073876343700842140684028119877131695650082102221632103418681380767119829855289887715419067374537911298613930757146075103117052678398796168403913831355284479089730081851487211667541726276123194302012318382663975447347836574686866459963514929416726012163700232320979681988489677324481308215311974056338866386899708062922551708465679826773205867391926476109215529848295349124191205457803267388300438960918778357112715132710009513173754023140693056477344396137504139411918584310399664804360391895504713029815383616549003388329014292818993745935872111090626832858302407314705359191886199813425018805212119154699201512067154331445056640853037345744602809132444177683279963015249834292175562952216091268469316620646598157305444766518949653910402783021833503613843076084861554237647271108603206912788731741290867311784976256192686840180389395380114010942057472047955716666427101157928493816929929056925577890810644843580203625385206855227035910857866032062547432942640321962502721010842410665155409203516200698686765179922300526947678029427502691669742314087387542007598105945912276674991098220820029751656211285287024194707994481606467248766770744199519393718346394287697461792289614421751914878701000838593480003973205209244778618294027847630444792296844334137270860628608038531727337718445104548046144566026979687416378177745218529846503923166859773286470621925217596423666514952858132348390924867676977332497438119726057364771661975139544308634569485572425774207636101930186923999650224946950448162428845015958561673317183099874869472039276315230131690642874185430212801506186764765239328104590028525709616745897233850180706289027717231727876427621204690140297816191264812735519987153581687047082744632422571190210873885091838154328453089451986823504399436243150105669441100672387950134548340366725113062256002939975390045143530286311492462751838229118155611595829428905957092849458354436574359723759715978562788404807727665175990497332773020134428132816983824005027646446785244082914439243430221554953228158525767563543509869516648079557617787277153445834326536135324795204917834943106144789473759010244331023281886047778293551748319962669143022970483217658240461230490800692353117818917767587172710248657350238010038542236745568109979698697298602364256026845943492502905594856376334759788521959651853257290017668147888713874626341717737621263257329386158164427090585879798922033021552025747716661108135040564475845437467634441655173999574305499325363824041384506053316609531408257621198131936089587776523348224101004603361261396006912799509958514386967455625617721047702909308243883660161597569846299910386126390987459172681034312097303464353594475798695952037420133249963016099160053953826531905988151158429181275105116365288201271629809903663581574192205524126652058796895395722197974931524442435643849899026433025769271854193763998813285699488494383330941547842690961837201885537488298477650725622005785489102264008120723293182173677281298362916293549806298692493574081823723802902099479382565855214778848328400544389227946753715199191221392617891813196525915327160194178643565341732440841035122980100083501791033005380904501750995692737433199076053544682737698084409450326143915496887969524757233460240836821789299250768507353817937774725591977070287387703503399090299477193247793476283278887721152898189013961664821738886404125209743283701609277440308115246480448403161004287623128690103846572992417797594691776086522724188571386309147223561513637850349368284167481859989814657018250897280251705879058117608241672571822006818746631980087980847150034829153278633480305360746035030464881394810218835695869446511060711998267855602454240595237806698536331222509944525770780583390223428729281208315554347348595597307266586401551903180734745804357090351774745245004219059030182060591995010090708363560251051513699150267997403918356321254545319658757147082919755647310206779511035681999951883159385605848925964833871665598954669255168405085527418980186404846750234435694164197579539487786317009895118874421951327903329221792404116477413875974300922406555517338030564937962362399389371435904220801838745492358177876601651763462010200426588557781823878210433825719268810901696855363820350619163751955814906034214295466377593824511466786512525050954979163952177702755247333102575343531204268761540551737256285393410832866400911825962879543741163991991930074784506045474954240338596655690045991890396885677270763658824185271625669138440464396936498952455534745318799994076821384678018038675265252603489811854396592162433253578535886172734991152074030578297724110174256630377040851036662609712256812787826664716443203639601379346866586403574907655104222156905739678737791371300554349277488816298858220961401244124614963123379726041759810513546935723332829102875454609523895934416545224733255804545164006201266948237008794189115765152909601770747083777547793116625882480207348923966928934297075804646631964910301248630158153890237127610950929678199585689326797142086918565364039170118956037507059269920883584450289484662636251989567067625656206341979893178659136927741365106288551851060572064366020202304214968734244241879350704767649764980300027333875621762961288825265988147016515344867486910443751677585338353810505486917955894913216750960202272060473059637921434812662369159440225991624729771087827464125546950596909068926541146199281507622690868398740779731122034177631407634817688589135212956644311350438746714042559144587782376213488747773836748255457566797152416981086859961706132358107470424436071330809858087362534196113279549484328491796604906700277491648198881261747982877348662109646191374831402220379347449157639926887818311964580872109776725785044574188791673953654679931433169113068968403627629753033725343856610575204741286288647101634894347007285867967055136503422430710033317695667426440974191319411370278918792105265371452573984811981342596144773964388519606189670475333158677174215303967800724983049089235035297124570495527190130793219810276757012422747184074319891819905293708923656327521586704728661751920657283168615425219667632533819503399188846907891663734277866518505786964374756746345062682237852603330778079862626624488497493467652315028573043686751441918171910204067881848486426460970761085837800472584474548240633824853140682213052251244779953954833684823019342636140674228746597688745036163981759423800581073678649499576793771325139437848236637648291774247091239210047311132446834347716527387257173348510145910666865941661049942896801426600252154155617327594021222010762735191788364154699503156448365007493102026939174330110561601862904242092495800771884157497893836367155665206840136632925480561956608355798480025514283914409506030464327528224633899782228197561689652680357358497381379879263833181573360333532578503383334745390482508856531383298046276349137292215786921758192268604581169158369914243758857221060383829499087803689928770796968005541614289747586180301593336028695665091368076713727100739376929033188973128270502538588014971680876289267498172517218564579719937289092708025868960749618249761826238794355640807985844722844549353168854014966198158600235960197794634271670547032362785051540638652914189840039435652424189754116582849782485772504572221692709320145319268835483336307711753596829244395607611565950663383113761813296984397679098325160150401243496687818808795903278832828363703499548220327509694827419279225322077879523249396889700182441588263210195191622172865017319542651920187344817782909452709081625339485656818282351383341232879250211112581452312563496161115115260666963548392809028273375532062382218345858221076712591168481886767930039259478945724612073025849350780840356898073170491791952983122017155873792114278957994113058641908626587222998844172983524584793646707589317275156642442595432296102915565404079774091843745203167390219697674031645268317884391037339583832749086386720077779219597445357814196366726611763180045449910352489712219328630174522650479604252702554546920717686259545735746939903530431044552541270897669143781310744179061319876449650864008870088376285305589861118506301760515553284653834405715043820164193338603615725190718238108716808710527313621522718749412861248159550483995642256008724213043262489559277190656570234314171510218565957300481712901251576014391457534124330706066462991629491944558056303335664392227094286796427266499900457356670456634684777843680497921160873685119521261067223635722944983297130076015977431229792777759560136653458740037681417582378942894919930447817726113416099238694112181466001268237194309680664553243010939257302791096224510026638165218214768052663595200827107570520642106316020778310707658270908188747969615863827318834380186062339324771551580925370473112593477324085606231130679451178711430490239410152936285270065716892459580153704663261437478660073017111121279851772657901053642122735057499727520000831065634776831358089450235928102860414601552057405429749208291425613369690759149189528718910430672399449505154096807865047378196533277145196319889363751284653532152265977794788112742409839414190002870797814048384466099864706406067981163114807860980396143121452711940963522401839987796358249093557525227728233672547405783633702519548204209304712292700999365102049071937692967310341650740514534324404427272191774894663060152063404080636163607014197396813851985387880428563520645069600891397154405934609994269867051015202035361879280489273422523388913203593802457210823596358703347413121139693095918299898553568357970339498497575203149471167421462491781510637876919751685705406117673132446368874369852406448348741268818330808352101708649969574903820741463100196914483183297009798741986270895095107305594118745567824944083341970448767117656668943582478379841980501732238509633983737775798941881498472463015917516084183968029929554004679127149096812949244875914356310331231789013867558459322234900767251462378047886263915006383682876461250072675555147271764925710657794711926719356466870483089127002400910766157578463591804311826464411011692723601813984573404327750903753487835065854687862924586361137881222426591170489348326696818209253773295282158834422077268840315296165897868285791981615408731671533318009800467213117076070975687163391918727501390578248392167290316793826239647652807874488398051739756805680854049907823784640458401149107335249575174629331231026599291437950147701580735159967562600302277187406840675228820714985001851367270020962428749514143496946860178300586724319415206936637089668698008406128592166605213382266404738523554985137212599946244966827294612324072829279440329218410993699086441311031590822051222388032964332502613227505322872206705915535160502580695335904839256944472498626153565528763621511244913636618844290489549986952206482299836356140127167455005215100868631697425989159746034977599029611919017940234423189513280566859821732161777470027034186773227449726399794941141548847843818183976803622967678314395964253335139600203475218426837954581996796376633942574799768219748211924609951234114860456275924510401029249478649433737190492198387925393552884496652839360086318210201457585736321267368570711009040056848397774925591609537618143544650511918973549779768335063504716043680677358292664699032205550728315701877007858972332703201332293916411053724561205882236463102103625523684292338031619495734558128830989545090141027788693877101875725428797104066170203120386530623626733447248512112743911559236715425047915701107484904620769588454371603961556450837663969530105252040970834504687259924916684819965091142227688403046499378916882386915226147346544670552061349580346888862849827766544654659776990076545985012046518444334438070644315342216786584335755301411096573093114909823022511190986324433316545574884470382472238354767179833522318501424908905086069659921292597229721170417716538180643451633111513073721149710021931042505004734350794357786590561311434866003681454041653783426120004929259395618874666758650600974029502899385492704479102727287636806914620293684902290182461834065001195933474371445496528977938091289128353379727909753461327026724216230719312297597391517400318745377623067256520920276219304939130424270848184140393306886608000096692725646572961373098677147306344751840314878910930546924675577541022734544359376490904923076430563309566319008153590821685617794085008769935210674350745434364997916768846094457924847144174307038971738795892782906052557068373484585017005314241801693224836905737930115540391925669369902782335671548802814585343162080237230873421274388294246812319399672706100193069302102813690034438923583971306923509090482316575073088894821443762122534097588466125731696417376895012125923598279348364943871319351930586376036136500251145899054884916126480843576326746097878049912483837341360291694185063887844389489601512264833990166535728610013288371535565940113575182848189942682498618711821080472926090333505645609472304583538392300987155603898905712418878208191956820794943663936261436444905991654310359211953423104662539155705417455931188170540711811058473982438580224568539342381610028530872380166570530684544241567579821010422481001596506948183111495667788944346466685242278207228030729724955747364162239619152366121118529558772736118341275011464732416345813734995582332006738421455600697539638996231269388164521564782048423785159516332879073663334365829964658144115008800509898792080005620492147049041455815764302370040204207564709197545529227315468071394707701123350173351275613096748270116594296305158915622475898103041445200005653161078636040416603076332204744784819143077312124435849442611201106695384164227056362739205365427600887191184881568199258329921874101024767288934576605792899529089587583265750102692966178758946896485939986593262657225356450016394681581569109501872262357180311356934610134958628181791508608192025713653547728562461956901400768530182867181988903637301209439915944798857082769150503670247037517316190372215893315463630201591215193322747197035458214593216092176676438888653869553734055092609154149174940904383387533928364457692451187595558808410236915794757541017396788309564834581416844697391983070146876387996357383587620775268791399656976775716929634171922474943918628819000461894813821425550297602679170732991212117892806018100438750102026661954341828516518118880889636373684902397787634076629379853700281046942079357071482691909461177808321734568817244624379426538585919752693770253242602194733498078536810651985852111501463691787487998422377378883264323752867780998563767952309037400269982201487275423890493084634993419718234277620418750552507863806867563841527084454840125487607612810435886797106802258130497274377769419167045194191772488528426034266885192706410551507810414767592430935811792803223260736803995319442140451343679875818154573433209477301459250995042428963195704586775868341455579645291072071480154241003414703532463521177108892971157077036070575775210650149195783198121388086702081282326243309885478507113861921130758773259898573639883793777508320039637339889230122693969718423476230858839280862771674669085378053303186670663513206367153732676571640689147739750885769750390821846456304486919729917150269956130559889968035170416637021744437230180046175258467036822057002242751849470446918913814822079384310299998332801402226589141969742605527305735036928108331797329665104237711919781537673169942327319993794330823440825365866122313204793191212757293278168525870059423839328697378886736144781266224833272913481295224072370453530895032626591961273609854975121516820668021381781914844947905143137246715976232092687074353804333281364742364170820692808599004743000319051545026750815077128955153113948041692703606070867940095091092231626651456770488453155641818256294628874290062546721602796109407675123527803699725374486435567489301666937701857504307747652552744145406603484899678325499377113508665344443485634713046548100409877842567419137473852757900152659482444553604641090515347655884881261445372889193329067204851896277123378674872179496016187055735143205307257294201350751925252050276239614817885336946491732212176419220918029775772966509967246405674541648416969002489482037767823351391204916594941526890559267339852734431200395373571046038768833162880060192127638517542186663042810469019413786487842031788601346405735525345530290622174197626302861227606039976055587036068483548305353046778095372608959980411675451245286253565550603143689497076142424726726381502329039364990772772206012251397004045433667897709632748276157230646120983991583814935203534434879335511416198889216324202933480199046205887906384478622505284715981846303270598214014660550100256426863238838119324889326994069541712307482228567658426387623173282744269933270134093195531738355730215374403129359725649385903049278238066361379170508746649261452008216214785727549849766029797799400790933266956522267129157445845508771820934275614682587077309975268214326922114959850488336430593534817376398766077978505638373369211067677992836881570961957657688259476293815417436555050709048238325891269484032060024585058990451795316078184880680775804353700991067602608237957501267218312917994030988751539113482900206777734559136487312319218065352839076378236730755411561747551669303377162685681850462766225976077587026046586120845177862358807642624880348425093212497512615288564300710409092389921662848773458430027736824684592038217981988026182943680253056121440003005012071926735155178236906200554447875599419685170480702847235604718499328248634004264310252720061955626722915110719441494648996483856816272890821204910491841178154002277013466818323395613684629145710692917843470035429854810282122116413305185944857283523606340151131194502988868087964506484423089659686460515706210253017282919690847648548904225847885493071475433027248637642629343039977456937277308021147499405249696289047666509683404383954988547043965717560052163400752750601033360181717891571992257981246484794308610446290618611101194645926926892217682322160806908941817951329845119329325097842717289923139910365143421154170594373231208239741340618856274860447678392236235351052451593010016118990240152196456010062081194677369834989051019874058514625689397174968865801033213521685632548850949008276359105874037884149176264234152449062407970273239482016354322148175341586112133892629011172990810211479290264010363113628900120168153149392146829557238845039261624908400951298302489861437689692760686971809992828543144353905740849468597915103284102376007175879555911967268403075215436513541482228639802863113407201876656977347379613828457918476497389244537734943523586883325810971690637866507450685894302055300026794151093765814648788082578561880612642932167822967034363853206001541818285260161097451008142289780742141330303197074489634865325094081439826905941022135392794816632774626877335508601673943985839375121203153576069033745959437040720520812662079551291002582824412372511625951620442630173782138771435521267991050586895477397029339536988183193566582208852104669933286197432004187702955391438803194856000234653962294639377499038303981916292045349888247186635428073954726408286822945917598284836473240299844749291306972143411784229866835033434470625885587130676412034883738256367807345538906989493335133551777854903077009659623696300272040071244609330690246179413191703941110512745158708089084844070744372060216329160587398543904246228670456161468699131512945135761457701227695225983580820139170831981645138166636711951219083216413135658304102237346669897993649339522697552609966038673437952630269430878636365405235663192700527796277476426698895117248838360714675459327139181501737267041561583223550165042666670082398015246316812974855499374109781018644985560172593015970457282320215290393523950423004631944266781761086443969616418758071877891457923502194644257210003810827216299919074125576643569497970570624068229845278220435574229628557268077795915879754587594176150024070191013438567633262135212229228721242058531271814787867478624449530338660768573523551027765973445933814741721498866347674615826690938824588711919451096891205314429701828731427902243832639757791396191685495441995964368609412370131448076503452666851470466535198981126743528886992595803752493913898720791924429525672845592334777683076671380946574898249606488987890265256216420627207799450596791898696001322218903443927448641413887470546925027725144466317816306874665785296187616572224732645229415428354264914157291771296654791142687837918457478481190261424935961041081878064603894019983955882782290604363430338725025915324921309013955113961840018242322411490004820549127859525494452700509651803486718879030621028606215271145154694336315022168928298202118236556248393603808283881078932377079544365242538900101470086150251835619694285059118524295837242169703527501702863928269766286925724287599920358545120989938990484124626880305681089036651258360460427746429290199660569316081133054080399062167007281445919579796269974469901106116022364652097641947325327758291344544942005428651383232831298205266196409619715428464321706664529011187095213740563200950441499118616447407459468142322143854181444315621149436603707265374376819388899119340266822786186345856902597186113058266974748553494403090126617350205312524761610376848411335361524577552706845180305918985324154387976009356694010490964729004813546063306909697343041558956596972114481272737788779221828095828763133510377872756371308887890837149151894986984998799642667027106266332761402208734576890240768932937759372687509636702806510997571765779011129659648394248912901877420031906104870432129175935954503354048371745592725603694488381581962149524857912652290651399073369229550839931558417751296841786590830272030895096173051417133147207893622120043649008997026667308467993670665024039979728279594570376410164846761320682754386153820712569509450725725054671789416193549898784331529130511897640609368637507011274863422084347978641123261037589518881072383406313678602225500335199951592798678930482975164358764414139887187448877842732038447107160470932753772074167710444954898794837478992271017625389866610135458546951548152586693548299765025775568220489685632437872764596975247996369247606145340867630877578550275395391792067351072727348945877742961908451227918843884868059826061936465056159347151023989875335727160525970982422293612865824529132527716475341943541676163515211119257667819766463953544615900183742529124471055414219163301131522286281142054226590144854536513384491555015574157897409504658291409964074094275877710408000094512409354551081561707816863945741911995766804729089907254860867516008491765182726953337415388508016440864752674956128500901115885009455755281855618047270644013105385448429478279047122010309783349202277777916004138807742026429106917994244668516931784668951885931700068613448276827164919388322106583136414747765082295130374932704753141441853918468924582160380436590442444362917028485317866329906115714697404244894630059302555707380959482414813886221367061612766827784969363386171133201123387658328061397937086311097360540230301505224822826443091312954667046993314029836428964468852529451856322795484787163459494753410355476542453125097125737770282981945756250601524137545238066025505417896263859633161184320239940313259178093568499541120686586972476355947376567059285505003048856007562676381848514653049207628955103364152328538853054283772731178895980564389429916314932534226496543178578880684069730990700915449318064512358714922219508448927459434830999056882411097760519353908854746889426801461543580007175671767245747163922208575830578628233084384178851226485174447456169359891790147879287929043725992380739300857201519187964508245496627280530411195998022017754669866251937761416191140226988567212292317590420723190319048590634564933332194020292625508286741730024374363978653667111025709034342305981468544414548896448975632968347780327345473612645059726890722486121021573909721119607042723709637595444999740626726984216022876267708247801819972588870193976795982372879204023828595914250911079193074999428021481452979282650335158087105047458588630631742821847655884319447295732476654302106623062750388122780685304423902966469851014652484133389980345363997417997456298846917361934936353435059425394748679730153268081433736891145273518825470628822661172900504986248710512633095037513146650941891377791739241892238107170776358816146886024639887518091881691223170190944856023620588193381168247282766891128690131036668649739537862274559844651792008793354853676930042028475267191301566008953627088076639093901912041206950206547316277306752023119765028604835621204543960390566210632892284461238153187074740463027855861843230827433992083616390046707799776768692715302153513179948813490658340185019603377906188170199712553787516997025164669191865092960180703279395432431323791220630168563687848360417790753954496829368924786879834569649946462038794630019161154392882880021216766812007187563817630177720096581665196489127284023412405432851549825790958138150661708415428600873354788576915008494737532777520496930164959634394225127752358722733652396919601452777840700586387502079460617568834659400322516554034323358127728529009544727850133353091942270107613626897656027992565261929031408135514552369578969572999815335192225617493988040615593732261088813022740097908301005310445070531353309216911200549761632411437683307230401251086555991242062272255802528800376205903098594286939613393958660455869650941120185165214532786619304688065517934545817698714681466706107106404558723133719841222938370579371393336888131448854284143146928387566876453148447261185707074257882674153628085241922874547681167396364079581253203215763322108504674744471516635418329197565059690982760520971299713844803489294394576763901552947055210118338213557859478684953104293266556404615408395182600820019083334764644718019350256122690032546214951550454414872304028778679486219352714912043430983738882892732824670237363884717558030402172766571685128995790078557304319956652846310894063784968234489222031816022321135681671685589286459043302701872294887616501021551010702529749555414216823476110445220930716738285177089603052772482522315075608949695841690550915152540994060933630613457895615053722503703018837300200744843542057433327063006022454251310196609317918603492108576822257980599449492583425774315673778273186356596863868874389931961327782016397086511333268728109256919217863306989436585488244973400889439444868411129214881391300421517220536939121615193917972557461271636946383383020734693911614147336968353071468774394727535135504038006503701022871678002860566840598496264333154810352740315617834642693544517692545028745500570505981714051206187645444092322223465788193958105025126147704634699790132368720777428809398406231602797192569435069670640154446530566296521821646343887065258167513036663335492290393422337408228171260453800069721205487881889622116666476189398855744914750491036165997781595598827495873996507955748787754347303166468465118925504674433126546469187810371132391104247221933736886805845691617496591053766427858891466523418863262887826719608989494222650054187621581926962330009249822127378286285553527371420684651470506776988790715970375113461991617182624820596935272425628101747424561765000319577271264175594855061896503338605444246104184903639280705346849248180908811555808021749593725306425888033990776001262181830775145263686581532931959797715164879350384301102818968174102380474658729115232345782752804898777104913083049698225693918472079938888072989746291900965460331627572414379748634090881338140689407218763236460981433378539654409439623389980384260577654365477680886860691340333320801670446232552691196144298244805273292167283291907809936295556488168441505679350341804874267012466087944343780912425123008287561966458026166416451073542720637471921963279271291709368923196765956152968843796474593642541276882414582223902464601169271904637591221411546515472639238123525664328326146478944738024048999532031371192206839141206158806805487949275574016275831392004441384968416825187955865356317222226340114303506772295864675750036823509545065684055105933065010681831813703986880802464953314468475891699169294492895024183950752202837261745353266678686443799390385569521392221598482094060706162873756867892762459216107242923415345251075483587810068138964882785381678302686104629225333872968238437129764408546546228052777058541100192045103081913101285093429947229953313347669376384657840625438669070646405908087914893898154698289991674244802845772216791758257586673184403525454094117370347683533154886856666581522255625943969125114765558281458478605841513773800517769352147885536623353161990394335979808330359065835980934607346727408439114005625960429728706816637153455267372664269030403848970393742605069497013570332124917257222242219143764629516575262276343988699917894632407125327151256451834666618878454673332869638148703743576318790676166455243760190010442964875458854064731291705263130122912081879731136676982765967963544365700180615528443168360648518307410451842843119992473422472823919712911516940234136744493703854596666422601082133902652957088467678565853741588986722640415747663692242000406479450369245276886029766158907525718413167003425556498676896665228690474170355212433881414403786675372090688759692607966999424261438646681959517789945278693484676693940693523504669953800934023940054767868340982486066730045677107996167683239837131633322114987037395296440853612474641767795073404449853308526052193630552051991714468257767976020034273004441268256715520739848939948349576795109523585107813961857989507810780656845362052802338230577642384991794004250649434336511724768086512075851095778602291876656155544766653881564109047924035282533646022548633695215448643136404445854966653310922804200615600553996017395349868232584149371920579518972201127635804581736503358616687866685674136626520572107816578991987546185257185043991318746293714260554118595494275275056636156356545605745896028130608661642734752626883250840234676350585013698162026100053162102613293195556208839929944094322911600433061673272982182427308797910818573432138705574932909261125810775314783473014168832859523289870327639339164132479291520710633670583202814436309555606463004632481369383838566216604174803260920517060701550305435784812739700964770669702341774262055150299518647876064220645860524840113935912724757487110495647226568204329827191631118726484219356477320005654526407029003747236769334512433403675993290113515998424184955423806326410172797477358866031575060908244790423142565556614569947118216974438123400447111711883794171838172872268727666094973438620239344906661752383834869530125045327765825494627531342047627068237239805640616415873579849298459629414650563113191405588399889797043110242706640913070131008272155143357443073302751406777305462116054396071426629553018433144651248544652767772323695814784487440949837088379844837591048881469112813796554342952147262084694506216686906802515214949830161940798884064419189245925886619765734980035903986982607413342492216290376467172564578667412241325991453148887643397187776567586731831126953156429842478499590744767307858817048541330394376798713882612677429452368226203199051823592548044841757468361666390190343127336990045146431202075464791949884206418976695863568335554768902911103664186365643658598925930641487688641521128625142283370056376945588191283012638318368543486264768364494752899348231740198693471688004171896981734292504643436430832830587271451702715562325436419619870535371506324922123195088964711468912809060566810144989140237830066777888603891296651824565214390300472536728369017050294775522903759773964800423081004524726112836137672053246666747232380343624696609102270316771933798183559145972097662641819001951227039434907569067030966024508996141062262015165673247593670328799622874729759687085501579176694073181066837704867272160444489106691551291075598833070006493240284558998349470998272921361665038572694646565740962334450486735045159002332212735983539835699830767070819839177009281507107469108607613089785703060465808518479024385077744180156996327467754649550822029355853047562921535957722807221906749088790180094241301362469131721181641698245636511401980881952945126654183532722647187629503902010697691419920973798444699460971226742014639516296108587427133200529947128091994626560236718619803239040562969341361019184989129757383061586268536397719800468422724259785660651388555670553407631360816900630841240081195652210525060306895139277798923032726065184635947932113988596280438494232745874292127455859839067355459882152182760787462424148235123033948301735121306228690987636429177674619401614932731124078010037948658298831499897851082480075095813463572284053292331842371120428632698108049414855665834995928274246584184110564865247191084472777252507121328954823679753206876965943850532958455380064920832881147107246825544572807889148593132397848362432874638321077323435154294519317069809747918590543074787315553429814143825213245953402291222682567466442441338812162460145314993364113579793589870443016644340165666366728994652729692479563934508860701145647599988574153409443757520077321169041729190098249473796108942728832262928988208402575387024458825151352848918291576308131131063708979631247223889389274548598626126682116653454771213271012178828722861358357647634839928134912569449965303065645199776049094043337230585479318789346102418007012107006842684879009051146074445518546621218295610355280985934999418055784877354751783741187506566949993739401498240848889169518253167099400941080305865575847370562629116022272501106262103607805052030082154069892217041662505324949433882992117612752961746174982619070496020579899658324985152834362032991046847686873461396023732171044915676627482372767324959831437474555722348071787536042659760658513450726717859612757504195101103422326206411100737735254193869343235219992411839618623021645041442701448437587323920842917247983779064184415940331713047848601520680807875263128744147597570039157300072592392819331447931106065028859645434067706475198417977004025762186933200299278235313265971543545688990498644279528878257189339963510414417480151104329632933846317395972942612406541262482667673209286160606736434533544289237470463244233270415338071381223582274025942976483038162463430570521831282140535824039595071288953538629282402896399816061962093064668186839225579940540950197511928920483082230182207720892149192325643415236535889780852099417906278889062207459547549494252135990807283939562989034856736273837076940121997010949016626091733957217321382411310011197549733798816496963371223824810958821090771013159995206162666122344250333595584166660828401123841098016706792262849574867758583673901306900151256885984867533931059495801527340708790396682335182593743502005022440269990684976792332171371742212510837876498354035736032351078877486053353479476884695146353207432698072674433812084636847506593506563202389455142689627368709768699979359885493088494887864862001755773047654346200568248435748465246736673141199963505924652209971694128636781226406198388829504141580985808147306651911992134214149402574011823915850763846627652540569464106338397270376965641770541779919009274070125777242943408574737170773344627808829058553774119522461720613933027027336073935128675181377285688528830176891616004656717557567416399035253722165289636906321440259711409254117430006800449252022397229861974093169073031269973288760786705304857074293835258093039053142875572570856113918484453743632966567957607331576117390255237489489782936165464621834050562459145362489629098395846874758449173542482669047105827647799514381338652314166730172094172409785202903847262648863063308593214810664530851315346364293675658192067618661183393120532466543889137207968397421813540536015585426755546381469358659724163728451686717291108907343985084945466126238828527840246179878737113890991485752705251887048885924490174834624746057440571983109512439864265686276635022283608678226060440143934716983255161734309123971381272346469173102899080894439832022986243239574501613385505004559437299044080674468834966344805557865125499139015494927291545577640936194991743101548665607767104163338165790651298126761120927595546066847202148065368969920272380963507240816110818317541547298092679062489467087122006506323243751770919711847262871856510474062457710029022912191518436621752093629760239115380573559035578690887612144293244250315670936635504388268150937132091558817922375400630932402786243374606917872435845848428147391742103583361304712152113405719475644881482528164107863120753454681255931776490914326487943380115142144724144037251121670749508706993882141621913911825260346868494596307702435080096110055750961377147899847157752184825265066133910716588648957240072961348694440318317067748400200081463478687057167420080898238210316304104065589201615945368212425899558737959192784227888954931531684850593108228114273651092893984090112850620874985262645757649154646028828973696001172341960536571359312642995639998848662545384018628917320511237824991909186224038021848970223110249939562633918230524647840105142829790053295031939335815629424074356185761421668081953592118088799083302081799728480004333868382867779233955301451408264891041841023597787934664307238731656079359986221559501349247054833195001437071480646019144005030064857972571469208641102510578809013983013772682147070102639524739836627686604982372289190859873722244096655271250624643028681795740664842361853047643992679893437556241867478433754578865646523022423375608581684221320061284903761089192315987602565570591303802370128228509030558323835742204760429513933394409017287205518256929463491556162114394636735243372401405495409984814355271750768684427648264028491385680216214516290552498634083956042033002100261702501654708294740090138986816444425455981522460115761820328776333082691675193869459392546567504450230138866944733335100489220895338974919296875381532137578564753942039823453743218096287115924125822532492697188707834808116014188472213638131593086672127334899078042201126828411763430913412880141605736475649014261257027017414982961042075428865489503197960811123030659240073566381674043329769168547745670436940868341259530481128532136296899258733081448446795271972117727995427476106767380813783036429697905339537128849025848284501139291267681844833505952975662141258933099506337119181958128837379575817526273983114849833533532218439927075012098530241636039271827542660078583610980559172886287705501621963592440933975850852886597059039595097951410677224208487312054655090381090919471932966126349316602176307305896385353583466667943389009888410399316328894393821544145528486433236506672858425271408309047387067495486280678559127151862733236550088309258142414294060736463435855238638716343840003632046427024348888781190333299739906169974225007267144591477413373651231024261138786719429322807508391328842829912260648174494796103965127064846192407343541800521126952135724208316055017588594335280944025932984503358643208982116752031150702343213148734004725729758231937551302789089488637910514376620629255859884755451124321623057540940086311793337845330980436504650094785758364289024975945248986700991006869355371929299718141382345811526649197308350195903852815166046994577352666623008085213087060974869698870533403678011971236238328309295302467547558936202421664200424307976907143044295404786014589126301656687311832412821554799688185426722812587883086747746018106984585329199696120551774787559490303035266379833360414712141141336806574066635495707631936770210642134934373124465162913077616217245075917366569804298691334166610701478080174950821355299988914228392744654784710796781840479243817475654689426455085269151885779375347958943832480157659215005798358201854701750999214140461194494957502540374177942990265828081564275008823756650788567784094623489134525527378634633244286114436262213278441790941230373259527958680634024812735611201355863400836328852574826683007139145851782600960122653172088419150326469832587763422876906701178159712761612528585658410856038910552418682385652079244672632605822166826247839385624030252316472178793258594382494925517539133273698036623455102211419283483823218409514901745527449363696248588172338221641738709947842935487939615063929067323217446635246330100552139616098171606107790759905848044067819031454168464186554004805203294078515100538918233442333032111118012920850056789568084923044673467020085912197486603924357397603586774176480384911562706887248250536447965211694870195143563353384111287971000124318551146363977094132703937062458001976933217231992883668375323122721879589090283538150691065017188358711495596823995392467061034117460827552479483849602850751832145018356467223654671859875574384243692882679241509490583863547104081594110110533378935224311760312773518826505109359866893625282495494827989405580117679008299326095894332095048541170143340005549470711654612544571378869520476324094176790398539941920532723789804650881060416579843745629401329017731153921
 

5BLD

Member
Joined
Apr 14, 2011
Messages
3,179
Location
England
WCA
2011LAUA01
YouTube
Visit Channel
Got me toom-2 program to work. It did 3^2^20 in 59 minutes. Here it is:
788476810003426547135889756681970758108634492343901916650652456335468779647991318341838702766503160497945239367614156592432453907986276210422161395665617411845766088149877340758343132204414762728363172469671383717228257049475104766361175533117890229656674516078546113309561749859854452844096685859110093731597429046914231515849378888659119432573232122513441231566808558659147698121973873565723819199644094029982973436558904655084612940165613188641726623346364641089499782165404850784382264881210423199554707401425571584548296706527550552438834187654685155487715991880710228053092114833209423367286793408494332049018696681236308991630174396208098919093091685549340380909561151363295484782041440782764422959471234077788287664871283454442014172954883614230664956320514727947845301781071875647140206544583442148907778613739359760663244621134450219425749515831838119029905410426457452163925818927054354740290913533113490669295299532776275157390449380640846084870327428504859222784509984474161036429416992224407481365593245918117963633579931681794031707888861104793655057516683452389564111857542862100524113842945620642631002620643167614559468301197065363817831035406859556399856052584017989668499260345928016899386937798609317872097523823248317232353227498185976154846788297335345922124041106682289304899021721912512569707058336525217922720165759434635949572762159053178389425365762302186465884305504647575281127615964460738298181232287137846213055819669850237102965512151945234504675712705474066091365087456378378293209200381105091675173704906559157388089958479261088114570132216090043502448041128438354739965112590155185091817497798841374721629625382527465332309653705971588028401036655279147381527231097815487702360581297200924217752069266052057208911843560309821612695768213842474202215533450059614402603936653527362194964228858325589723818974203026436384562740776444720108453781626447086575225923715024646583351637043922343607735357150318798686882690321231213580458185546570323290816157624651307023238149413635144451873783850317976519301649087446682420347240354768568221653435679090763031763707226189651599458807680295022667312902453566281344804847394334938165790124894710535598248080336356305005572916065469590117492783304812778845800463772136408155039576085327375593213040494860811555869985547508195943036483287853667971884590659662578178487343892915835401676390864063165392235974890144409779198501203083348960273157943898027659788457046160307827028931736580273232509427654358003408671547648702730764014216719625865403517541477882425331439873735480004806473288870626143299186756643046360717248376532645490041598215519742994072475147825726156395447078582289997949834955711512008471782591818851658463582987851498492796190474168417644597549490429790657120922483777214332711048787133911763354236659162694861068566504307902326503109815364394514657456265099554532860995367654987255225497382882850426366599198688622114605449013211769093031532614069152025305156681396219105517217578902784492336688139997280338410533072245085810774329178249378375737844983920604089377930478627511853189603577301463325934143662853294224158205444284776761417009946489555671697053531812242191678834996846749166459841921521065370700377936143514108257834507650237575829017717887761137434718355528140302538460806867115226929423716730916580886127105409911901920314269689458485161001403544204822353458622473409187530760436131653734353322138845137776438103125811423726505205893417684634375422587298325888295384502360105322120102749921906152246566566673119754290127581594082400668590581807727896735092318506338996896018405300577080152655175491398062358923622044480374177200446467215320040955200208104465138559345101178984741415432631197699779559067202681675733535080683610280517127461008817222165086846981031419267170505917496912648159331413985580776687202655598597523753856945431872970622668434058453085126635074831421692731111649607489874228223407081891786121234443452035409679544838289008627582079219969171422427820575590251980712620525509159591252974100472832710789653603388243051027555293865385763217293377193133596079984564922485714835360833245420982343026389059177507104480408944902912625405127614806781535639884281861321971639181166511338959527283666079574312038441819620567567338851305514750704549022883636694464927286801000394602510630917494671641822847447464923828120009721067861397006299422242422513941610385900623580019722920711998996685824806940397445464396631524342431620099732128806647969677283039348472074138278309247982779334431848528330008951949400532979822833537491513028122752426626621236907417096702966176223114781640676453736900527847778836153730723144411455031757909554264170809742952405026270604339403247746077791809112992800982277947516038994994275891125790042318360288535238752138275474456221391911130372567106337161324523878916193439169572471154944987545004133513335111046832919018220796201034324920787507295574485159048706819513286041975850801182216681567865737828537180152991345915350732566117912959226630362150774417482535555654275032490719787788028693996567512356257557125711198324022323440673544445581081393749577273785058745556490535217316071624194400277362055372311320083686168419440214396168329619759438211250750028089175245539945142387616606056788897389412560645802636465086402608069610050062797296774725256494267079235764482599606819351934221753238758473931940752676800228508912922104011236604457246987233558764600786637022690792536908948780850899924324643489835536312406010195651675382654701046511771023173685946182728027100716156859158272397021253205273275692480244257284734846261916179448302594824993046545066036698736237813949490202730885809389798183036040528180981104572715460205025154433404186586768415944908011850887452559271659125354468409195549100943398984264873091493797734415277589544885058784281820926528966794524774423893425201892795404169633888627592254840242845888668941587857200855038976431027986837651624459996946987463923576719364112570405063612163732764186037394483362603295727873865598531663282520324187504742989606665676907446716806870129204018283820483182318762397246709832098769155650300395427854443421644082919562620652685845489987030371477920717310484972284746953898297191430832330725676105538060795382727154890592706079723039527552187726883932326338386870393309304935044385223838174433742300001893582019672396439086041619048671539330079015273992596182817414623108171996820029628688453855012886141843349029634310940222764638094759141206821404280611389300117445799972333508947633201049868939152950920099740719893344384928975003802177316363056661057229248776690874193484612018104077375942041143530430992897600039785631660870161500233122159535643131141819119896535785069265602477516821660209140277639149291433620993566112836951897990437575765533548089986945046090624856890227299270712172493062172776681247855107127185632875097535523604539722525170167242630477558420549077089044483297847254191757189398005823232529078384447535266550064620268180328494615939980591361913646454626065627964574254600751790971293072042490793456178785930667582684575008789374884147191965923712351241297999600363674942551809769919857163129634805347699591370461460322721065765471917690253126102481189886235810627950594951247986742152231988783676540274521058975659865589874810548212747688106962913285963776982469658378596623790438791895466077346313589336199196360318622985382784802033184174441850474571155946572663043777508218207810075700436076861024973253212800725310727048574354502057124904553336263712211158339337827070679256448087412342672208397977544944852743267590122340997030783662177237731265224262644187504552200964515288186937700269805104499802943974366832638961176012341924889669321437410529736311541478527090216311996914874186330994822135157766482381168232241494401945311331416440251887516199323816512301118786301667519496674620668966644587659986417198839180290432783758244051462031824774412432157291181064800788176030758379943979936155962684002017465288886053130101159416880912332756107949689774725417020042685919726531941871960614821434934007220467718760598517833462013904811576802600134005494991737286609068953315394258085619099515748664771286710451008773939956030050681206880039984860106054164068468947491471670928114643075535764936554577756772808177313738510963846856055568836853172842378633168484405542924394537276698439677753523924175950162454742168368824690484599671527342164926382362708291915758316234439903877608247998362646422525976299076752517111741451215902855643006655592207364285210077592971962212077672239734358749934792454177741512851399300922438581316776538182494066022903450319707415534411824150700672232241193909451685272294259093541768463109629791583744641849779813721041073749419791877783792392483127658545366430184998210429046014217623880050051526295883045790870596515971445973185891358256971976036620476808925959417633232703953189806388709669960665506863040059062497117826173421308031612648628494778645346026306158388142099149861347268328271160819064405464353173858474939133336376367926129532426376960702689344812683741190511526399397115808236190446219333386261164166975997711715168039084268791558413343871488454327395058358903524412740483927203368765046062616195666408524106073099151670817141083061583798807846801746290298766118367516372462639031334984513323926940740914721843276441950252655532723595221181062208808722820736082525955996384853775795271111935815020640774731955851248910484332322352906861563799826626736686226144221179928223851856892624464181013427859948854554635741681337390018817424707081055865837426517835171509986932144724325390185053249114374527341786824547276579878681258252242024600542998080943481416926243098859932091770505714558486319750840227255552491878916529188864129417230594764959310902310068376188559342936470815151877931369147113757511726651692927261150946930672471474004478608236603075185639925539496669796883664184245136073801613481288248289025676811422786812399332716929144887827809962005465602453995048407442103959228428691880050713190170860461380973213057032778095145093008399678603631108936410768542248107363507780049971820083882622056003411163557756277595590670794309812428516556132476167419169253200387209591140630189542516161066105411198628096399176549566143477848083865911853249959225567013874675298100702785291200943353450834377786091970263169268508899572590796875336291701586941287311600491308562722596704304718781403114264770947278362039546791037091142078389137818449626219413147162034620188340837026794418632045290631840857267434900940255808339441176025672184404818669249137622401103676737515978266827733930250434259274670656573184530313278575642549127194011445823084782744725216919664455589805714419120794447086600966681631618350412987197387384161974958916875915195504519385649542499502787232137893135502971072222743927483433023532366186280398428067687914589177574333639499993023829379664739754531666461279431644572710086275448405841105320278994820071162440192383878602760243533814294577132489163114702353927078383477990098383832492174927883580768440930644366885675795333762723976587275942951572280639688121134625447310448472782107730751566236392685109144629923140944306033047381574708655429524917839280040085074758567508442504786539467019043971583898940153903731592860657251863408726632798716869417438881797010276046468369418294468741377627895217516773183283069576915622470689408028249534957821472088410401652841536290399088779189305899783476974487137452941641541105920361928150847708924636673188275631667627341636991268272785208102806792367959638294031501961098174928218126456009840334604076318355922281998100728775026818805752686986328082850188129264613296419103034316620852320662108831273291330483773210713843280730608813009228714673272676260399180426397570728308802587926266852395891697229560524685121592508311143267347688422812463475676555824626086170021999766896983003773558019692365349257146078064122884893422253390196244431093600741693811228271387196302756710226252222633326704007449510822336249751552528204596313001133498959132860785642314234663163525258578423910794310973078707724536158776585424871845404940033978679341091248029094963868435132009937676368707871961951632906175503468871833812431899328805765364917396017007027738708777393962162988340494012344944076502692598962780334723364704080265744472803597131466326461922504563008705482330937986418451565047736411319550392089269888168397602272676804680912344420476695482635932441748701252038437867611250173120083307682568791654749185389692857347561889763877038213311863918765420782552380789141413450788113738125821513510153576647090282594360641483835792084424366427515578166455406396006235006335012346755093696044508292062390939478718780597900844397700368446617381613946407418940282249473566378765912095899776355205856786769476565308387433984945577772279556693133069123408341690377549396998166437276321512744996982662939104768281435145852251335959143335802921998756638082026545254667562616636485970056790031600182355049448487588404710625505868681960984356988024147277197960725291093380540703436278611721875888405184567859643041982697739179407113940728279170992682261461899851042565734071316555734661767674303134330867439746516801321079089441633062693155925238946864897051634298498280388699538930724823219868772924727503300104962385227763224527649209598190600701617473858156629478276319343269819375984604346859284828418807188439012448907519449829627288776231778891368307010377140259278217361975540147471656601782030270223246198139103181015000631171285911347564450328372101933761111761312318898943160684199841087033336957735145732154429094401513756339463142162080896392644254355368244257364349245411314622636709973547249156137909460439513010311713571486375268953946509689482090157550685277375703177404609847031473468313955774260751952717137992764093969063968150149739212362955888865755972737814187390800286978894413140382919322794013281494583077361629674395399729499185029218718322454344872340339980910135886599971872820731932875467501531114072438395542663520946465318410706586541892419263539670254509613886979084254674357969708651474068509532212859087168525272469827733045721192246385116266677696273327150435661202792635031809125765739728345616984996077325640875858696846740165573532391290871066583027275655091224810997602305316152050329307449066767874001229847815351788831006380443306088610859139385852091337652161566558777830336211314091662871871702989630084005479563769822527449425821053375220834407234139603510063544325704948081546774092748184785281996415974497506798823164405504178997021673644900694774609528164926763333141285100707796972097655341099844863974924960523424259153099299943216471422257554140254673478867536794944404773584067920368301992768149023123569926001700261177299328883513797360006800148650473948585710436998629331545351342644836808609431742163977883099394264152182884288873563043976372923336099461076302007836373464817293749335498348625549033089273027547601475680117755771582127923599197976883616923901747301535657639251773714726449544173007540154127243868612503778219207077467906621728132650263952231000151987831467595261160525887707264576549198748297555010803991729467580520089907298297754179695513195152091861267947272710393277452545518214559973344516084265248444862016957883985802313551199563396349290513541973082554971325374666691524400849581254597617305928294803134294184263109177913485898563059197561027661853163575382472127474708040213319048111640620473909624639774159779953099287242123784475738988407809788238425613132032976970530955443343561797780025296009991637727556450254210076257317618452987376568867361509675070170579380181812332248299031077074805906976451884450829498909223323931085042962132119991385364499702433304812839594233549119386574002899547150868400250597408154540625530810624987819649600097776497439145521276987753164210901224988328624273527317875466107059017925507482143634820530217686212092004009643965498197138289517573268224134136147636250866753234688008746904149525830279847622074444477900624279550736055866265459823242417641537214517940638570573518732723702488741061559509923753871826149946552500730388085211896592947544960044919013041992950811288737678813870066675947114665572680470067923645527905403295674181341538595589032431095093435589587712331265430260029399548214222663708795819957248304691557598067040706745562303552759167441749402423747814090809563310300297262343064455856297903848988521080180421399404672420731767596351146502090840342023638888417155662344683390686319561365572535453476568661928761426089895411043686449712616663551637514842361298485367405276798669760582857374114135753421750810432493074053562525112880402573427058669872009672876150306447518130537998829926393550940526620237874068644366196607488223044059027691419753966895102310779024099655224665465481651818353771468643774787714696143994795994052473124057718145376827087872758566411724669240315239956452994065328588501172881101846518106894597988067810766614439185610372124502740754997195634019545394709281893121801303348326896733498464376285264382152478157404872367086941538384197320735442855244809564678534472504653095992162240566802578636312327654675391011159706864501812028792536322445560173875052523946692782810328693492619435492173521160099312493478333468313598953711344023984619459901430069700040006685110835878922358319623799205637373039494624391149832828898803997376741242348104496613158613930582489644242689925540690750994218461853708202224378794169849603708265544526878118679650732984626759016088972538127138259549827751696800403803595661882329486292957382057922940989347920079290116041240441997470176515845728127587552336602871145630661422310479437616865807286094484394540479145745377261099906732912963126429304417841917731463051363270683033536383459524548485407462963426327482715019786889284307886397782503611228297384072543095126958163856571361260134319480175323398215071972582937115770758968193490666803128294354701424279435626590879523971879935018682486882453510881926804772139582699997981463619246275568986370916292425172018242383005938374705800563940562980359524687427280817338421567515426229609177453303565100257407802296044716968388896629567020212267371644103329125183628314945283910044506665390563844747711771135295561100618873540341102764116454554512990358718018446064480801052338642838228458998002486986066463605091594453223451832044071783745065379492478162762634259450016841795644259001655714386227259759559822260419970376352163418117815300983704951800939409172800566377450749176003168152896424018387990259126937871301046274805620978588775845959939718013233094086943193931493563336537661508613718625420870502283544349178110229301069939422616145905299490490806416624241179898590112430957452805722930247759970746037215827331727966246941627614734471150460179266279571266565308712654735788418601879799159064845599765861993328381483522389111467420444389288355441016122700539325258689626572286770226050959871890295317885478757364647726908585529721650843338884140633488127216771599154185330713798524654777440087695655495535789482278025750257243039007464087728712267802029547326492340853410379619118082112195343443439297689758172345431520379151493191185639212593245099322255303841519155815519355232286071777253539686447485200655212932698218161427180862784194700783639903133921462031953192319477093591297103630985825550038250928547825811140978726842704533980679953342007535752138105083168220326394881505999257483357146623954036709195336785254689962741175642078539165799392099187654207367223145463284752180831146407263613320109733401077314526867500325729913521577790295426321156266113594760946816551757503995743328834912063256504527178248177886270094181343763689689671677204953121804945418081977072631025351662635408940239291282499271401458845373829073753651904204510825891092367962702860223253637459394755067925348691612213142464015645235991331871388000409744678857033465016940483181887975464991685168759036301957423209706296824540236299280644134362661906606682291507570434473917755750810317254583232658822577677320801717836121686227374401643919848810414815441701140544488922439015555547289223629591152135126077023487721640250407692183556225224751342124463654374233686761339327502635018530549674497270156010043176387801087084937107882376115899780450254064995039954235387995417776789555732421393448866797713133188359498658220242742887730324015271793276720209783701023784172820016197877414748736061561453218868687191240421187699593496593030693073234106060467933603708783816039705179704800254176981046418341920694700500394977272921599916895862402897600824702649886211518948257745324532184169931690081449113285967407282554971844571068994378503547717374096184225910095139978382823256130013191434542402096724644494612923584066185280273994041744928592963725753906206607696119169108296017076956859896063088234454074672790374752855034796285425679416870353385353365192303546499293737859666857569306008151738920072684681960526131902130874452493960756091399907669894568976635932529430786135357746392623593101378669977755300692574510007708371006462680150098074231100377312562001295048722539020052565294151068685919933072073275540523829263597141323673195012808452903397137983775976212142455656900876151128897020262123157457028078271810502698496701161465460623327839101619868342874707452909439243811688304157375951983302691072131168286485871988265525405724174153644925959450777826252036176840045539915881235223182442331094395405496698915760749098374033776918221787443927583383261858742918672116521663791930550881781006490033287435961632845197293850318183434570237920915045057667430672110825159714589236238748326425882467094273774843658991295215947886567244336096224820316080619696499300901035425677028106084371213641531700076172673839858605840453927926937819602587175193000277772823374659799217319215940752178488532312818302014276250812607175929546839104559728464286219913992063918974631972381712867991606717987546008773479671862720589595948719847119553618966641869417637756022443165793804942791519483594398959251201021001533045367143473595610746324744972414238987885876484684179295605585876329060122782274401945425952964163017693279997947633048014657245919709081706734574976954869418501722279278738409500351148837098822118865053542976144393320585307483277101218713210206098857299299384043397979605028815260446196426321635792819336329789741042483940336637513171024776008514529280217607134609582176923258331834233014550314639077993049818446236235145134096888236847105429764242307110093420898322872325922604887689472102577210779503433904486546254100223451654939109368174371291897676925707409269621735977543120533239250553514201306721084361608776596855589031772098365067045869261307633991773730761399473489066543489510324752409166045907602758057055555417551385746038238713382231582004572786807586489180282105967916424901526229611425740155553850196425627774686361678661293301491141100173639732530835743466191750758757033912142202683328909074050505970728957777011088353537435658481329962985702752139055077248877212730413976918638287880763422663026242736927479695385585375729761340709212725088844231695970919636540489627475663318016403503790267282690034303612698445232118071254053043144104859667640187319142450049950201107998441290710450133224759960299754784986559839436062248254097578897164943889084055191501131799815411268949929499298563268425642602544960229274024115724092315611900292892327834052640163114857232761644258505389236514255056636171203538460288910142046992272431334539288665110124231986596346146479346760769578769756051644529756250556307513599495704708700100120237225717849854135034183187111321127792303274455226745011123896249957082491528573166406325240226562405305542677503624475940395608670455515614289625087345981577586583680110761737844197414162498116783851419330943161098694604874106910220193672480903660858655947154049474775352887538112017757529543852041377267959886046439121153193846031741848608698328767006912115913243834397818371690802898426925556676882857400742691682085274467131239290596298479948767203712113592546367311466318424511480660653325108018071532282271501360747998495611791194922647839957951120602982499488630713581816225210409034493078278341959435810713611057964106839971657340091459589787515387186890660204146715754734906481189371428964785059436487290372570235252057776610903839475535149124446978523009909687178053079778165400780491816230622964990119360480940252556872953165962128804787009488366936677742371047690688368253892383059256989137518076605940893158289093234647978595100625353002200774534787516468960007973168971288002141280050475402377092093357561827441629796347174236610610977515187225803758030129360247361536458072906748130216261533352503879466554935929554794151263960557896240140817841869298656320673432643042069068058433921498065125984737013043787703549765301559918699585653767834294721904509384310806326022572755590546696066455001318942236414297249522734229936318111556274158349905617316631393803717516636139829053126349778457429067533736507368728188591128441818020091753099203657385327744802003862693667390272520303970690385169786365476149200575732685996550929929662851075336949669947807764825738318717975806200334033751643951779248319558999925772023432481886871141954581784321164575017586642564169823725601364371537065649323404239145215375994598690774993083060560635267520398247412375875846635285548421901657659928385059138069274807916808440974766991082469697439561622223140473621524975024143659010786783779999455835661288898852024162315956929510742456496492157302265244181066435182170875677566245641443121081627376819886959917373521733351828225626175179283925176777030478297792816940611259679601821867491649356337522795195412565461749968334472595743450057639624114319683971574711016880615267852261570774137232038335930410380459513635631612021428819075813957231728215361828677870667992603814034390229640488748365623310595995428103730486212976894802594662379155036648216692846245131333770068629235975217514193103873300903321107145361906164136439644329799193234454340191203475400444236779420801854651674635106072970899739726270014808225630637927746063702507890290608251911371713721665547010357627788193251339753431023199044779883208435194395525623659520438709166332980525735807305781364243818017755512741419553667794588861850035652960388671366811611461276844297139113779645012461221432853707347245669207139612902506049068853384729892292856588150114461881083200631552965956052595202723162585666088015002684590161114198069652037177954573808711381511881015518208402933185755683741429032103653791358507755800613160520228314209708861999602513872556886111506121801567300665600551371128408616650342815879780088657758352776342066366365239754715907696775362358169759605529042707215130444413711876913026014039107806544438272119111322728959668247916939598826470476112904275636787819955456602599313737675059557556081121548387983912733702610945547150954758242883216146724991447164889529620077798063680589307289134898459167849136853080194257010767365548304933039059061940722973258787171948362246239379391674748015792543025389629343707566799780625099349317577381709570928082375703982482414354656127810204515192206575537300400617948105337550409959983920164126177657184043635436857881380173260332745568031623968722910153603459496537640352672261833860958436573500746968906764167804400570901396254008055957967131786218832005076943894571263349911513972867610075120195289769772868157558316422479015983281502157940564359994408693635452209031223401521473847518054896766418372809004588763091568068433796547139388065325993657737929874066335922413631375347106136240485354770860552311487115158579840183718282117996822412195512921045811986314902432875600546249842374366515676971800508985327476551970210379081293899871888098871865247464526445304833193815144354233506678842448154041586133889887709181907061564606434850388391408755136156494087988396512112890008375019211001790974857244367876050159246624350256436344040837062764407397489967515099236623633766873431089644288796456781610720351236476090844013789657798560620239131596190491309077257125448254593242564969526054170407906220498316841499847439563121858030411254628181946862077878440776950278926122405464813880228114294114890243237389872205890447269521224122922018168114609204437179027201829413820580250768411775719371142452412263656005245507507670841596092187125737278930611452722551267248383894827745513132504733239893397063942706553583303690312901410214039577923930932777009141780178808657688256743079501277262183151332569654067615438985418737291077174468272451992382211712105800788298140824902210717635378950303798707310243126938845941796103077265091665813365533924183528720028821193312078895175779718234436245215308701236076567993456782898631052186257920631318952227963480616213507946160907742855398124625828301152057314651402361027124785950317019337365723503499280982623260239402057066088693739589942013325077067253323089319213348319453682358005243342037300899877842504220818337676084894642971062679283947080613804100829581229086214338605404393284962986589847462100213849988210843549868163573528336965500738319532542550170843109832236793226818305041539178389864723376197182102224809177647163262798993094648249207452670484596054651136996635917732244732897108657947409366227664882952566729436158193706607910336939173616403761942716015878408144000150304013754753380220061125415327737707657052244417178099295758827628313088762723175425583163308743652341781809378290210253103309450223821898013760040159942435992737131103092302937871533003492464807495528591949075746160080154887422053247790917818929283760602710235591093975047125873748167360921517891388629704302796128419085871959871030236160266776922907377197044320198951190722922044590518293781954378597959587521184959502449331429524019835369825571444719922155911048259156228099830104200552601655854389157637049162312584324609806536723608960416549765118480737739226655277299259080295472250363384365309896388417361901535459147375720229748516801545443192356726231624432998935119213279606500267749777598070503274654379746018015205970192750653831389207072852677451611881430690898040676880426185987347315789379357767751621048009499054913117199419248086764562670678661193920658845049034468028409723063352930262319440172166520741437230515898447228452757820719977830734759030151925333837754282992074426773188437310301488893229920585316041254581879815129054696077224712164069807685740992658786902458253987120711026759606616577497628461173580232759921440163866482504531229840294771861475923731395949845067478303017949965148165826256812959462835408210809729535848902312490806316372950547794224218098538789744375079439079517368175928401150096912011470355885605961396607128824112577232157288785941066472550520357720002596886768030535093549451678942478475150848329913638740021959940055189733826466701700524530041416660181685461555680544296762344744713585301599968290747617792047531744696841566486145125938018842655822124919195388257521422228236710925831430881568275530560371037485858465581569890506599482783810907345732853366479263610005235493205852329833208160110308001288630627640094952515127621204732802059382966643059891453445310426649317853588501481482116657099895213832376171639718161236734960507506080205969791814657960618711348690814238051656726322001394333088821174191336598890564999478439744710328089792326371736730872225545937228106586368458227276207264168670825366866538656847339453827088759923805022946461042946663384990282412356585840218525986719727118977986179959286408626114176513493018575133815614849212851433483900100590447604802751982434749317888895234172297111919754661316107901210412099990033506773125328789932320781713457821508890231291563787831397962544495342689178229364452627688481799080181874345552587248353379812922341518955649451159347902667402971753699944682991443469218111800287601197392674081838396106533522738849885648982547938526634783346316097414155459570976268555576113586037911675379758769614206276569123604204227778630622219277897610453187590053963427765055559896502203984194619401408464789362682858981398120778829024927981637370930780544985165100852394911257415119151460393096057568411899681135542775254537924074390703113727249101686412164416656550112996314899891213432054242129553618892780245078543037620710104871167298815321507864849287231552865987059129640707763372814137455022162703355258497403642334783170487727408150928919101699190141617311612848202893673942951293704327003443356176431149991372042591202759938340011649296460977182709261099726843423766006605666045091275040692690854025471744272378344670607379242275980522156453567127744248208346951038810368732436347448287554485488833994270771467444652993651329762184189974237888944309814337612422651311052250233790468008623399673798199168257825142527662792789692909214311950388727611806727967581110523206540318070391282874580401130579614474160499172902249927270702164290457134849782352845589314728120781705575107821864906737072056061499357047829696297843843173582463463360477993246481649743137579551970401308973809305089375567958982269558265616299899738151549842993759785772736885208870299676780916555634908420008651127462707293564791593382809534562656624706525528060657925801648956347293623734052875534281779826867397167690441161772075270201576829343649246341220695266820553958868035208812924615423949745331275089203760882588536285197038534259109465717788726750860707090395733908121053364006099226742760353498490488872693954617386513828902967896044436563679028375935912929653558299759562861249507982786543294829163286947703444655444143154017986426730725008713151135775881345676347258928414324068007508976599759431626096907182672902934925643147589901904446964561957303893886379326327143183882427520359465906143305910655269862214228034100835716449745587937126816051442435124427574174868725001616122214177833259752528572370247316639855620195081558770462149362622788057369977145106638377380176790295984756390842108106989230775496113042737163380490086028572461803611223828112702925370546433160982558156879147469641938679926433215846463403999152796300743445730559949977158109254922981637106994051002956580927787021874946981527747829426969559076668897953203767700337139143690604200570267212585198517599228625384316500416981613910641221947783223864928112602108344809085912456259548398603968821682665325489635567460439300791097897553326102040651579287961226945925130343818816860991139206382997083776501967548457782854185295689870904183544989897297819890671540996469385736471230550153402651976650083111591421566725583501402662686450806166185767132067657667349429898708983125775548496601601488708315998222755265867855095550198645100742036115891408569595029178596045718083922385800171625077101746279179341366689981011847565102073265492094561850260373061836105493351402718680993741892304989682751788324470879274868201741225304029847245620222340527643047809190092278069769781214303652437823676348482504332825660105956291444538200148163384812820278142960843306024753361749653128975067485097776077778417131602241628243943411692036369071581680790665216615427210301277861275559441952512598356931717127086897553097057222289072960883920802282535786060120056082001247359560601088411179860567271723952377474624437035910299878229222789867984441840811981193934526307127280272041505176459134009068973425400708173420012084478247438048602917543025773960584385316261620235141744058266098458739122914204421941117677713285337620638915440157825896566387697059050264870346697264699301503956039299790996414977830532054304710525718898302162598365338788446929641737005675879400615578054110577141942491316142394154894772907456102333345634067029716126200686075222285237835379227959138012209090721094251022982412216090780743186871102762686786964309242181198594797129272732335391463014095965803244813377075972335034522837730895552683448927291126369595030121825487416034501285258071578936586683669311027883743025513750216696920295374740598520184575968134375644458805771051522338070309089245536793956918015855706720951330663380328109269650941924110549283498637918976998763868929303602899711361678711040214342954166964605202169970813200549354464506618187548284448826603889923351437812679728334954673132638436900461357430941909124790777285273544570318999860221176512218567448131815585361514071605397427380198799605721010126136766555863651167838050521439463402738210910969545896286128247361665172998147446326203576675834066582730463061796475961502375103271803284930018693091355212862439424302323975468450935339057176258250311105755171505476600376208566378379818739449494485608134023032186067526812318982386746465474455052931539594564012212631480937327801051068030639969071237213134167983908505360051700254762198946975604906568689092457727705835620233616615526076514763489101798246111832853903763007702655903789027544009162240247718041236020831681460124713809996028308023762835595110465874936006268058106264228095415692596833467488975624900231334198891894436839260035480542411522743941174198273042534668126103042922157394394841468710480113273241138817247719532884833534573583229275473687756291539808494550181270563919542195696166388903877187362206852143365597368279069853181662378789464838595364808827192681452517980918517270630954902121813821673096637623084739447744153320200037567390165600706337879417458813771249022051402593430373983496969987498947250396072301700664446707244839935080140427670219064126570046517917495876899415268676026665674230360957682907976725722515533486675792984545295225104765856921688271440809660960353063467768572828716861577891718265303881559677634437865045437383900095780680928151075783459594130681462479689540636248875732719473747910252544504481420502921134427720727499259259951301785020882798483280625332745574175015017418195207655313001799320905134704883561213955259029429559029623081130305024570892098783651262456631328129530036690562847381883317871508778414727376988848101421140137422046269025259891899994012151681629304056221573509163375334218680308553786667936735908596960216742046863798558247298885862948264788482693322976800248027048041022296312059135869083543297065728764276563919893721848464445477732911262632577625098378681749050237394939322661557285635604022869525028831029027332447441575342391756194321494368062037156189377048575831779747017121865437499438751823849977852402079633923380338951748844964698315958053980233478046180994081360119430006949852575627013014112173806653742789067223702081634415478054262834408944203625514027622659871424381297221624487632167536471959914915734711963674722648234335097048477737066784514419461101830653339006072376551031828831685785008237487175095571882633521526982420122223839163307887675110530327304586942514501508620853976980505008279047191849846769620595897110585151131205435605493801556387413677087896944148542602855914423570921501081768603801319053888705979920738020446519597311125235109248533854312075971858034625003436238112188911868818727752720342089138812514221815852399072330605087468994672332459811175440264375254564129651380951535835784801004645157141912500510113303810177569775919328392369659198526449134833899386112343634845208579981129403465276132884685863931531072567085667296552794448570343709499070478672315112194606167373994919803583595614270320321409429692979461604200101627591239136077579573326178642321147273191468683290820008373384904187551918312630213663399354080153319752600275059405443890470196178937289788780167265445825318973842447212245275090231519106314203230715419333347005185182984331574164923857228075425445942385023304946373794714652267956944457038161570108417219042967285013263924911672897071151134359754506578099211990446848047710479186778854048950382300074458850554554465649251104028239554558228251737646860494044869834273422226185296404197171157315900232817847855793408982758843137796000491304763376840480199476935541241066883567239517343855872655610086030636618732263856252047434234653862777040569801249251070242853204559183975988000501451461259620204884837486549893014638183208381495418253755378400354811229387809514108270734042311272890480874594901442654575632556421053296527106322186716120261226682568422232439021486025390732661482023233511864411269221975949495417880215064913030854029245130791886539211506020493211540779822443476308836417694022472493151512467136607817767093175809876744640792711655524342594431776811369026836928830108262512437024015774139002566978079107041350085434956199037573682724013229053246361634714047251794494777216186963009536639686628980461476382117757237306544083127986232332741939380623318977684284241622292264871859383891705596281324712020580063034752844465132700969832807968250763586975060066387878703950804404384490278125824345288585218722267746651846490158444654349208490001215455091416942522609425212093286716973516095483690925109618822642909709105365183829191372161279239988295424679406930898927593588527204319865992921327060245630821286575285584953599421553522886245247105833131787338512625417830620924607619625903239784143588857685076511946159122772119171951364569137592854294081442109423959015379317887450053935248384392670820941572628553124494214554551911984067432272610372681701231843032109494719253634255973561464190422337559971637916697860837742829536881770622858478489667381083131518042664931418468530414114957056936773681045637042933743289341098319002744885484200867742589128206173784159845719569643957921021363220958445073770299377656182810001374868887700268397041565732175171745656111488998119587341703467648353389657547072295565836899244124494506820934668106261849042106119233283936293414371547016682772957380776274436203506212535135740457918433862132368367938293542367283889226600004164927629837255025033647238556604139209909895010278860374285684440515952075528878555017733353625039939039963109008570767626603595619218041248894896801134602815918078231217000413255130525967946445518961300521609524058866147052620169175287233980479481287613416975832468572042839024623224712752095619357882378782443589175056801925898701702943042622397485987792318133328577517575811320093887671524729461638095266865255164550275542680723606644976122396320332423265017855942805471207585363659038833235293536265556926225495973634575819572618624277537112260101700454137102437705996175246148525373655872691790782226301889764330092596036978183119991043616666332544072158162740071566411192554272023673769398323217046561191274786645646234025524327273074911439031381319326397032935721606615981804387213636813037364118218987872474076679912432915655699578408945986222567620918958154049383299221356615468548996009345310216848762997196995632147425901561177596156009796979574586836844112998131008862384306366103281893216738895826944935225396199628743049169401651901115380914237502501049434697506376840776643667915214909241272161669335734539666961456945880604835046026229462079371759240096079020444830280817281710309967977152080063389115200093862764639800558695121429013477228387042033259141289094562381063935123953053751884791482183713898113936918037411501236374992741136786188727949209343583554939641466932038271645763076746527753520985513170636944120785417980462561943422406421616326708932825587058827454710242932534739054676685798981155265264782020688401887730773486006082910256706152455948930420614063024986859956663750062398143600662611963562085109242177711804821888588631992853393257656891890859630681689220086922794042471387318426668647680961308861094329715109214482415553466264050523230393048072157854873837262323031738096342559358555908778551337081010836428559594113779387444488150881584497924799960014933094160820143761643490193238731881105512414742462610084079065607441504841394050760854873167361641489578337335822147417740950416956115896533456575716072380736447395090782791464262737376594678557473374800589821771771425121427310035487136329893517302008742008826776207820521659902375769869189570843123500887422085579337739330932577649559411848071742969471514408950192679987597491151270281066357083973355988443463859587361025934625124323321192615727944319474406191850334117330545188856671201132477966063998906836948719815596226739695368009821954381476647038857520187344447197857528303904701008526855246418438155867591659758086409144889509642668110769916369956819588198180436774953399939960923648271578644332626155437908739161414802783257951540624382452567234045713916239945722841415613927269284378137457499618801914278289014559287397277132138335857331961260300245717133659180475754368842262707956607660404654282349929693286033447790162094899044272819198759088246888198322428648396127833782402635656963110726642157309433976221424480046221329492249315354204177898201019784684675686981639316909156522787514399189720681651608449359161682921539668786994970890555812349756196931151464711597726114348573519356425415967531029258200830993554893540345604853031825051673632463528011793877254475452820453859994065647820045019900455883381991554659800157380816995614846719843849334767585849561746889146892075318816020692417848925824371976954769945642231850186155003587573192741119867363617209804553823618781397268905501982960418271792743157065190717080275686310918172169159703209105552009649455806824329792957850176578312189614845434626880148848242746739407340859862649146954750303060195324511400277306885178798224194477960880582042952784642678834808998558039595935637316797010305160794893965619258933945144499522372685529887234174123477816767560053708760834706421216415696874183532583049526279223653168922453516276696747981455721699149979728519905550246743379968498518804663520270059152262567311997713518608759371013829138781885097728635770277276898601923565819870113468232544016563550554621956828498445601096534958200427985907121183965973768087464515344156264498858230020569920759367525772839764915095740426580311988761674373427104796609755650186279291538367265712054734200234679823756226489023980253477799130341417394850510279483697016484145447999099368571680987970447891373049786067967361119439786029368879069879413276859196126394318754604397914188556108240260537755443918032853649966321287879621445655407389371937731182863293076780312783188113277140185582035749332141671031335972543481388984866637157646031871310159699135437186073280195771713960071022912446224930830511359848408514155285093068221935766043313951381790319031617011991738062289018349718649533106499571391804139242629797479596964372562865283839253813241275319341872822567686313296532649601176006427631800122538479194568290859947150875527981260621062371842537020182671129053441138131409363818654850388669427381981985722141539621764992037834868232881026494189286847812720339659847675931342972908869950490007864128387730109330329283908024346100164071250412957298993381502846386624353233029236529893660896078390565797334877079145843986486466853784462307562642915511480252736898621540230548153379818250303920136697582363822803095148311559413870653566393358692640235906370288746013872323543683398404449571026272319944688783094208164500642985121036502271537997786489523156723517488333545063404731521106534214407043068178562394446494870282381295904692193082772925156600707560066279050857168423212140408573741928267515754050660593922442444925628617799781753655125556336552441879762327493104872417080807302138103700659999836388228035496827906575588187947834546313077905025487897573561690386825713234463779229820811773339694327213121692641274014708925319346596418779888925260901175111512940606015596133809074589120393132620357182595943634520560543097253056858732571254624147054629418853921313913283421443667307694061466602360074427186164177115131323684788779182116182512084358596884114033422143728259855900255129422652677248309109777924279239550059516233020129199620717177601979554590540597573897943402904809240772446252068747336884297618033987083877715218727718155736813738155912035011411564976723146748957666140393258989059003428141334194052148241956137567237458933452062379886565833704942537379097141858569423527949691994213847578497176471570682002596874919645395964864945582789101742486265486406365476176234973224138434766504827844462438076305904686113063163415224625731892823738725460808254939273205421452161758475951657483773410059677712296528015240159614478522899171650490495404700081572033847052553021867926258144598241086542599166712491332744265692166875897693472391508154584551902979942211644564969094310964114419063516909320314904117620382431029325965400518165374655646659154356593322096749650341400568037861677898252423013332138180893417650345894073214990930054530223780757937430552232279728459734059133129293660644792415896540856294248966393230407333804694781083138163622775003981314708659253131523700634835081708760346467369691232654696237510640867570537051677923683364562786601846030547578732613240832900634985618699026851042118450563596353634550604679858263299189951926097126850769865953125086033352467005313183800022452581210558337728805717737300619746848893077142571163916496408668962555058178918418857511547339781107668383149017168504607726083724626279398227003530290942267393913308893282230817099582619538424751698829107175953284354003839192691855216645521647147923206929760022525641661970981816529673794344990410390688636114228838272441257414473426065745836257022736529722066311867085731600824845507928144167744792424514379098497998723992982371554746376171143504982426285856358084696136745542401310367342790706433307246354795621246666055393391845036827167018616834106593931592740911855069675971945133663058340235150079645775039051211744344772142025159871024106043323188110007007914962115655234526277923392416320956402438188600185291363174026806868667760178431043310850542047062545634778276793940206413828083980225560126427957285073310786308903229594839287806870421598325469219096618344980401034684452487269774904333409502990471558638443980993361557632297006711197437203517898187337021111505172895756551957314374240117829869217472706638571124443838908180785910553492971306599639236787658030966725114827897533881594641749074117781273916127181452940416858528940719881118641312114369858882863632036335840268460662677171700186784941393837826024754615967895375444788773341629359752837165833287320261765932623029051431407867483805693667427986218660987145624802691258119345455156019488448313422372841676485788265690018057256586312266710320978604881293489873272026148516790067827463993892674897545417628164707761689659786368920753941748932601755567998322707913583642865765550915072631847341078931226585629382373603468172229532843661122401245267286841214886944177228445591666863566688131877799653760506085827725191503993007211041952238410995694816375325783567258390426310365727500014351060772398561679871807913657590191672967932546178200895898975455665518880613900942325524444138022793404074434253990048563769719460809151092049691190169039662363530266995631252473428069775637106230818487238776542720055980139453268409700742024590125090132074883244477890711184650452925458030696554860372781498521674854993765580922624889521550420603653936988912762072792411802233318957366965642277406919989467440728236565355673624969793042479026547625462753427396467431170044295397290859772408334369101613960549278106208423241605660015592014474301465405302129309492377375710408128337773055763526641777439422028211588640793050548234113490373626741556167298939285754919296347044729469099555604547418756820501665773431051521393130433124399123195077928050365661381315031018226979362413796810466859819250959240937777019211896665071651775933177617707482631889400828163239253896793830144151723238003941255399646136475036873826738446226603291528155600700241022671910896856754456161598556958176820125942054400994159020955922459651018751886262657023747590317424045523929217439053831411947352937978617041631809775256422065045654859678709653852150779392965820742244437208979940145604931787953010509679429702775800399784511681768420623350841041333198328131541528185816906947369041254654130078097700478387303957458963553918107543299307886833314117063484709789796433846712632984804098212186194981252688398438834117936116627321499184042472561840488241342106252965252675319407551712391774200121636743701831894244158837575403851056383336930849911266710127442484772113919322963345187247416623352836944419381214161046292734179967376958198795378465672259208095463014394696496445882696015043958419629177354612917657210157551395498679533045158098636873662200956333986530499490337393202027796021091259153183898452532969413021575133905505404506023028714359312807407172746508266076736129476495353907572550178135191751253598364813640376854986751851391845462963959631031173578438997827352010868852457042644422513522765037003629309646177143883778771205890806806264135510577406685149428360821196963070994947765751663715358331747215564650831841792856484037160843746687724238597265000523968529243646813599384618475859688992370978400863951996666425729636234369536535015411272573443777253233329384751472425054283382113981805352595860411239015528430425584047289245069588079781542131954432145878820352513754379977050600302757598833422637852089081612874492060753346638333739052148322291599138345385213207576487461221183958634070580541561741200379486716379539655881047310962007526033000394604868237831082822439866101077395250987997830034185550503712010717618279381273302249724786337592543341756136685337624486437833441270494409190955503426895642263689471094690984590773656700611304712949012249568189623203129196911548461165229814414095197578059141787819440096997189982427567027068675231463118521551238238348383855937043064613575076023365576667851740359605955854100565017898228531316913867889955115587039206737827153651681814073078159849597252480306897013178639771995781220443346255210752870993522695614549611464004825434766262286157950207514826689980682586606822448727187796756114461027757083127629893348231567129665005744949319305089310927977964451266432814811784026056100226892115104445817522582649347274563475915330873933669878720917419698444868393979033737242725298964222911348952124651280649690371776190379594080750627186321935025884804731149132703464463760782812743344146650232563360411013740504798923578447924782889806822081639551559853001168139441739151199722358160212778030623690844515895630420468449644616179319796894841220850869143124466645103085938234801373701920844617100006997398072535688861682398668284809377893864985249381919085931223455625855439873263145451821080258351208200331718041498196046023968457046316943223837856600856505992598896600664006274807472678742434504468937295135533411491620440562353743443915672042875557291103126466133314214686444709503661293446966009336557622731829420591934966606685518228384913724352059845434203533597658043166330768527930734070796841039639836923933065429980954053119555447784315181434291105293208662098455118446119741413516112810614738443217674096358586967294731053793625179525119985739282603949052699597209205007790184707401139824345515017514656875521903850017255801592841754494894239773847490831828092358358217491601199766602411957830247811287023628531961846301406733979063831433834354182205056003566754616113773822666521086323670057424083877604528131036066124162845637968337741950214608091575141524313739357031080278003759620137181311401530183053571766308796818350040687685138532817389264841861551477402096286044378939404111851006413038047408904922400815476022336559574714200967003860781278969820458057438685876510486594266465745780624223341214411868201628827165098708847516973740804877143786191412759809801586584870501947081999264929668520946165638185136988300289814859527365433863298890577965997649952116303943801692398241774562106357633358581103649676167897608184994003905947052786769803897767615585141946555437436086955114505533079748924497557239000364494676808857218306383559228005238165652422434501963732951837640201276892847421901885752502766491712196055542806059537495699553997617066688095050438108305048087659937069683097694551051573009049621514917008759663361949775116947452192945083435077130994944031284685424443670484137904706293916378244580511775428423566772143613416459908231461513263901754584403226815488840001638748946163225665071066055545002249292533174888869466126527902763594588609958992206869227317590829303905652345582283327611790276573471161429110828355350521426121219960386657111589734935153859400690829463066259637890426487289593555636621186293711282081540985592747952055736687430759749941559769667108589313941530907937569676157270399303725502770815885591664469749864706616228748137594303020422508083505767837767786557235224290796552960551569578984956695408560361450977767364519647077669412778536729369271093218771282258406425747810611181517211674927866328421479662411894692830439882891961405358679011463783822077716183422057335762532835153811967816250048065077824616909891466842924623741672307398572012024068792108782954017381366253072453032285145718738279797352042443644814213716996709171967835766554900809048291212203804073862440568933037984416885801021077215933369681603985098397370329819394186581510627138707931328989643964498694251376677169411786167427438129950893421162737735244827687821898655385430094948308347675345702184967171406156628311046860378024307051326178535099775670203108334672234052995477608601789307810841428325502428199775991841872656106953125732635759266026240770888075237416908140810030269648687608784213327649273442544642215219289797851003074247876928862590383750799644133173453160683356512721730695671767505016027413856600176700578850771647004596573350859017429756130351068393610220827391728021636845605888020052286581321313233276977869234000622955120818275368067364371080877215258391332124172690542549702956176009745194840763610715542738183478599861527986136904385507676900305979793705238415519134986245317886234726616351186800721658583579008844267338813526375103386100567911851256659714153831465853057910652896128347040192774975829393927921567960054039455943764620511531523859305491334848778799858063431794887653430665753216917893703232579298917041923592111637241509472082148948828477786185902175243743151181499430698692704599069112802235272898863458858315911813479479362934010289548762820896486643832369440521619389713919771683831938948523907334284874988580717192509237471149398612818464116917695283503042780634568682973255418301401770229219327782463674176749112346525872651218916946757829530941072779320509993944930524729810844822157645867748548146820511737263605292144401322143241484050313633022427304433034184238990404746256115270702670189224675966172734829065257325758184116093069216800579525358362952823399768895028753423387960080422805962357329320673971663215076201387080314650825540961158886516745077822537015363372010170295270893632360595377512842060522205678488728342529668451470863913614165429071758865048330861370263989836942185508354417498387063159206884636298221488835067053398825604903502466324430634607242923903163312858185402731118027045050337984438179955107420591858135964016627760068297074136526197789977761349337509346889735506779627097661298840655328982409497460299991984233821010784491318650588967429127131968077358891589150308028525411907585030458238064357767668816537112313136424926598199653000930423092876866064103701696928392780543382161532743714638151631393079795344575555190142115915688636489058413304196614662520237731139287363926200399960796765684523367162351403612850641905658317297549384954972195162875918364045937108220730661330061904733700878721199309236179537614299532192259305776642019867223519897033132189637709949842002828929554822540416101368896105778037918559648733190612792324072496951484443593253263461781665518861150413596939332818306190138999206289506732657770507776903032804577818834027987169026655258855988062721807666074778916791665397423797966664205979025144156880884302151145653653218454541315850333823323952242681180528797024835983494594141340951995750572171068383990231699949945417668128186799824352029188430638002253286874604111001442492385040946947304032931572199068648251998580369195235515770772173956806367865482975486187849285795206855225516501636748554649906622577756652475096241948900720866239022395382349299629136559092144684060034259356499350695819414238645551036424894965019654257879518899693062407639822648044165670760264740685553548583267099180167015859396465343107508607943855956772641475402834929154461980195933991027495239520072695614569719576722882648323232740090773750866381921343926179455220769880489034533794093022363533081825701943724341769404682600295329470822089730236116570319522642839177040600456287744814480659094717418726928701413944497036790183674690115121602405825644749780103876217985264532665654999969177203470054966968549438317556274241025005719870189406075622800874565312377785582460436429034364962230210598326207832841945271486643001568822692684673962080404349068916765869547621793850584580176640291708980290094972777070849177530529092794412317556086463396772296589877200499318244181637486885821006734837149526910140838330613957006949022237570905750168300120870376166399905845598293477738178981074764790154279581304603200326517577594495033237823812099481496210828995430678767130598806463391895592364512635637804381554957557554157815887089336758460411397673346533040912574132880037492950378204922707212954839404280487963528529525303923761136545177641515300108622658026694864126804452377118026530026555488502536126864195513126757330816851597788533253272523232855751885966624147887460177167380860244658962790761176090886333595821491371399611691721740480725324196609138319602325631097490570373697894822588621449098365090149202268861469468451082217469438281705488879322547861405632262055793920423271650423395034247256569846133947890572954416786926827487803749644139783131705630370659125971514009973359385197879574710825451387915269859948798764938049847055764824353545276169889491700435423512989249945112994684051353397186637833891246031984231162493141963735485101300002639307059748965343666596984898742351808291300949257508559125203977119959328522832206727541249906970379666188794257773360964644380506083734927168367995699421453069190946068297431088844696892953671101650021249895391821642754480221571002068839002257822520537450672099026325902853428071679789187426163946550270857885743498030664951583390025571896561736649298061535197996244549145871028631001509031555857698117655782355416881219963897553341346356214975920587949758207281016437935370507998267988952149476359382279272066540404390818255148085586512412596156493188737745809218559659311053962972141570971359785251604275624993968333995332928677567862965225952588155761225353254987118438305212152151676660693651250321773597544550235142918009735502612989928342077161252470109799538789937304605227455732679871207561795458614107868143366915584969503171447423618269420581492103585627547465158168811345979470113552584392977937877389336578399935518503988551237523851090951038763093620843818057926167809414801568611204844047524396792269906581349423309013200805443836943819521583028418703778513247296736231614941307255784030982401679730653431326861357308865394847808383201527899626494818191671891407661606939710444967654266444274653432430444310603861148667999780251654627568692426810823709032217608941021678547063798607056961096505846332972992608189379740965268879733611185798131755114511294945735674252588463224858956302024138658531282044317236187371000668167934515299251298765233647848706009706096769467615438403340328415401614458681522384839709290088727515689490136572820191813306838978730253515159212816390521366699988854447556896570611905306691978516087591323332457606796041746202496473626794471241496850261327879607432303509961735146095522919076911700575807824561208309964811421608394894844173786518128737551289786199943352293373776274933743286465331178540175696655011629861421416429366867071546806147572152185931050904267356292040101052066372833704428131694507141387181274420401146362800151924981255455899626640910906306751822714712585762741575720274251821714091262893766508560948823278644615020687469139321935077079613024353723602853532856984011419625450316439979133927223823385291739279719333644295731033247089788752708366913413222883667506895207307399475626453745153133337239566201372901578592731621842384202008316931591621451725412664784307188147915890772544920275697001922519067038494159143372702437130867459252904189645035553045446182661520285793772254948187409187930425050043398322685666163069233750247222582052787352842391126360482467098935723670759736503149425245309709808967822532756679212414854574027698562476461265341797601779992866402494023223883948460728499802725778383913981015407205743045028457687577571624921306176528675675011582105032211248457763594756666953785728624824784222570994845680153120845955901199413396954452123929299919400422257057850167432057210096602984760611533634409613422313914872387829105672514805669584389494124131264893412941596663041385419358832560087209849321572004332937256270887461225918379098721601578172189974375773492252695711449780701476593578773574402244974926225780636451139012304766896318446520237826474302678351312738861001362499557286935030481525888904032527772130261150092757583199471832675563709417296543773365441062317644277359479576664327789635016722122270631340713055136414920387609270160509559499854678589293382472627975908355112287506344646716496709702191390452741976349923687903614335181908665270343021583137155869982601462539073168188723071280494193106853520682136126326864520744263264934937548542989243640905400557627827670971336727342354350837353662461948985862244404211901900442613923656730354164234992275296720884677859207352560072927415256909030120865337060008079551277108392426043781836792937093989844121995413305266563502697911783075698721402425970263788427623823872816823509002049435690135393474084457518073793511764743065391360442917313556746923700120298098913796742455328919400578489097458255571595890262254654034690134958415023188010280213231818128271028965868824177020831607199912905205411041745537910453944987347732915118005814311620767525823613338583502580585801362644820126033896311104859848630680660435409842895661576039705498123016092125356665396238769123560058407463536751084467315511775379690518231210903697742344300719977031071258140613516527215898262517408372497707996094103890837546511273032744115028387273145873093938128762931204422041778898881607315978530060213769631205012433391280288426904503936427076753580818910530932279142718007726714478643614730085169054253360149120323201512802623900608509949353139531447612389105181907590115323039519805743257408366615011176358414199336025498532746378497728046838321046437909769295365602529616513586373987685784616952353011689931049336027936670671051428919549305602939238188468996212154131660406433980542693731240931198652810770190712540076088230331584133782518491019271071783936206182990995473284487451225951945634324002330595031126762801795910637193986595871139787601709287000256593031440510522066147943262782530599790245260743862346857683524140725930943873750437038126460071780624209540160098928972306811105117366083639598083367026869386032897196942693428891440971610239496449957086887880003256637531956434946195587018262549387925193429230395822234407674234041188216475894109766514558780934933234345651359572106332448301612016193951876021614907229822916749361999738453401713813191302733240640322396401846548925450765820166231882107087323872942741026270253162932629411130227658181663450090562279988817884513237079575447042655849835360941823185444064696881522787748556060383397190012419981748875107629391896779735190754065377921076731457035737753252017377482716382682614440986907067916969335878446672158826392378276719033892273941386615190180242596130801256779765871767251893903403821065347401898149504791874696116147433793819061270798359847411908260190908889605665096335359285301373109950214494415057450128578489510998860249542452873270083510494083992884577577521324709674497512928057099786258776456078353010198703725854671114499401582310804988922341246666484345355644882156804839656896820455976205982857726379175668738765803928600907545885422330747103937973365472901393199361361061109019004980126627495024819744794008041720122555333318540685956648341191058452972747049783236420686003960824397387442945900017249845102252550991701258518354825047479466748961909407128118920978249449602459074608146413648289185727570224565033747467285159980235787778528600823552721422796106691391731162073564453801216933176705390499490466619993426555199300121528851447058052956014900275729927582219369630474292179761112247891121787730874781860001772842644113223016335690670362520500797182005023862111078696748068489522460838774227764902517820263482907108942491203404644222917174683111303389672064615752101114943894709468249568126798096150658014274399907931820949921858331031166614739779250809978198269096871033739095383832639200136438508250383393909079033945290003599201682317268797447807193133675206333543333538586558376879955712284036409396822033720150943658152532134584836687618461263310871354150684692139147141995024287956925883375329444348077114874665347559348087538751972628186036237358973820056682447962562634831984686783720217913851071816894633097440648228893041347964672882994930236808478009761684208065903590898201113434962998596757706599737786012212467297346418338618949502839856508558692120721813639777387296912543654212860064580744805359620237075057476278661679929737443847679574814711935987639416723531042013264802342187427088514416051757173141029398599138155235971249863819621926409914357671265016886395987992103463722065685148515073911883024175026717418689104153119528909968957173601383434022152415984162082023841832290075422398790392317294191043421325756075885466527866348140239603201310801019333179922966341852282506880739665211762811342499118518333334149792781341035673910242648266142539715860541204004616526787802503266331898152823332691815001743488875648890242012236822624283481154594557494411314084675882678776918922223603671957687796532226478175108469672955046704939316018576623998650605169555157327211611642122870248216993216876671231293377322483765499019871412980898771409957119822195213981593418893311497744950853701916365106329719106059463101522676402911824486980721646563749708954032965471216196757277321621297855856533338328301107313318863242147644022416490131526155214643111031958849321292637488588394130701893113651263531109911693800436782993285955212922875767606520962627641517183755262756495318065407702889013390438837975254011722817158820580420697992897609314868679221144591277328432219204706515856870565000996229096216430242190042564966025706524553855297507930574938999148083235638421624814049006115930519153838692509433605430292859405842374233141485290013593280532379285073480971335388290216313762028265707731571373070833770494849936743991764878409551065889556220793694993540887696919455228909045789923160129998067821719900576935406650985456859234658985389224956689147419667555535584910555157605027730493372447345899578895030509816744824336413810056384644726098881515129260962425321063477043059197151983975856159225209613392013537912927240014993969601869270952218852719072112951972536271385681965780871584072849956499429956562360802762936098308203630272175246409483033691836486472009305738606400955649528120430931925419812037549225320541389354970707724966336052958928785240312547699869572735011243775978921923373726271863318199428854356299325129229864836757208135888900720365180829423961719148450258627801807084896674155279030242726422229716623077868565190668837759055811629352175931141560498155013201643155895975137699526524676384714154939116529937710094393296240549369617857378845661182318744441030335723393641617287183782927076642211502922905618787357277983280017821371825942763918725080344839332893791633570907279894178141728541190616235485411427985478375359989221020688136527318513611189016716698768557553052265928522806738905721362838410657191291790529749637296319128213436132426716994808992628508779535950066183827434375889663290718337744347551562649361841627278995289622107462852233406154071796228813402744640134008730819677849301032799694359660302020009589433763510165303771597571875946456686118359259247767381005776843045516388408842253863365775858203575604090730522695242309153979997269910150608035581181548535640904357284106454162472972856382390380559331310609891960862049207256319633690044758257013984411397504059057219491307938244263137632181665908689196977855744000553543063552543397104704150427799399033306383556833098744204154658560148010902184404673440256654100071622188879674712116869836703729404535616019401376656261305556299106620714556479252760676835998892528056226133119076528820951922338779456820754379682263854485964579160289149618590634603993303064986634659618459392476435305762446310465070368592466728699087686886937500129299645524736208125306467791694038357472667153606067457747747736803620992545208428201506694180958679916417796386670030472943697272648422081873206857978397782982763378065868413296281348978489356134777919853562855543637824282752886794499825504745009651099641098557371033351640072753736555167101887965999351978112344444500398482516359417443161999291167696974642237500650113098657440431153185559958106931645295415238217634673500026153949837068904604487625778775524258976293593985443922352237881417509783018952345376527740656503464332453546322774174642721284345850494813851500344118476159442752469419803222301477881341319508062174151252023096830803102720440610902015000536309760844600831375719366680221247878864686298288922152975713600350348724443233296102965861000507588818312239351608418122331044642178525793594073630686379088538772751842086293712915792158554293380582306279609934172033682045871644292523619464505579533634870156003362763725922609046886623209586837008147910651350832499875838064421441287761087772935571330065526252290427124573812977766636253312421065014421891620844689621306911219969476382542800061242118176076232883988811655691052753542320371269203334169704504920649918253784825088237224059759675926751411027820592463011448359579790304776970235702915823614909473386592737081406781067181560524242975932854277871724912853778062151188559941673971561715148742555708842195275318076150321327325501895653261686219947382646257405960809128333878539468459726094272611776699580577296570631094224457902444471943134633934105533410647766406302100080434142368733833976530300072147724881628307601654420422495715141204657541867543750574352737562752113202488154462030515916681245909780727027687161788222696157045915189181821681916373876844733173547855534584487826464009996277897293728476531610075667283447345964492992704388314931108853962189714727237985226391092800539912274598849909137340880897759488394042020781112450820825828490686114822593110148371382032124920773318496777773775552154919703450795530105512797097156043203195827459382868869571821661897726683515400701129881671343670623074419529163048755562492945290880712416168668415232298182932384584413232092174850068481736491183462417615189216181180091041429662351298430829398106795897238669868078997602961451378453517249694143039919946388039886956647036017885386228146480284973279852613873038532179654680706290260908913937948430726766360325094569156464136238922533155884913551576338333675285262023457254086546483233770126908017723001819380590467778505493422865988387363969540377365645206739318101911591301808410036688834349672967302700990856635984280513328842328929009939768266424599925742776590050186781047239715133310695867371591447183550422834822342114792862080349014079749656801916410669420241244222017013876848019877585008163429336696646942407291998126431377402303546922284223031320431632859184139218931842190256598770941045413006333191011041627991171026698467325852207121702078700144791453592035198967630726367449656170532062743440571177770476512553779765586171831429242347912203141166635625430051466877350817950095630404432453892734839956978123236846307534529112876790556520452215261971521618829973453913929387430494979043907093905706636429565244027293012589958276211804311551419571317365673800595907553707036453653517925265824504119120155818051650549240950290016349548899240270828309812052315582073350850566520940513082269750359464930561631811395537992700529258627064922973216749692581337011287488571486315753354007770849786826364975636645250243968244241665787477625315513998501807372854321715214958164986026477176262057900268767270119186795752701091395141687018116732528682224225531451734155276423966920773508629798977795781401914630366802954557721172665732869369920519494982021605675767096391198657146559785984751251366235006703077587799336953601834934678206441587127889386185872630688372578790128443819074839548976312982459936052237161674290142912931272273967624332434063334068325252437113021512837233115704147558315455303958314239478426629088527770590375026149335665466459903683420830958280457305709771962085694326160589499020567687042284900734078759013422053027293251269370175899107555009382670144745355143023136935608550275269723573930239503923675408272485556725216662707834562947276638468762845923833127924136756984910246039009282972247470941909967006386120110217882795419609959139058262475131980553098108805721513210136543383334458405190211586984214991274032428682741666557208946960158802527125939626911566775499805156007530619241940750069086967200532032323709467680892303920093191350868283328580907300199194589898520361747790186263418201440060798084612534581667196191105201977206295452139252187249977276705626687146261815429403439675778652965570804891842090461700565619958666937228656004698020056152969599138911473000797125358743938556691011069973848604336210895357223384217188957571696601705270285426122765953911961410049471431445545791746038450472627401425504306857142759601787023289868184464524790942517313776546546032343781362269919148304935112160896036174302849732882521770378069886696365498404287558511381465379502003724952385513642480355596935698386477267306480870266654857774524725692537744848410465269623566500391294056903801451263785531595064922901674225537407710200938552135323188743021577144067403905188402385624938927890780238662832272014539093253363726096766638614648807007573843291239641950753160427584404006867030858720649137451930809334270623074276038093517524338048370405469524397962571232887945253993742106325125907735096216861612172016322063681900088918380628197839828955868181424143861493084369033054491349694638938919169100024857301385298053074901432645287307741489077361926546695161475576699091070528423012713229826309909988658947488156341854852493946894099193243297818968325302241406096718111882002411391183055567912538945812700377481856058980406665158347223243370624911317557470588905307107667481316787578172017867812435867647713301746603578605505014185575000866948478728636164919361089930672429672664364463833951508863957751057151879319498688781032499103791888858214715274579617375450630361688774648533671102980642918420001989372411408752122584644480088072168111609578063460105356143914232320897000054722542082178365514715923546093720528477316682870447405610994230235459875144381697047561918614207955082150828153853071115381782316803957051893841536753583494465962701712222505904449815129132316408013408961581451932009220039520519180608103014942538872988260438001894639084951225641568958312206514904498660254373535288355849757089487374576268738250050505088255849233437834355340328848868654502352546412306269079149000882392406230752414015197214920435883028428300568725144429524784790401899479618912034423151611201429127425277362675561807027210915440409865973758860194062746705753221957077167758889603588068830216675211295644206165910478961647201597165550570383816159957582161163139518879634419383694037430893865598492727617077959429367159346329134181529123786372703438044458655045988947605737872351500769825030424814318803892936369299065550586968217794753868700843365622960987113792616491413496231250276480045539948019421214030413144634510096580851961630186126592289215473373878290810504279745038154559457505564819076174744949336409000609085001326297796797535914491432370628873076998433039401215139839269831278611448108280145559081649624634484329528664409371914585326947479979915187616911329855533668780659350544778505854446696174311638212436331618126805345034167137831321075185739351897789352242445874854311757939779928623182172381499696870223503907326585904114436848144190542426998704288458505332349634778226821045367780334682200632015025749388323226014177136662367377875183154926390964134611432649044616080880791203390084551134800715984808320991983717988337693203203724378315180212491476814847804247333582244866569888961997155793831411397447995918122440618244877813827945959909895700387198104122566345598343062785684983558332949202173315508709029382152841932118382827633214261035589857055769897359677176370678698350191656174161025439539290222466125887448187481118228855267715799947993301000384768139774222693725079546340023234379461451248517483384982260289678759924102628353068837006485320521424866032032179180220762369180515236633148722493590432705016720668109607452475365647738478069268420823337857877123912760484838128464827226835609117812901613803778807493855022408635218438581156917210803612006772605854309541320975343752231172369194536854217669933256218278035131242047195935828478766218606085664539873401798124171929045434398640395253128408076561949340403914788409299991024028857716910549191888346674956725823602106303734945330584423876342928412870481149622546494283089637640676171248986482421311669587082613915754015200603374065822445907131178333232401875803881451907035326894132244210574343059173831008788910587845063320577784814287394743978810748476838526770351061512538713179097855133802361525948749110337300489993155454039699204208507912987299411914670018046533446037642338024304708385276554296551536900474098198846699394251808298014825858702790124580452930490193004057520778278266509787703394822124558786043169511927733448850388986655164567104897345169045942481520811827904203204801610466042165609203414640001991079822342363247794772415853772674344712691894531535649832870032487340109069483873893125678752052860324209426695717764111876493731767127657147651530836223758248071219747075348680986335074003644741730159338419757337798883559547897239474733496720883662651608436966087132526616971348703743634981881655335284741114073476270617089325537893650349605006277580842592485099532937676379450992146289873584700063725956597843020743190508139268754470377067043899094810750551694930562462370921579075260088919877848504198040452369031239359405818457819216387085781559626665879240706328683288746016375735075363172119950196672936262697401647752332541042737316597918612257488908579333273210167326525583141986275341387938954604339092773995197558115910282419586610982950023220260726739404331539779140198564124764807299233594048430198395954847639350907126272047666882480154923399237522800768140705936052876803796410905249114126337439954799725474854381339043322648259403169734272541241136204662661544907700229206210606987132832112462359466614639439211014092260246757989971203308679486792696936855742184165719551575718594378225174158713968111860677763985731186224408799074058251845516616061405175024285807061653412362649156108786163951869743506478795011989036354930388404951671672315351061682870798918298641719895837279650420075577382995645480784198354462019220784147778797498554054743926754491645271098783289178251561523357777039945627572776596846202936029920411394804937840891271923698007653773993875871082308572887895195633251765831227364440950032156942119891108901247034429698297933480832044734947060744073763497083370126192934964470684659028598404569809503866131637168058635779229558265280814011286947060566930985896304728491203518009067772850341322128668669009772837829333107850749542183594104631069885651781060079395667576024078980828766609385662381565708703161905757795144357769362356788889654723674179233802814119597546621417863668135290784367266498613268379251232714713280219554735357872245609718012492182206207807630193945780038373143860532076378311480277555876549650903698935367688152547273916671241702374641116028025028197983674472724795757627269310954074945040364478204035303650691080275432354771873267970613559585944038721283005870823455760869441153649335983320198398905430507710912634326405326115875815393498415724765560239667404971299737249107305199455114981088071828237724686094839590678624021572720514461814178027548470741694905967793015691180546130510267638450539671296458443005271329496350010140846562995049193174333256806559745601609096956515813628920084982741095090149995426180303422017221581119856782282611355464543219480617055143752715170369220327133864612887536346978232667698051385528244476322963967999702977189182338017510093987778102763245038327280863500680935614324359124266939559008475320413162047642181200377288541655680813768250559396855667168723708322293495185309486332832027825253041896912116804156382201738810623579666043087237838826773724630102850459367329065205599706611822793872991731814328511942011018277900831540490149744999959580675138115904352291508431712002243964676389491773392293849570794640832289928357706841706487502244635747670905166173770850214915538075884181821725985301626611021277491225083936089463250067610172634020393406779488979123680329724347719792810818728387245600520056433684860356619721725962786863830202375828262454326505865638714936143842022655874165573569025826807234576706285921394257679558745292111489795383767191870929712248347594357101435245130289078725117267857704911211371660145155950297412150111170571690023794305193870862153100144856682548846475178778653001270729984715034966712726544955847717570537376077756693044132831477006676970814615866022916650607383589476672618303139750944399933497948241402947513152935689548555264152834980898758072034830019745493392138096047537271375076494816474152598667103323549792123861876709044887428359265548203658528497829884437444259798708153877886424910980111398981185765184148320292439505041942335154058963335466270558540825431909881260846628128312828584538951129631573562499051848880814236295898902569097484286810799860819840725431792065152865072420295156526551791803579274435342110468015001917963050213790762986206423482733363874634963881039885462641412701617113480741194252899484841951191414848464020651737594732706220060069731140460936722735288349486145588645939083914207425180350079029757326803612541865719800830320403528053164058912714036670496679271211942904983010096732597421870300317454002326371247221545354028453351782270149061920784502774860111416171314249240505084341194026991317945246996975598669422157287850480806530188511709457165977484682103033815164944178725248174992254452881629892753602427844056002080508446102525841641318008836403080096767488118021206872900821380758294638863855412513309771073815028057960213462240455899279047305386586082886625018540802497105788388318080892337538939099186693647252567408782718290975968547370724068769963781071697910747480433747140031180972618456746655816101628345333938689869684609648756686324780744688746274838262234291894401847113418086789601861313709070092006013487758638834233213475066526789204392584931275612860067410207104514920622908936051230717044756920372575369310044122653494288236529879863598170180793089991070219683319382026570497896148243688011969067398191698523311209975887005101650570586045648716992427048809422719499389735619441620396188869041499415281775299277742723613733202192574327181940285258793173380458886905319971991208295940882722595012975240927271800358162649859838035473283848810269421664378290301386248519403025150286996504736161026757249190568415896999552599741156953470465803285222784200481908406434919313365294659081100633498046766138313590165457842966251247722495417127255971498682033261730550752023714206715349932192502709462870989863358571557202203992630808908046101568424821123500849209211552089609337600211112011008768883535041510988115100461513516652969430927808083290367720108767893064470499015103603040984177043437832081670469092688210030307519039581222944410694432416506832068839801610143058350569586223234156653929851975001519580830486703808480944274325026007221870803697163059599127236787938017123325620183025442042129597015295010125086541394598273337094688225820065365870868717104604990566679212645838579144221873479139594707256495092804104811006452084130301844062077973396761262492519183600906427253683300041936085232917510918176053696886946557150382405036739264820404887068233647027051828804951765802011784928507042799723766762273573959943736264578032919617961267231711830436476778553498157969267131965744761161701720085912215947822139500354282209262130180010479719053142070041942364266191076399828706169338131319470342457796653322485651606852897057780179555244498917552610218835540990031323646546625408012503821024022146432083308479803637189004799764562425740711205241059650694141285968297868493902697469341662550051438333087170425333403802622423903953118119662450354336720881526897103093672580888893720951778616905305106031193976039464215994835885982217871562458247652131453461287921584444653230410236053275921844126608429755029205192656965128287761430245144051791694801934558006929578760081248237449205164159197548075776569394782168703936945674469397187063384829684010247593120664871553658298460136558476997536548325426908537386853866723108746827278254649082061842335787013791677135729239969408503329959840599407560567655617410303640438447744589373354471261714448510021348612894159480063149050613963981728709233612688965720291566042183361470284042433729036261955277572541062064094395037167176143421615025772537827115553003070011095362436529722323798210185544997769486420494330925346299841683717482621112504548098937010638707247579490174663599409448515864770630944857508510210325379620430898666199048709548971939777505593856410711330636258534430406524185938430656720493514211769407020305638076867314875478513834901279120422850514582145151568892469075620896143247793415539181436456873133988004202258430393060314458446420331600503543423706641752446818727720177982826900715691212480606826615044787968628245222399010581287276226199545430898852156215270358749697752580777782006578375532371424303376921851938923709739393398702648063168207078229314158077268427487145161504035635063409947106920011630839797417233348198001689161966176212094144097991917563114827071172186440750410379162522709615889189804175590499415456944001557921868036217617805674853777016985648140192080272614772234970553220406386290992140782245338354448754364505787124882279878123206460782020016390279208574532647597987619848445149121235289977688960424271720114060703316408877068704618559853154394696710851175253295962523561638928376176602386126487561056943936649597566568382122228115304979414584620481626186060523139355920811476699199800020725854527217187284588027882489766497238498784539451150554585386997219458787215066407714018879442235264516238397121222505769893636877985071333708188597669137147529659940471585281505900853853852758773224876181777725367435796620851601390642118253490617804894805125832438310293408548804501212741002975992848387046345820535860368559182178366357433153723173652886948087818408063025630972608027387078845312393448799361683441998470346883723987216801463051224324658699774234797425109158779330336965772165446983510533736038866936523121937401720851009658970710697357707092184059610712466806213731815335896382565386772852827123541360522618279700379229100860659746714732022001851444463874979439163394778781272367183284893632804696068924056252966064810722481335677505827138102029251483883431637431895328342589524165055313117163346082724854460392899606025860765438481835580182638635823659589419243022471119607016975913469708829378931456349658614989300421811520292643587169970687961108744055829768068244557417070106861758761800746039696247703864865932319948529815982422643385477402562235781983888830022186987635266066340546667435654752680367506507444243119014309183945482939297623139765361572549921942226110741491150332100509984143627100827719013117016801798365689432700991089689884656226126716071922052435642417880706464455600042801569980303884896408457465388346704958631049781515651781734406057952731698759017420152062649145775978490770773104119355274207714350819237371084761657853178615130851127996484740122342651717264467735161949550909329653438102786927497594184063018229559926174769531759989574682769387377286593049350421789835848259028448605124788611912064133284903642451530414239349798315718006470452183355874055794827991661048663357298487798941266298362850464292992535812239576643697073204506948562208176010671809407045646295814057226646964021360253424399951735666556460258317358246555559169694034620227940296456005238739457280890624677243827471741984928844667385966560147873244960246797516358553403753003691968692534417141024405483649460730933189562270832407390401844611109811357944485251319147834165720859541092348297592216328176618617481425604908375182562722072229583372257929882118802512263706723598026127671297855398877734202938542752354518752521510759258604716356710270368053015370300285374301351319001559344964707713911282226843360410450974899059049425256220503376501084142852369315692459124564071560574709955477661367610571108967741104660344407114224231500580260447770801138569872728200857336823177619479646014115309742677316915267328238935323479423812137417369785721012823296628780369287955367703259495168009616380563048111821971052256989464587542416911599607177222275804911585327304088892860660237159273038551767569942349474530491159169465391349579970323705080730734313270504083303556639762079026096938051434023056482877819088303567110879266005267084602597217264705321062789007108614089388573435495674622583093974289344148670000021387007236802876437886449837671225661447934767791773842090786436938599974798281745672975289171068330264411805301276761591989867259100929823632109535557323463704300823028657092770189678752246985513590395581969105643424044864109337679765485330840451614418844017979885963080767165739997649172656895107683586491591735689159340586327044975709033008599018271954163879771750257096700971767429017500127264671908683272464933506072717341744891882747066719262260371992390949955019464160647881225282332282948102511442441734636418259649856290765819998402736286202889409994087259342820784004768115073703268327451072776751794844315538188708012036192983993005653395152835832164215085135727432460299565978900219629396842401952588229128600331179353660035690792479585283370901488923991629035974405430427263247965253382281518022184498864281148774553504934484268364117489646758475448720390921723512201587332852685252001613610031965514504209236610592796283565849195854070930576507595898668707200460841930498701586125222907196304195619554836237953723923701892968244242502234677952442679650852225701807432811662515734780501642809620920082823085671029599577145354915903990766538851962068685858219626902065556410992856005242425284251139693195233312203261237591249574804133915209764136687580205422394117517813647159807855087826684657745555551917774389877239162999092280829927362271287264012598125614202041529601409232343836057410671546231787673403912493246465972358042818349172039116911773490835689506894980374207100977020860252845226524192600687669308026674949285532805630924451569069489186765324093797267375620753256391307572311947883019433910524760536095233972518673021040687778405055201684611189450830899034893641806278648986758722132448963355432372852055717967797783607784251180310734846426570525694140248834977789616824701753025084575847342741049114811488320611808520912569510449233685454775562613210867509776227848554233612949269610229337322626180248537522378673749028173408022190673228054601498149612724946475198552579864796973063726521116117013417885018428277592226552341529688745978649648399511045725536962685284191750141609862360284069260637517413722134654316683822813056449514050111234583628424383329716461116008995888446319028377391699735225945112074075509387693239924421062324440145496769972297894504073584455882419100134174734704265300112202358614315136965605230870432394697216881266343498343900477962618287068127641351551302200083862201728966899929631423072725473210203533143337159238403626813407944292406661843577309662890024457385321712914119205043003644900531865470997828131569749687451955943084480332239390272832023043903333174988700099804761572683526511543378749493634218419267282948208362343908618287392228071003200135622490842112412068547017690415228558147892470197170804041114154734828198347905596423229791836227473990578878237723376873443930045820459170907889864617956337731636755199346300740684301863118014067875713263752751567331421915132789085291597110615969210204117673010429911969354159543237999932708433265259607390449212167015154955188009618630680433490238149653770876964458654154878544792707089836442957208914844311823018870050019884351678365829879152339701632574757117319186563566051252295470200248742477035039488556120280769555353041978984954947596746693329278559610657875377689301075724280918024914956145632640846230951174312585199608052735402825042966512033096058102398963534434818139662190131427334979466855549352114753770552603604971944799837354933518681986380229801494892223193990550537165943072819444529854454632332333028553890572196469067266207585302324720159322888351609694417197806817856726022823623704665654600214631202560101318824793969670132715052936272714460221639270878587178688373015608445779640379077375986326885723545548282654407916020277196974422355447632265126181570757914743828841002740563617731591330453394347594052853211857642402564265522256312191875758882085747774434500721211187183471366422866469644206752521545519814793727811551313801463377330333299948568144472816051011713461600299401490393844147725906501181979467489749349279875687273776553830749633820047375031577231069567829956797893235750714531137922107382244587519164363225565782216226097637897744098837003795420463119249161236907441821287337712848551514524980569527829986511858353479336117784298122611602497448778767473782922752602124667807950538580264865037032229960685713393747398990906427170253326955771899438480378634350230518044559383289519850201193559585585638507308314755956032822072091905017663874789963290512785533442383161709395773329557116269424380398219895611573970384628810073319277252900521104728876015566680369224406073833344501930429323009637350057516490218329061304548453298458926415440479431476926103861998008321679203693304809565838853139492328625376713014326192091606347878618408226323735677653938263710049257492534675113941588134435622233086209684520092216268940530662274097869915857546416354572663043290951117474484736267023321134197269643481677988041788850330083725838411250187847577901365566813046192874956681902032280738263610890015620341662424080980060254939141830820201805070454892884054650851211086065812337651116790456414121249326973211293303451637206762846720194783465076359020674628355134379002411049212166411773853994288382451856807937756095727756000600984322741123096024612795176553532560136136610844577821652724627451297531979098748449112861751490645193928525238113629897593696294167970932404860987650846449314363256603843964856359821712240599140124243485341564162750043112777766122040498019663426319962051485376263410246322803240315681833147205029598861326831665969304751978924371227654804656141835921808430066605274753746747884292777117358676283911497083290755428501989717776551590983823106690334600201315109498683275293674548177591722995555922028738863174421650557081050975515934357662214024319268899082260772965783207516192959820732105256280281164611579548212089872132767371274844782133478867027520283706800318710008583685825150141426847474424467411776208856776218396437528655092406577483471192452569628660688100464927903929827701563460318481665932558786690106162079223654695101009431436776919207451745973390002935117967268987563122661224622451361843945714204704684313360131858717080568167824227518178517444360841353465507682059555928104964743739234887602554094418129937651432016575996938805957248006400580908931119887357785055349189926463056919192459508444141962841405865826662439285327114607593095701383738553239151189768101333590924740562701836926571226978634909309525339084991396228811640742823137528080658686757577857179928968515435317664966394245926142242780156521817379329400994628015106397704151778389441312963135347076938120347038437234951259410632485217859122282328882730487810532932134014361762783289569938210979559274884946778715916011617640682224407035263273754519021780784201568894626729834675548255028966450557760103915091690321011192828444391337516756528189313174635526903874979063468381995383661206680945158330210054080585521052157457677405703541410671357052638323600375560190723787861943233432237890383625418428504735482456813856417187359430023251800622639292656613220184476837874223569290819896541521149421357799489442335360084858747061720562857686980243792170296783940264034293960480423192669983697679956612553640084881882262927667775959706868273041595645021223271170392797378917683723751544588021654950904836676970423049876670766285975261906852161642670642838911845445811102441517580498897229145948824466026345116601371175778420576384011071976351923454760325295464588922807937608355440034241553105600116394375630547175902331113536505383208919736890679202609054825401751766751275887978335151884615824656981954670943577552014005932795050958934898413773542077361390040402654768211894632407399930741821123155696805292594724848877547014294250916690115264916332337816027264524501831620631734327872198227382088947324452124454371019595641059467906892614882118762380791727283558646176614259681737748911987606610528291576167651239295771016714323577884310063215393928550430701991435769331434139942594248519177705653561822125767678040195678273028919155312405278098035525290610699679096346131180847208667616148183640747144458459726257054705372194688587042337723381186765962789115323600811440628634606433694426995875650574660799969957383536552333979530694938627488243357712993841543392841489674668656520112154303821025094816585857770435060416768348001828446476822343951520827524718155432050666780763094395981178015457614904690414929741854473633194926525318434777949666450115562126570193553564226066996295830785796115194518328252970109093641188136922867726976541437903139399800138214432560382446906170883334840537356437215581944515921233649104101508535572306205187226151882691749051108939522255545786112844210587862807203130972856853208671423324778326316446916504478709409144420643169281549414028992428542471003060044763011343731229143314970721671118062562220977162082911787230781942747612182719878795904083340237125767649599021428904787454553636509236775831345352125157127795100766958852457332219916023126304102841589418507772676377851252897067642027178152171534166936802462863373210625379956875009979849577793776674085089860263235676299551826826900207184605529025306164631102417179441187586682771582859162130627469514586186055919695045228503254433695390973890556262170736996248319169128330325704850082781230274142328808583166277795554137115329419704348778720479409648065258678297262855089937124546607082238839220464523817461583542883742184650722114485859308778604778467356194557318409157218886111758701783398354397068947274827242403941748085473219309574079706793445806517018407598899819932011925944911061578343587506562077673821828151365925253361505366626590473167263880212318728103463710270879639521454702327550854192179063572860339991861282513567458561689295374221157125484011567847672804407586543679035783578390352570092876145551593793245167867743723611977905690902916057754055667053727246858298569385957651668392605364735808239459981104785752203759615007060698153634402745495638235622564003702087675442193249716970803625092756392874492811048719544572260826206999658992643524838663532398657711197765729285015635614068213856523948417281717575874482026359025544604739177892899829620251560793898462305115236394782553723794522712913128191375412640573321634432181213040766446439442413404622715101539294832699085700368231604607857960486212552863656969345109831699353322395777534461997655541807904779594796857589601284653437412196861738742104526793731573765623730915241586056610622805405416142421590829690511714075618356675371039530129544559400311216673768066998000420743249622174443778149953630146206930975461370267455316562716604356321542370313076008762876697447817356794645039930268132610309049854681613091765332078451253398538765995095141780634543656088648816321834438694009543871375191593446672742739921263820696499174194190496478214814511530994339227422105922531523805448229540939367225696883727705311492997021400924854234649946158744168474074424162182289481792926915171595852299967276359844958239358955669333072055880153173313001495334030040560964068471940839568113864666636398299168291815075747223367824737133928715112100033211261779307515677340607138540069824285109578036548587614039246420155186563624995259785218152984237013059930610806243351038619277608894668484532431444435076845066927685557783935587155610112830677247118013563357155781216243790717114253221906805398422717909022129614541492795276320685579227846664276274176310897780456284466016902702006898744046254016077372535260267084192703582444941900214977976034797416841182788492891105458114587909728010476564450563779545364231107023232483895647067544297138624282321719681841615204492364207238028585764544716666688936960225989864040669874799534911726538129752126554717332767266454447636210298392567660469642594237865992882069652301200144314322754108835168607507288812856220561679987530931354039871093424909392142941967470599691251620132734004632144102240936325728534630671788857305113060972036008932020261065837184886104095997174847393364355924146259521504256847656111882156447814924871072929283988091622334457938280143017884601033993854489343755055873963295819730710830053242652762710412731867068039378539703108792526056897097547922002770567018912503577604792143125443798074899933391362457087298893684927604461576270915358769434609866136828984462153522800670117005281953820792576667387509635019309897114197050741155473155450969468343838029053327627777201956688138666824732981332899589256021039374011007246903562751826234340411157414604282978656655141373283157101380966892122137038287804927478597405900634445788837951588652691075154927802781385926806456095800591517360590869883777834069891799589288513959550181900439047448249158786705252269723362827939173579142535247662070178406635248795238540876975658384085296552265278651527782681238695991190645447225119518629314303942584225102039327231056450586274467003142984947094216547839690744772770399535030204347030439373963073328465802544525382552320287105147616008038338961468645919763596299730009417158458371893122580843791336401158055946044924272031461635602996247611667654486309151026055157180831177983675215080013323274516655434808536874980502755451371508228256868843011946487994238806169971690219550783675990339670268743890938829311445819286653542270324394228606796771050873532502301022775233627938300484221158041433137473423855677362893866589724446776411653932762083542912653738051077954640618562343825156197613654454925197892511061908919431007870142460473222652604178901235822471617827230129182746082649965990014385120021035487841811719208020415949832493656628202397761485826115150030770346706884912063688173528428583694036462065009531414853270988708580425253921630239226082520673233167900211767970142226128724172364115501862409132583170649452478135836470307866337452535448238219225779241089608896040024068774337668109895407675620314225556092494202661076154837277595083037232385897949205547810061397118391839143036847967895785351687116186222197804978832690968401241935608482869975174062714038360981412449428004227997444191419165776344621405744070403516819465151954518881290677528251702577204964856218589058631290735882767362584196217052109304773973392811022580238087895553456679000411783316409900507643527419676377039808329789986773999691084931506119746592344575605707909968919745518279422946648105123041001668495145066068618362529007726190589757360171470224183650716298401710146585654889754135854708215505870989409893588075058979169652832358238577165859754494805706002142397275227796190579154336301807539805894227988691698662583528360206786516931025351729715115574670912656814635270893098824118814003443134100644051289760359463555998730697338835868860765486455526430724181821651917585776692564718272462068419771508502040581999981505163472359750981562769145527284882080176300638118831992202763701622086773437512023662581648646717560775484543636045061461088594834422483329163583849894744493999215241948249473409084963197464256838884751119759585752155368881296163802040703282879447810355336946121412576617607542494062207927618311396840486341066565386308330682114279510330865238521479329716838892465318114693882701193504129569248274612420996498751852776433778328833823482234490753415536614662233841600178722209496420441470487133873951792912811792065962671396785447104486484453767555687904357707972957916969395195253419847082186770513654832659895696698274607937594628565924989965468610027149447043474345637098436906375070280824645143618545629964537985769569096368244663435353288906754894235362381568836234225303435606501504368273989831280002313521368591790919879268940959581734377799357279812861246513124539857170497692567024533791350002350882422561083410927008948198105496576173558120727339804501889968530218802741788139957020372880064232997206135036747743270603377360535844259350564553682583276806906026543166291371668415930896834015819930397274832290763448856641086147317289027621623247597263289601590195853464837257458480628257753610497806529694732667993209119959372706238538099090601915239955768072986202499880032566339670320853387681328538834043610270036619042835188729040567804265585395487348045954851125944332461906707948105552537648191178712215982936600758030534602650588586718184085232160233810304237435667883682294258345338540068352010284914534288402873517033328179083059447836427479381345816783005640228631922161233711275310522190387218584774406967291280995847719385706983835770258817716974173374605962214890714918666620954251731967444666410465893043005441772674163816274809147441395832624177129338025521119280019070449673684294377943011855991388607990299800687807135323181417054279430921346322326589620099857854542991335522043261377063502555690951714869631232648781800838831260528016456666549879260028734451196561997157114414219460045941746101781776579371593274580681776147589046722099682640198944557819725968483753516646304681575340992407575567044679103477117404431518223092714527633709234156658881199135512838600913320577395014905414058507190996045256263995656540237456396986777147096392323323364673011238835847018563078570576720093736558779667327696944626753311017340339613733861704608387400864958155837701700790947475634077345572021027488767490424615064915656606004523868564111996209814069340313998159304649526588202787040800134976267344397725913042878084130749219827981713897523122803181493071978243236288925825156889759996296615077755525462169644573344207221168040749335903296987252510734583402284208543742312961718892242072926704183551468751270969989465813417153524817578527827021138684392963485634983623958696200697240201857410251481684229743545350001257412496765279442307556599556792284358867238907003300512788670543751858169485344951937606148141514083588850878606790382965835892582975970388322304818829961283276751850869769405308983783063371700959480052233110503603163793689864836226298520306288204188410950603756822124838141207189977699927629234116655727505911752965635966111695121583485641392419821344756179892194945388425213365077749046040969421758047451676679923175439966129359989090526561108592770183828981699480120732788989785790881640651501669802942157504835791168643381676099853491466639168453302051122626636753416898364274026567545615746794082141586026296205616500383652885559837296684457357617579246384332065553779695557704012639546240064871006774294591568202425665772283394979620048149625640017340126710169154688114177737515090945103283340364808932110919791745193652433250109504220437013503062350205650254163108407240422798640580209579405846759999687531739598475551739955067263278506789846226460249232239165074786286226837427314410610232840490422140699064548680134821636990865684554830364046246726417539829577440563457654042517161753807810677541925057863771580447932869434102632824591452173160486823085905050019418214925122155362463708215477866175636781156850273424026786920045651179095414595803841808880126480750881795521866868311387355449569543283542866683489879037324014007940734358828682605440377293624087046745523103571266741898728848544870857472844608089406265251492409011385520078547283953293861192868240342060081510346763989368080547536706996770561865995930647948851679751312757558045740962065253136743442885472299962906435183946044024659115617564317728624718561058719557838715865397634200874041666441107641131646097168958487277362757790047465452309260397436294638057473081748540641127869830314568246665531270363146928113868421482809856215227016475886704965267426428290046770484037716235952351989270707404274299307038921063785962690781529697805375426528742017681370358234467028375480849736943770247083529401919701705780612470916934178315082260598729796735840722817734589107230923167125124970504973451777010037740718863828116473548749235175209513324529540678268477893289125247005547915343821655825654544129808989656594135237164256809026144233706610799706379280760252550497801734434909018241089302266586933578483304979698417596683364348296282678138626478976209027195582615875373562469112213023229936931765064415434935321351382277436537676708117712753155901104043218774275846109862250732742054458360647289375038788067828990145158744235253095561438267611526873360533293783012563097350790365510909363602890450462160869974376404848394970402345801091944688919759744595237937564202364740372921352705614870630374725851297717260864642171427938840850983139477078181910673519799154229094384090926546864032670060305493776095685653496037258356042764831596963145633050659114417881633284924850644759382776254754775451508951474722279962618472106471730646967695784004743721994307118290220991633109332709955219164128642603702883826184118966212614300044727095013585648329370588642472739828655202030598767435373740519106909300336703589634512323493318856782309659847023680247407211123962470633805385317009585709217933493022972232904043811837994187458361994919326129735408264844699798898032954760777310582264304781089669668771352935827059823947451287555538930739135454036030554386038535857394829815032021040413795979452884450674057017445239947375900281396396264677166851034668896070784546444433009207615245175547016418171215365484338868821603180473321032542102334740934134906797264803028181167181857034483956781127368621357908858483709612864224118797572603668727658781154757994817308046208964611560838061517629943975551979717577092783072269137233357231005423282834023345049556502113807475959139542804578816785261678323548908116613623878000233190869186438280811081409273066140190276628296983355322250524911575796442646293600072656061064750376702046044161650792801391077125561463900874181138994246098040403576919910587686027771836516650734998194664011364016213790014181930173375661435788076246558039984047401974720341123215779673278392387400987411974687323506994067099984076651952174546059809253031215358937968894800286775605069404120040365363905325455147026771883916489075393350241979854058376878176970193506284821378369880039495791576856226058355693149649097897826020593883262078868672158861224440359191388834782221225879304391203883538900715711384548999806873845754731321874612090995054117327797724800452389472443224303456223620525043890959339811834975273855235144678004786752835691389886558782071008522243105104505073166016894739584542145369097581410653801131588120311358618075984588957597701400892825047936941192447442507848906948432134630265399762845969206957369284133643180473933193482290188759398769742569029259604145396282603814053483838169212691473631269289353683428270870036389630165682860276920778625683758946145935130531413206932318374136125654935188021921625753842609639496886330753942294262007304944130742101510151344196762125434587059286872612779558728241107639181855927779341540303050162854003907645610485634949234413546409670878907666194693997725918447218585991116831436588957718453295016402989455703221634657854925237292750177997840387361583636726517224980278161956375557411023482432965970432675718664074305500127092084653575031060211572025315434465542557358516497856173243112868990486469448501087654703478286644208328448847743350114582366200018841362617692623491348433450688316722135799434261920764939488878730526249003345948301034416698456511446880254449998355285872229676387184125963395977877410813390619719010820991317342772565736229155124137497346244918720110900159677787390121115525606970791844605753144786441790322943678775036789291654529331884431962772347717383364507193171622726542575210278219257365198972928222205071068486106063498523475621153483549391568691531109639175181120557112924141133563377011063974762043463404335409818801594293370620089317723094499586911070232624937545055749163092670735388824356195296908959853267047176994535961024132661740354727023238242112303073113986517460656537609160859452593957098415135105579976301819230606116955381222912164080060137504450103331419293665772280068157035485766789700205175053769354336407041299408323011327367440518271965843109782579114146544000236361884467680690894695156431379858781060608109882521233950088923704848619761856124863733513370865915970120046400189883839345868499143628160473637384849795392303393872481495910421857189855507094907340213427252306120978846240826139166086469072134138018964452505592967278568523517690432905494478155561710679042124457014071344266243153072221631307076955988411937695297147040916687789140136960687634053433009051772843272599284110193331604463635319232667165582684880787115857282654997499534339163022984721038722026651548934895603126711112349678950381789006582664072874832614714585953336110750224392827447731834917619402315491465073009611174928132981680229020562558134943983908938659590621134592722554270997266008034076528047018818152777471538857012802671082362835243318352376785568774928179023476353191637054089248524962153574441513391226808129071124924151886315140074370365301630107792662018569431354790582727197292271587855043888086242764344576957090283876446796396477180724032615817529502228350780894544549635451637861779733755615212028940080510875205298053107749309780047056102787257432423609495469596045428147927194488116062787162708798678688335051206822147540858469889990317015554280183061868639916703017943020938533150496902091127263791362686610899341695454758760865192147851013009414551593956315696688199231559798206265458172472845465418925717479211359736357964493171819160713553518292085906682649221187051600494448171912755792841666329812721438874956668441547423641122432266469670018128534840792007196873923114638966189042226934462246495933303706970751771264913375455860906794349215406767701814436616574101162903086443111234909908476612172399557117545579371798386145732711694254158771602220224463153697029493721029688198181097399326005889458321930970397800372187282546296923737234479094546911325768632029400700733613592936788697893588567800947714283930349234933130611360580829958410046147864851583218200976034730327669054212671554546628129541952078217265068746148455184086100192171532251176581198590799665414346623542297177828332455736408744967145530787007356887392601139697455454236313190978668534486968021818191848710040495020475213643577718632729719549923509016777287494232499707213137848538007061392164040154508823746607545078396748291556538322510454603196963253043877675413781897961214512103585082711048589538794977842713678473612497719484777628876576266469368545511487007980973013196756728471860727064532640820988638204918681505592249427370293547633842682069171175936524888584026647037322467299380794344582889113613354323306822938871567730744176622185672804288716971619213041053604260780101362529072612015718690273751714039113883849217884583659467425200394364662387346188665802371632114919154913191790160479811512396880005683787725206366656243384970569188757004874702289679862951442724541292626454847291751680010681248491024464259687177128333873042584426598203010273012764858591192783218926446386750953843370293675800839010451303271574144389405050249536580486505008088278226587135909044567434992856536635051031743858760491474151430451922723358025908535020789552362785112546912071231516580083767661728831465465233874648837406270767324649254500695143934214766209963759437481795759488126733515887902890056425336620084373965214877300645809898457999017725029636726206938147207111773827785347877803596636546275962634387119114579774369798186115233313190883516455006815526494422668579067219454127756692358997523892320315682875342793641353872163245474653163349968223766729222028654118091756235325904470747698985124418124500465201574421487180090756396540787900359653568213487590957832915012915540954979251046879899602459759671134853380332819131179072533852406453678151590173335419597880194142107562328255160999301072632546776859909501114944558094787487318524340275883352397110220387261436655991945166712331461627466112673700214280853772405364960324569006068899873208657329724311057356077731064476490303065077236165653502618399350627216001653783306063832387494697276417492050348042600621675226184004719603183087975099820802438403733516920535409331368840499978302804510307175425565084615394584654530252333048733462951551595672470619588072195645341983662093064039429579033946591782285804431469978344088215980761261603220136208780414923937226733460413791257057651871505718948763688643922463747806159758474146109796381559644662729092807361288061286010424426570558254312331635412577950395980112726790566577206884595990719330587515760616783281385754517434376143442247314785547037626755472921075504116750660069526681900004544671135629587121587932745081569164096887752109573828083608734345231350284437269658806996280975567142124649513727075517149786663332243569588376488437511265624322388924231807656235971826180404556505041455903074853708675414267287096208947990075412433923662805421711478621924075694278649916485919215678713394785238346289266813733914685272894904522473769523188992750977063232619167807999750954935237664282948876466779809630564596589830254693813579808298356262471661650764612351513581231180806962569021000132261719556499366716879480125753416373242458861578073029930244816252704105793649594738837940572821704907450167716682182211837865867192346595568365432323878988844054048351365929370834712203140503145280025304346730017977819879597001520926403649496569217111614883908168712377102728190461103416893118860254025785963597779238067232704853156641045365933599024905634843820655558056460414293358912642507950415132762146155981912815842256961913032189846469787876600295944995924908936742993303865146136773955344654492916457176209828142419064554051343178771432086038702952923081515252620810427077801638018041565907738319941493198739884581850897398667788254594952576140155131246015709138449347177155596653809441635083005542188397249446367568086358083285548107838231940918421161279563121719842973007920493605629810939875649709143091425046117137211496095383396511052298767993416484608954563571397290761019043102661296758556217182514413138453252585298889927131597661344931593851764711091249082312920302090625957534329927764409875034856887182357075606208934813986465821150988894423625861349726125269183887345833165666823966604565247110966643763173658459279119701440565644837690875479457080683438315005607012271743484084919908328401347072032187619392782248108009313702664587350272716489702305445788270627152484406291784705107471608049501466991195617485790582626243275426888060741267460586180008558115319816713835689033161468646116361986134602759878969206653078610578561547500509545751338903697650032708482597212784825192403879176090231218120357628296866757077601211161858989777895857708535987753130486934700820945699199205843696919683943264251404679774638685212674973931452460498303049383370547417095857971043603869517742238196940746597817599241295880657123487584977447974092939719237400261513028722968679313821365044029746751834780453730301125787163580200899219976839529665610184390964774842824610645325481596796776023785847072994535573243346478952851165141701207093066843313316406416188005654006659139672053466716459164749143723141719261242904979989979309132280182143782573679637783323073169860892233547511172927175066987382819226205974039988718171217070502099000285985893588053837282367040514240258393379416277710425355473938368791091815456294872355488292624319914013600137854139567665800737183663380484965298599472101637850115831230726799559783948428862523735984476669476330087666309671463012612897262635672013443920742787680420914086455623199878842178945462820339470681228213000243964834557263449955350536949740327336709537049736834787276602570721766688281854812959127375207976690931487877778930712237836830520237960482168927085630059411264224079006427190180467875943005725109052120829696689588971399974892726532963988925653402430030027752439077724179949736216992058986167359342266520981691533692982760684533134850961218859485577776294639426128839840563038639015914675141586545966749844962714756907386130886773542305439035944109478146224653757729894715650052963168631319598064742007206235302635540368313123120693628041879796297676814601917599141249813300353741733010463807169145731068493756371768410667411050485317989339962892798681646801080103365785972889229893488033968719496366315112940716284728552624058403043921568358056668244690618010256802974913750680745360333207524277011537485055453670542721127057531249331865613947927160684826033071182092124012258671946230888055146083004914992186913285362063069105391830784799164680148153544272487682641615132497468260699984330389929571311258351019081075336941119443422377749149937399582403617539058715571646827905525623404790657115123525734960962119201530085836670139331053732446358712093566522468813490303616573883279320005998881430926159532876084402413295236884105738348153419616426952380270983458514238830801552481714092054846265218160966782751410461311788076545318297468240273294051523852589540547849748504607055627989239202706556677089870092887548324173776057630242460353964506558088029814344678041515876748597990933917211192422753979212543178216957327570202923086143485582403562753497279830784556739738626072380664942376141228650509617017145316006613455006548333345328423326105605506278488812054955824501608783602373660098651856907091739749258814450109359059219345186720879798114276904006275630654067056656363805493856777948749857128565480356931380154401149255026157545677609910909898893361022324469970972578133654864404582349187077603560749639484700302707155590652930810237798580529041001594571223241860807428928648164514264221500394640456716257526039842729170076849828897607996256679805317883608553364649816049355542355831387064349496041854003911522450971367165943375022909715948988810050421369344003330543809890604020694448236673086796994123327526141713633245419935368429583994853540520916917604003914660934246825389696509425424453330432599016142438941002360352212051907036554544825589189860085957089052827655221043835459811286542029260330860543998628847348296296166095093293860899833547124923803562351854872678271791691325973658268443586157151726698967607206403687272933608819087094757252892537175394421690033501190477461453902499837480788961007467694358753326521523044816427523127228627660223910313982737897727329525518300703209770641938208228393390497030722152887607373836619357730567703159485876218289966223876931021412886570378801644201688947446275332976792201025193195468605461936275481082952301832464831157244275993566975728113840590188706458055293082234048023625382094001469749336892135262604831380828829080654199460617257781702206027908567584155870386199916666759558335652617554114819325377163761089942631013535825423428167104306054327336908516485171927530866082343680100476282479025418875956394754443801488634744061079112678388320952814776498446570540376385318736644357291759023491412024280305630207931798928482171417882878392202005897572526329624768799767942097914701504686828387587328273172840890693110690266129736027265449369041600401144930392035606682620632647247713075567774200818930185240776553516674967833475426360923343690586598302352772506231619662698647698874177359603354705604811900187466464579598429743122995386352071093725223719655199149591944219961886045454159864861192850221511595360283219371421758581353600006597370482745526727518435381428229723050876921886407160015380687483763832434865425617208461366882429271658552192044344005357250115293777616672893430750634462047363111668560497095171601113517855194313596061775917438832302866583460214572546099193537167940946086065227773277262091622095470147207195443014287982625276095387914218492191129733738876177079050465157343053388433934446378186942609053905543821762284827313518972871951596730702605159343288721961236914140739367990876129578329847127628351916973454382473867174541976733999647506086779443431220558316784437756621869333194562496687375174095985166080535447195017823634294329304919879557865943512436097291612537752003855297848933456650721007937474010735533821063838255774306619561316796178374282924623211457145953137264464005775118181763072575141455194924936608750627070883617930603113042356383310499573646133690969529733651631632940209299429797933447956299858862647389237016756183617566894577814859309984966588081774028081698585702982181532388924004107246213735809154922357879049836599902783762410329053320301329856543228148339566185946949089325529064108967964150880535397274911753358624365600844235560711916812374002064677025936717220823045372874266899665493168717888877628263560679842884445853545481196885255757830035209725322598853620675960239075372574829841166362464651903085695738176085086932083099525984404035593227766562291605891501283606550865996580626365334999440704155964308293540662137059094196838948003827585171084410235161315724676190981980669344591395193191436335433455702380948214269278212252190772502557164863755243582241775009568543478370037246783800439241711574091356337885282491975741583131064148256875634432873765351438273421591603598765031252358021386495712857942133855613544852849331886448562614636074598324342251108724338361783618431909894754420529178078844166424041760666638627191163608028312826879954535788076462482167228931670826914837329548937751871900592355714089316149235244366785636374871779328645828655894043161745684907341494152564027514145424644295648141391195983362502055117521923891167745498783545944304048219833164136391931982758493812485731626241813195697039759879646871067515586404145398159061147768673091379751209592666657304721339049247634688406729259661779481548682154275466894881189699804028296432210650591729895984658159100973260141780557463390657998920225733892477405941833787784704062759708368180579477100518512862268594332174696932683263205908538049914356900842015628127065099199720282699182014719328772094304600812651422516053342222826050724223484893240283708910861825335719879656405321576945458578035604570354637857379387608350181820298848427961688170480375649347799652087112279211188135568365754745066988385535974509231356622336979334922842242409077536960867206798536626760181964201961050534847377985768915077676349548116190936644024315640750166411650063538371639424755006011209435455863911819508490436659071248110368955079941008171135909156990261843331976868866367591762764600848708548499286930170015175048991700734727098352223725486085255955955298142601469274169791047840733954575966022855550394146310487867740697836684844331414484187469205964210704035005468239725788922453127639387169104844811854769118893325502315576984148577192104016577521400164361418982902851686549116375637805416443390809189666174321184517989033351884906654294880963729714384687421159416075894073478837502160032889779356733384604570529700509834791057098347662842618681875827064212375326076664575132170391037558444189418644392325960263041681301976348434232701469973707996310862142866530600328513610844493476951100008377719923655633507880790652887207903152492689759631051345916064781304410833491658138941026498137817011225207877998144289804780721900544906754978316504373707775661236003265260507389383806478905942331376120482217383638999253508140598639330663026673150177991605677391376804538503447555825504837820819928590775343733632024934652886958277430775265504122258264365346901656283404354400224835370889519836685477333486180893697905891857353617334745645062009764341930844712327626375314629225563923276086357443542997209720707593852208846246894165493221171549457701770405857837404457272111828386836868432387506843963746347933207346981057416936355601751940394274479169575505279987767559152070970437206128185744580810145652193490310527802895342251307611118298510300417985990230774880391190719891512662505408508030778321944407227934810538522701525326619841191235116642861240167831407916409725682886725914260847938390655439150155545368588236742153206698219444763141476028613216558345011339375634451430251847569580240893655864907023675581366327343758922540037581858776285452264271738440912408563118445847106490728344037834751746397703845764328502303053530783753705990316870169992648494569825271733917688208939628415919071408809857594000269549460838224921100233410520030162373919578018362953584126745722384550628760491380087840195061645229923121355652895266701987545522403723112110065134905063775191920756712245336393987929858646478798982401979116392718585335266397931336293083394844860482896301888767240880483164638759031443015468433974143252069514317573376547544995370576782290992402999536059105837146835607709812441697682453954150347566411685516304305755542522241700267728999288392372246343301765308907650973023108061642664501233213347026861159235131371966184218322594861731540858256800049331582144073494823565219678050653325926667781759135960393328739880167439350895530284679713961523607055849483151483304407263061023843686283239078029905516378245463533908998645229178484814125426835558747807107248744045318509140889999087933323397719766513874368064371435549370315369049169666060336491584208804350478239993447185567908019049969917204136437293481259579244836296171160246749648853719612964536092404745761148034174821527667137512859379779550413004302489358682408099871042583783441328702942389087942201749822459503637240015431694801003396381226252609749635133198303508160825384284117260079937409162754406630906326698463547599083605597035594118281425480173926278562952600890535646033199948362464541392401370876207230707073585023245367672250564280410066673811754214722448479022180816362277660373285540432541035102732809659180756864253826508160812309195160316877239015138656094833201197486379547189001093706474004546290074379949523294492688752627101325837898031950098776746895691944081353775071504660520409965152216814669815539684283776342946700746187330188860484834750733145572996053772321207447543185569609346869175770267487744947484731275111998447675045430412890675140331114948245600179854448710061726207665067169144041494381721445393799566652440432894554627213503750383048266438974886101919791884567226695510142779720354673167201922746437251949607823892978107482056525512088658380450052419108979441571220948380974005786507421120803230736943023557918644058789989904085935326364051673807618383761955820352026408423616330570950325682199241203182560214585618792959998641133211595458635808951777225534983447293779742999148972966983738717997327572087093964246146854750008910043361634986240656582283521093811553758050635094754938678553534461324165535188099105695219928433406550373487013724742331922182949254318412600084047145441768062013578665950784029161992841063360644591917909931719100266219049901095349717045151010497294463144173162874953973570773720184685196079505510915149704611628275314883078405867409518696802748294751551446002818042932975356415300027106704403495411663560639058847043413795410185499532245251931272156375905924318718564495477018562055483580176062165039452703869616351072692747395056973617617350168153190406713918244363402444131136143446494449772240023226233513009263814629153959207737877146541133378631648934411266754775320250088538006229576498006612211627326922958317444883084685577205518799739661288676791547206154452522400998339295216354914687203514379935388120362837924107335576933412218376234821965926520753561629633451531554736648768786375421375546539586513994488482015535721026048641740826896219607067635380060191223004633937105966721779063558214166034828810302983850691343826849805194305195384396385360193132019829061614660462565936884381102131767906542738605592620914577844770024664829414362719645613063665740314368535750090956811654934392250729266847621202099634302109410033228567851682388961108418757314275121121105311053475414089575876824266614946001061724223959302413378682074097456446075416673280517086012439103655444394236824266267287592243440151682611764459334198819490165350655042376832538026446144674186573146473505154266735378205696607200490146317239821918257423007612060277027058194167994184277508715031857088598684109356364981078951912071808848575982407198466601370887265555353774500312900275894063900125466144312009528906045824475947867160029397479708617294158950208857059978877272431049727504916347831012334897298445367377111339143747464110721520271505374464374002928523445032609386453063391014241798586545799327028999372540270168607470131551065035985863825867683451774714960525208468475787100512725119618743276367323695865376143362760735582251391365562057364892315860191732689926207312818242782050026439119679615831351887878179747467390747385738900731622982472415548818341510794861643929271786533352869143201557480042268184468207374543370491244015814006379662871306402753967558047469274076425686673343963713609030237196245726001013045267782792676283532550473114160403698844221604062400399768133933074936564293252775128595109841563746854173996348181755243169659585752238613752226330773750414677599405250330064802610882906480467918112426337529506513981627676757931909613085548098999205747356047662418532337652182456451946372915597195955870120789825592322295783149276650484200399540640126805442909067107157441812150872926404174588310167349966548675245349846523093728191458179136451897199332493575502018457808503915982445855273602517187056448095435132033632328858827057232603647872029058750508113441417087375832431117689561689307916529223038617680874503596012609649498975173199851257389077508488809876000848451066575733645613735187987665235729349042540906062295787499528347750612712919537083206535388875961009313938792639052739244247110620920857703154716902680271177848140384317962945458005328465689256899065714076442784089074039679141696397558391760397282780464104304776123478550031127430603487398286829257315003588866721320704546009864754305041760872066430652653207321928181929629740864438764341084801151134942532572811314517832467837552640866164041289868143745036306127771199427139850195455517460857277283257677434592159117296102006064821156629998229942822957187715783665838415848451700097801544042366650689284257834605715298424997071054951854240065803260808192704229459581723530317111152287212964824430231002028572026948198508330218527300607756092202613920728343683532235465483838676836850934328726560363783826696493690506059093165351046365566520544448134140925501847930659297117176573632064556477768728981539115399869484789740830722053955491818621178077160671149192193980684881234183764334846617403243249288940088734179668314347730237317969886660235104744352092584079459602987508190962036889098828567890751706161001448984151704972168141529394474860912164445672078532427863863577665183252464845677882393248769705947118411032325003604099712120870139087269588596031397148502779522903996228975036872619753182055221271371336687467703210510225550139332913973164753101295979480773457348857778676136650902195822994126203276962488187574589710922789071832092031430206933056500943640153757253399073857859342748017265127205033990392299432906585924904227065571044981249709292260633221588631913732421079503012513472818990214271418060388226528351944502818454098728869081107474128386334383491445651902028959906243188160525348826941671679653725774550939250218542289382104865756943631738713256237190619452242242729523307990844489034030254588111758215811059023834552748382911588990867227509848811175981338519467258963000566485057861846856317757696336668480754517722147695245165891240399469768262063676567888846286905325936073572477178721796643920430030216439506146271687096748118460217367818699049806684589165832669494524155852265793911733358651749021053144575311205950234465682356906467222110589485439065711669837995588250938703277238678016328049490356084758713457008293286653743767474688060323519804250511452294419898211068151495566535975444088462115953203352877514278983712605215148102078446133834039542637060990100068900526978853797592833115789795712688997286842786953833223353300986909342068171489735717914659240862188639403683884157335924323760113496874833404766371262996210020710384288550837144175909686417887010623324625048192320136638967601072133359608905913522055418416808400286473348962874497187462832424763599103696615628659545540433515644250954182078436831387421921484230046513713775158780384843977674020167560869614926106218565282947521597688074489370140463520585304892608340450926772975666225790522301371079233581104971377024518800898691215794624638028252074485371173294571572676470190329056223663700672571602586501383544396095923921274401172851219115979004812851116750525706504164962552834112306741878356397518555663826330573236327710322307892487840901643570412912011900205154961289781075696567473282499570699190829241007219636177332407204257071239579074206791273210823428323278620360983798581571648374114937013867670086970592679085740748564749158539822813218101520730464881585278022875603042742426976154618372442662704114900302291056842002736137106954060779200690745008522912255124216495544576786726335030343597660767425030684528952191947448466818686385730643382067874056790546176604987369815200517628854355215458054512734694316278204136324235650468602704237481201241445814173142897747408870704647249543234453662236949349318540728265008124035560378103546048170902353975736200875601638628716983269459280277892557213470199383602870650996245733780663743177816441168050708566348660162031510995744002432589218640036069089865657373445113298782317857099961681401234830929538507805181217045816022194265364466439714864899516080184397556706748555422354599159252703342783463926026413234295616398074467928641911171225004636045004240675230607411380961927307814454814859096406471627153060753079998087796142992929338430652254817591784978796856459811569423265501356670097136188523906187426681757578292639983904897843083059419782133276004206071733172266979881617975670150043129707896252423086321188941500863016617344323941046515551393456084160135334194370332521453325649581133439330817040404152628965953205510011401367041562643819642343856293563314748308008527693420737880777811542058719844890898265189514008909025373124944373856825761785802690448570184494787592973495773162471470195740401362581592253136224120938366371636383533659150473363789326955033554841168290647610846009081947575632310080743412150398603535128315480023520518363833941854273715315021283194100529693115574909845486796738549954530438694746387057087882453199690210726119745532000081319762272024811526502921884316668543748648278821248457186826178655554575330812271179660234912322661919878264722430937763733541474569324715298203132712640613170690091491692515058949381305657045853264531150225903675638668972982608480548491831777367528971823451748469237526990750706860915282685726397303820947757371154082554112757685990042517223546358428958278499234577559546107812147320211735269033668071169245093112619072495439977029228480274183633869951270925800160974400236659453066187310945492193879891117888178384495580550720714195710214736482517298389434451589298173500994336087874799180322062012195202971114539791864776468589771074072860019744094572436352497499279319395871441230808739478420711869801844487888314143150058720269625161432949965419568669411312375492096591162330844473964819245092788084523905904962505232604044627134081024239862608007763636306618243559793155773608606802813845856133023454987928279100295878750905083559354322689283164358833349792933904746477137350069685534554833362526738420639747077690980514717119537211270973018684419499477328231950414568226632154993171746293500736772066486013836529926516899915559670983902307657547310512967178243612720161982584503886529159414648621379668388908185637463490316953478937608752099285441216822933191638766569107849752621987967106650001382165473158289764158695918700609634498760441032281910485618254899291498000086672619231761197319467247144234602884447866627392752421318648311360924206162352338623405220874728733085194870065379884274287717902433439108682294918653052128710593550438377714890354110723350710387213027254688093327848109946697221249714258728799135152230489083100672810389699250979715965720495508589704025043838762241683853755876511637689163886072679860571827342144270072406445811336000192066470441447635479039344927753726379702943024996981033784369166420293836584864643301964200971514502948493671148161467271739812345269415282597938370959780548444833930190158752680390114058354664944361128684663795905368961016721108277466103568938624830071922582860885949153486805277527398618941611631801550124592139491292330488818325370714186591178947078093338340358520798557511176550591572092466929165808021820600844049483512269469868564853464751241125952936952677764520368977987308869558964453438573430746583359113008794699332871648853507123450473106939057972704913230303659729941568746892195185587984355776559501708684021891399665267463830636460774769227874656270982707941919288279611000432888272374048656474438036656745420250885445402677244903199709056837701215594099018832000789973873600179240484863719181610297472734307676802107914169197305535175763220565443959849020951328571571509698316698480027168240549279421724703490380860162315712176209363532091427826082064223259729422379172922980276870624050412399778000482894640451498917120147652887928409864832456417663368548857859353397247762044303545772515280754277848038295445212976870391617262696710352981482511069453298917265457590763454409357890321602465822460202161423455963024662238271572300790880273847485738476289700379185184823876163418266091350834679437666266945971502395334898881899961217477073212858492541904230093642406473808023468270532283993187625566493277652637215998105691885103968358584260689571806285383081286677442144952004018423956419783150321164745220933330523911041659621972683231484196417110700708057963851839851921552664759161165559113118453086090674629683624975931082690067462074230506299029188568502302348134543607139889007733903870739262336480802533486011246013739515494395927364474844119122703861919053932545447596347396479092441423090251387223967221505176655618067551613274885247945725664766304587311075485718696385685404346467001146326318825726503462548649348467931072872211760013213102286344635906049804219918099488083373506770277350607317372152879077452998077295568688106270012301773221475544136325417634187368529592998222711018123144523700208283064799298016885810408307634857856880065148579507982236122983896196051502885532409399086512055570577188887048688150670629146263054889301481426022276911730953861298685852291491928705383314643222880793940291739667779572088674362810761475484069365559968056699221058161131948679608742566922486621753340689096496226710035589064986710890730904571705733482763937322344891246511638412424029952965258265311406421309823207311763522415189000196322329168822173524595062623613806475200294764048534662035050697458911399861481479517320311775622917996313028329979179762357374274685474053160993103142881178449665305360578283338143710005856950203010864386799678123650261866233863252812236062589584037703090078525649918561478433319622860887522859531613423399408387153735535290956594422998940072611559229006613145483882682444241500931022987406669668239575592340677874099450241609405636093535586494428866694650934127406582740961845540027302869829746394968347663101552273036738389936362121756148419184309713675058686483050070599042601419061884490391312093838311206029825096983693344898718508997855985040132575793379104132663137967110399106146034283856124429916735098898816792551132585675005619843636905730201772037024520557710501698778663990979821118967068960478973767825426681947954900629699734436747012182002286724273882988071422088989935231591547387246538741705194106996978406200148373704005124845624019723555772954383425797961851407333951838584708481363776830197679633898848545293432844729602446182565106511022616681980020897353244355889611616735770235444816865752041463125554151335149530341248783392743939474260362606286196693421140972595922443032519812905340958335066307254809120827736133297882789515416981658806175349980102938983319220231093690430893014337073910056586362258952202684248690184329872663684383280248761676644952881187285043895170470788844169642021633992164776615442277487927493118747043440411437336005831684906863351994569461094260046575784525406684765261218797550542510794022381826781529856882163179399205902931701026580559229522216293353344708134134269158295210115135547259241086875716448599807967500903157268497871733839394627876762468395217210612369181771009699255115330497627433453764085542540936538673855722916402927631180350946505673604668393576842712559646482707049676846920179977132569366583916603023074579417653952926662027900423921944428741648410528132753517714316815306166403525052941689155864264468428669753607127785370758958090136089424178090097005168787419528909654878625677380236472717573334808851256099742293967847470616875175926897870234469124100453729306129417524412198912131810370754001220041992225490489451765420120613575450356405639491586346005683125850261223816589067385848230586980645025982211630334235599712726082141760524793723707404837049877296823795118579020122165101240374253455760977265152000063750368267263688567792344757196235288632858691837711710831146535216107055111946799989341420691854328389042838791874606224944503437610696743536906589657560576298493516751076668766792271667263804094864044506368513006509905266893191870176701095176345950376590716496951607774038877595516061494253087694006326353442533143205457072188674602537030388487552729326656338273473973743258210875885084823421923328771064186065396476376821516066641615752495365418635300407558086601025367619871478005630021256274860297092224510184723510308479396547141388974368826843598768916472030706303486046256988238638603950084792776310997885267975522627097827677593076463075912803603720110725459877411934826322026161448227620410691354574870135912084396275240538769421575259923748127269856597069727682787969014408201052621940414405507416289417772831984925454726048230783337447356460262341318209755757414615243018859572281306760803855938770669918542110381095628987121836967978457538289710183313070513896644567170663526283380380416902315417127187047783007405947283959196881794309960558014589357132623999008169576212657401380429860992187900854954840599318109486587355539765767447081458651583421276413217332292254401111194687910236198480037330019140399371129710450982076228841396506649848013268429907171357304593700995733314474390402971823134769288057578571639235099340167937979409615768513454923861575597076600685394587751373708366092250457986892396961191020832302208603808102261352989132727549656576144310127729705049967834795051964319987976005024924765409023067466821606964653191563091741529339702157307538542367559598706814368460693018819307198331294664998099417779736353196095398469444374673177215123981666821147898764222028521562761128333823271818034205329032969665564702500380005844513412899123923249185006081061665074648335445285841344512289454482500929980104375526106436459472917786772097258840471310421692168261874357671103405126478819234227267071043681382288691208766646329141709167007035125200314950615188173075440417184227148078759517616914804212352342488337274709444394654146405659489592779265651971255175103976167856633286162437384312117568889574274834319083612521580624847448086376211941876296756255057231026166237750358580374003686994232106447138822085261068741543506385963880306411170798151352352122413514865142506819040411093238419573737569305895578898318833909716529332111210242434678454431990332014675035506422687494424803484048201610332984087827006592314093978281678591795647514672067357010046146831341817857756514919162086529300790907538730192552614663042699664041234006359059069331571864432409868366540099362042293874503353452323368960420099036239700848547788250329401412443365961755993235238314537185216239538261244294681606931150566599321500280413812800553391106946968989955898750640982682037958295560890278393850847139619842882967546062565951735844433612217050593954021364386969400542451593340678999949903675133708700246995510400139469589457530130388970566039958543947434200565605161674123442979873303611048308508168041178360716047710910413361996546523602010201182937647151242584449007204909229426282028949336214472576997682349657980633776971524957063868589307684789638891899113900779880940918942592918478213379900423988034156144969002230382146938724586885146255252816526613906723388540285753873456270722257300533777002429246181979845199736696637757755636039566394814208640861177747168844483459412605208657904962091316937145273018694907928953776320575972286185579769497482211390783398695355515519992803770937357855649270395286274171072749029902780055322659996986155108289713266626779936524917151157056081804933283145090230561906294051251861991366191891923907046531790499461402156380769475840840297845288610023091859813457272682306859827665570637475443888875862698145799550124729583177236184848753983858112708937977380783163831312078664872702269878750793343819398372999196936771787325342972146848299487971465854525299927896935438608518767205659515354699407163850465690631881471701647074813413876831340543335171714956016229475999723989242093956792471374538159252667899761616217283035939832391051347780149130464477244370468504518790952940316198234897041261232974695459055457156995432261016907184276843808495528933750400599487532277172230385146476327133162183132497068476894884133289029701628361200352793798930615419669024288956569798591486536563481767343273966064643078251012538892957268349925698915023288627368606213884480411299903093505036586076254023678320543137487918375991580118860841690930254697574723764138055014779515740769076205471095281693005687172086524597805949512974716756978222428277902760612766363546733306916448902194041431462290785487119400805464902024341594173249749211378781877903819100681623437644584275058260497475697648078766215679879479940797251287534387864782023401577321660484402955458192660901008652900203375942566021408384159347418081156906230234634851919484572339372878366426095972577050502189985361268156066171730543071037622133935582898039777704536975490720580246212182431176843348752917699748163019190426192847149856079408570076510281474320156032644857592973471809415544904038546032160426444378364258365856365381148849197780492191456538111204807988191012897727520410632356065358847149110744544525023933424809564399499638378793108950724520510717204559647045621076473065873272247259048001554656686012289435395400421570411502720303207473081430528304571945725915941685868817626255885922439989901479167465342177431873878019209762143414700640783922094044594685687118050667482756886300357978061351248872656062714221971335068646054251742524569427383798141669364851994101679853276481334774751691324447617249983695047840073363841863271576199855422620977183454821025546145325191720563912942236002439127563108216011422304207011992396577775223703607560936516106811218075480952896534036585641956324024761340697018031719909542346239458471168547960851410848801585925620684179827305295379731792950746029863372346148805820171830137602142134091255562376862532820922086152637100858731804019206201632528615978388734813612182362538454692889657064471568512621764891326246609150280466194505322057298362958432318516342718051135830747668394230649097525860236124454561155094392836959602619099656239292903028855768906640192519593705326272763688149896385834896531284653315418757245043765598778501401359834911140944858996096050357796988820360953855439241020476760457854246453496850167522196048896580667823148901881814521584526599361124989931400416679953072904545746955814205098106431367668597657821659898601460200966317597391726423475277746887444367840729025047540834237161665778481722072402486124899118726597806385724627862138585646659887226377587854031299963812720328894765204187883786582925653232386200934313892221133020396642060063998364761096488670913365138855818244832715398733111121218832103895750621525040472727577673670561431633114134910611490771726126885983922814123394552264946116988000808803490665396213646937217288741683086688292692992489192804798681026226299274688692674114330496784713700101585968644195114567164192429156102849249009535167966065588767081567192318509091724927034318661298972399781029861823395761235905983019082403261674062533911649806985981255548505720820976536863344185314196915979682567548359902140671615865823989770315471843310804062768246919425712035453010449982419382146177714384179249983094435581848822383023620489468580499127732600069377551616728251938373590786656466466186828457101686350613386072504404592314352409638150366181271202029772014254914015303596195971248487384901121339687017215683009041402994498525655532367727847086936925319322711954061687466993869400112108742267570454001107618782470949594503830622552365021675926024432689482147876043805114672370447176544012080160260659590044383964933078129811288596893078418982591553814464403939068864291924838548064099925758282828433443862844371223561896690302229532200151807816840151923962510527413733846385317922007986019795197936056489185266162397564559670572947338143856287925453431120097351361233793106421197407475167882998581421197633108888859328882557855408221772282803350615939171474155455499925614568965900667752749155608596520052143235717699208240383817278548926033848735541570164268192962360014515992146671190981805530031939595829049189680984052556865482730084411019563663621605519527233042140334246045426395595259587169083669972932818102377780884747035021794447360593294738308492827654165153410794795635800623071397568029839358685193243718742325637550583454145049283014131974130408072486247509409102125135853342944055448827246121732336930336565244360505872357072399279720140051313360814576485907635352283624968413867498813339276006115645225511814281184269457395395699342726233971547519609621534145973030758764148448766488945266344564557805646122858506133205533969524669410396057015070357001042315820448839763383654525518772579667411280225707237913356936750943919371080020856491814455274714961283517798685276745238222866381486356089789543624777751999104630386819172536443084085112474489014451983283558210281219399164443800180861249192120954446638856999663180681817963818267822403753449767778241659325515486484549022977728320307960405213799475697710531068978691849784582761558612633674382202620111149926175773581017308871142621327238924626500720450138011419846026750219740182289598781974633617129263088230705398996486648211090972205641024800598565347278647590895189118691256465528597891344556275808621323743796281218184694019819760799509685882158185919669806989379886014426827109234594293137257778879038221954193978682434730782593328459131020902152923104004826980388496273325409086650516583007649015807399414005286248546346189788427307684205574015706235453613464878355074843299750013509155868902051089895814316296779939346774265812934431969035930060209055682376830107461154029259415213569086630862801721400754074371505713415852481482956373768093068585535345902108798168872678798852073797443735679843088464074673690491864568587782456517258956678119161618876246733230588451241007690387745332286534496547630818631613631371138538159881787505984369483583504334770202793822743088611239059560526146888001739985817650692624052828826509523368198859869919118521139434230167789149740959982452123878734086839543894152770655367970675091364114746398238203285741643498972731638940350372767878589922453580345769272770953990929619422382632165652503683549740232054174727768055697350593344564484029628330171478907594425417463548763978244532369908444904544806570604066111923829991143423008863462538732803664902713812898205458051408921527806644973314838297927410874196416116554451553580664998887784768911984792158686729554756784517579800647876879961686149549239299396726265496264533338627049995346612422606517159060980405736377638122711797562854452217809150267032893257845101578747169420685632658669075422331934892306100042523620651862788465915529294191750492905009754576407672504662899512935403873607460335234601541004899555889446620525948671105050038626262659452417251471339880679990560931192608834111329989104636380516947777058928113652814738776546517890981355780912500154426250802487032679406186007171418975650558922063735483280713317218867309813770365287183056472609991904826378559091789130801902354686122423038949951670491713150465819842563289054937667487365225897029464781855577002957746412193578107380219184373945885775730105406899957630200013895479801243977370733809271825147094447691758382605082065720563969527041977001817204526803158122198809787545382850339918243671015372400952036799958683900400194017677361829196472460373373023966051325599842882668066520645541569927050023918812642171572638808360789956503758502881987912094874782952524568951416424536630696335591587886419292151126793433532419630179699383684490930044665100178014628046264329322699141787153839237056916675860144307416189506429037770941669739549562749074746278307411807928983800663001493277247666537045832719307930004283343588345339098886097960781269236994894846646531806368255306383056493100028217522866889642636594711760303890586584201619682616117944957297743243190433234599060669268800756780592263046710088405474756947496207290346999321714951096830217825593092233742701958483684491438340927434432344134144647633406738740529095346816000520950162001244850386264028247510216427814258897676248988493966740971971240279661038695441490909516867412716585566811778910642360258004507698095678190984930538751122185132491060860118234241288357133284282397364050042820760924853076980593030040369169529491241007900826148847425794885808858895014570887317209205222057195289284033235352218418129631946048373174787238423264014666428303648302054443804205096241118375676631522664169637659456717879843539577371851050930133566923289256435865354481789627329873319923317879961896006397102298649625201208091278451254598276749245470900784711517289220754013915434554252123444221178732010542098348356248691434567762211240241938463862755008439054439645412797500351801431181517447750123853345438973158810026454993875504708188665682972939610720425509879924853395363384674316235868694554838448271244547156982726427010258635681534754148529381218532885530555245155740674321630035794647058319819477947366808382071309365672988482140673657462821972493761857736382955337777149336484172875593097862569536285243573837380652811640445954661655663200544431407871495506102068063758836766892826217534502060411425754044357330929136739579344104535393346877924757766464055458587116615741265226693399340340037296167791576918952017549807426057254934728830164345865133921610173577299634842530984575535052030344425340879837834957642161105880311175665240415963002077882218177619892982096908273356125935949270529195751972795108784580742214241825684166006222086263858834454491693901393034969067369061571231797662072884657828592370293186932763478179544134464652495795595462496758608122753402453233407704262560072233066166888227823586509187733456212879140296786591709144117526824876563291798978807525286052835416588644529816235848519058866699003542617223316021552132372788449363090624342905624193135952534946202806708889841082974145844127460539469077763649294042441180887990133526392215463121839129482525350960161040072075311164399646146453893256168193430146533494261649140570737366552709472541314104967399654789638252790762929205183657627396610101897838543643406142001865517146787893379336074360989513222477808122938549109386559517473949891037148261698669963147345234426143180800745424149347432730059669810291805052647744141423946126744566715156837905845305723904408636200349603150433011089226618148058099597831191807286747243756443849875725536854872580465986465850676281719930744612539946893227013835416564838573502188649285488685320530219797457176055386446377560367347590239212450239514985480560919037361419145101519672345582184887351809904114047063907464052028162832087025718658276275221732585944944473847742223584451175127239640102498949592022330876509189664173875288373895196018301171644191517995702327004868958967549278431358915070827635211909407014165314158375371780811425472239280538223646625238159982288990774501124288300893418005989524330034227462275230658572714047599070131381386130165623111369601969710739436404686172954446464485859337607401322213320670537817878334303223939096884107149277903934921774487420844122823344484379969406926046556721066202481423160154541955262105429334483733399524288824284889729188062846301252313585561578371587467089025254358918376549553133963328408098307080260741515110798522616326605809974756500717791793235171373850564219396156628602681686658652410869725834200078831532939936478005575404121845332833261326026656161114539976259458509865541594935968667899309896001634492629865496459062749603572367961586005482414421541996403164762063708800497671629644480334360763781080800438798467824809591295176771947189074507058299692217823293187958676024669014638210299569643774360927586137438222433399521957144081094550929553104428603953362100572321851682296050771378993865621266193811252589250432105737574502028535607754229608575690682812361487979728773581832816917942957126504512212535418817852296199031993587036566132951633887111128696792856455446374008598184549025152617668095959133422598490070699886855639443176655412573157652765259915681241829164484652218981934356723226589030450706768708289597455070364833888131765023975223399525251136937673942762390567802960481401154941849298823134838925767016915355445401029378386213566042072171545724150880777304645398410500908186199869186069477274819718528087759507050005843805520460304392891804365111994283729940669059100157356237548596023310627329241935650701696260617916778698310715034811244183501259221547737973376041946751379976474366853288161718140456638082913548875591555421307132625917039222537059200367622290895094354762545407439510380063792139598320494010502786008156378502087356185260702378379529222389767557542377899189001433142813065188501354725937588901808881966402333167088744909303895904979267566253925640294804696420185256723864624972658074274898851971647024869894099600675257593639036423647449119206155779236907134197399341129665066622368813831832868513403266332492580090406698576916446823150982773303375213727931147469528429746978878886199787445753258233710783640608721693460009354243266806490275042916916585644161008075392993572811906924828942795851065965364578078827072110519346811952820544925682355147832102011837002480312405922039068668565488991214463291803189295732078069830269297037474501486979942325103055199146094991392820057111688220702126056333464428247967233624471698552156853797980337539506028617556473513177150580246030234206258824752095358720228196728560110160622274208842878521282164228576806966949818486344488368567994320829360628072298114470549920858241214755076608860245247769101264107609851216706248118844857783004835578870007592992403689507704006262556494747609641175054502416979145102144034427414497931519023508672509482635611226856168345576671326785862802600278776260385590692797964986532024497276544950162952051736575386743232063766032316111416944670752323047456439123571014226885884133712538443666672306312964527337323300883674493123308951578864593049102874812313744930463562695469276541739143608099470540009178363268343271511513639905015046687907591631424004459266730891056825480867826823916284299821820156179618253395442577106381957024384192169148031093974584880431342765223528112125592433377574967054583162571508889832646869554990742644310412476911488679042636943232399639299178269002254953099777627943177728987025213578191095957525214667494657565552106515324867072550402588865106750129113280835189328967028099350544448408687997301360458142991721354109049756227487627006847244898380334218447406183503221125088893755626651045205239837205861617709372387535865505975920750345593096507990063072767425279705126032286495509581893676705059308651858113111372362041296312440836887707550702999049756195957382254981684212580320561128220629833749407098292003505639764215262515088915798417227430389186630222829777889584484943935602428143013486308026204778200850978984060249339059176263107903806584160905226480841967059886046809592955891719664072322709670943088217140351484356857858373035772270570382283167565997759693257031466459707250620895966597746640981407608031536713192490617220306753402733517453282914284789771572081420834707614814357720214715797828494503639522416273622660375151075687898564025598111155815815572220702292886495125958409770599728473429179645379123571034573744179527557174731598413119914373059144469691963487471456712167848855569778588522613287056932815892521702780035118462697489323483856757497943778310114044062946819474087724897083828569742403550020227453684958417686975301654774681192786141447989446666539748751782074917094365442762180987026827472990297850176144295558981468312315160792170361110174617655269653370478995735804832489994805047195159757132468178106851855768123689939616624668623732880177918978032817163999792238516427751025241932787358003373512738093041039737614746337199569774634813952794250862401074161569070545056269975261875970649215806820647758095059824291902447806678726193933032139556855338853845114720638533560415976747340225155341993068750593200670212078750023801397368008057349213345323155077542094982652586598064269845250952192801837892737702068045339021284631972643308931656091642585790220182443431677886642079759708374300626723940749088904623626641446087776960412003955176569076331698358744685951570337181111473417298879332372671606895880174192536531318805368752913992450612107689080148019234046337013663968304753519145958468433625687538180511657402017947046774215333322146078827267856790411383647284468424769039262958632712711716825532395317457788756975331691295965947170105182691905817480503197411135271402601296316512948435923210841875744207432666048049957941978243897228174669149685833652128278457944075782445537540021911669296832940272237994272997774557613888194398900649309135985272005578248726624398549805160085442351576333351198714312582656646382365675984319633727153124001479032698975864917684486968397099556040929088533791265906989231453366208770161147191920761596472894912629921417769331282945358127850271173620487858526275905670575193036401681276982629380946701077418776019754637370034081885004746527434526644012987649946575087324130798323183442397713211961619291443216128325120322830963948980585557080383137835371271858178927906381488628476026963267329427749455301069921256533372080629158930195369975409421645503137373019003327055658018445939651304279717954517843901715462972506912908489187882485299845057250428038640464677363357400799987144297230013200309360094655718394923239473124197707662498730222638955327832323247266050045749122582731869981940639270570744015324393856484301407651790686353272782127789436073584236838326429366367679047710585314837890311704886950953035248395168442388042524804632101568233296840566508138712173640945500239956561279016825009911975291705891568221831986509223936439418730719097276907634013906274084476943935319144978066034200104383350198603293288694940334872737253794370893335969114436668412143708977981621093873051855782291407768492766089001690414209220831315305571816267311536825011409104561501290177039718958841864043523621643694165666703993571770454353558696457081148301185596398376884536956732591295292498195244622569730231015251803322955495865848776491422597627339713820311234100619025721524363132732899264823787450918220454049279509000803924848588045184143310317711145342748113303268109100047329557551285032129094721583177620527770509903160700680738036874670775779100864327560561661543429639667318027189234035304084308859457744355493231081832403796841790022573864769368913634825374313147980621685051777735762838123501553856284478687434023652174865230657108304468063105669759670997133408275057727266576193083072463409925624541332899564636102126993844067768715712749929604008579556472758949216481374506386958349795439366422270257092715916585231823711681254290613553827578043426588766153331320486407160378133877831454436568347418504235749581845460837648090472559217727540731177628007831050159773459426417091498481442245569444696397096523626583805581718426590954047293082026631408411780274371344803070607970444744662772398294248670126682052521262193678863718895571075367562504528232051019720713712743268823138950616045020410583392273999227292375771741860586301098943629000416397167926054836065075812059948084331590688287304228042467989723415751741153368913597723502779713724263217462825856072396727313477493887549322460387708664236725573898951224038746017349674082702252196418643730626325155347520342429167958472213710040616271367942327978913418439468514629948189042596810930531143583859249333126711399313762587876249319843017134375901454992514127637976745711455382677882229766184159029091417369649125730179430310298471777002575018061193575395766540511452539259801650711101143356134611613478195312348016203143411703430461087427286487907394781140367384093979534342000374440367316152560803650459251382313134595714055274809778797375320226347253038354310711518547264896020176938941279808502240777048003920928480637946147347272668155297396417510471155436870027963616072861100419784161706206888720610131586227841038941874645793448439861048339843089269781640636837060489083643429110078020445408970205333259277238726941205049218972350248239009226033799143788571236351519073330400330428219140095059538380153712322707948708909662316509814907387696718722930224398681929385376074411030380884887844674351037975413139398931354216338180452940384481747670438259936830101482488029070626078817757299948459690665095535600685153455579174070570597840349971344552123949427520195340725238613188310365176169807104899886296480284601491125447652181397805967772876089119303063375262642217792110849742747776894276067090503576961258541701897791922953960990929260241522186884854563193803600676958138291889392622654063228743278399924274281394839873722253028867247060528248052248733021149460276969010376118686943656444372257065653042051987598586961105199731211593054151054175207678650814999093141943403028236031939695969754752963408871459396346241471075837714594937594368833268298964385878866923463289407129680976035525741070767467582465094176025987291330340993594061932563722292070899477186728261304976041166763132476035699304390714983512515871545897293609902111002678393535781226340851013713897839790763100449225423868507386484448001981868984143850578408605986382601322495903214117862409490931973127670875522241810138167755746825527195838355115545507807578700774908818965745550131610773024271219362921001405273406533879610225731949434382292751413654694252987502787768562883220553662639414944338542967820894672428721682399205297570503690356984179245123091349763580858689366081102421911721855843590086487947108494676602728607254795731215882049904087361924996308297383053387817867781949270004060684908952073276702785380743421606472620475141276362974713311207250825644716277793053130626449457882073587716082682243288519456045547299674846138841695441788651497056215273183076494611805541833018099497896267500793670687041361805248569286619747520743303447483879506500671725138264325708443037242570184025707260428024260496007158334051433176360477216928708485453359600371935191613669926114405660637304802529994337493818526274357568685228908439468160511272861355561973043945254130081356150801377407887721752919320928259250067038443366734314786685175973453255533255271280776478271860596835966370423393455885431746665912591126060222833045225940180542935582439243966430016326867577808748817615615825251806689245297480286721882697074780477386217837221931718718183703864379674482860278271153574587023156502483822580857184718726678993562634655019928297700524928379625155368689766177266152563770787977825416781014597420411281282061070045034997001814030108539672089210230620400912952019500113966959345271951158845866050260893324037548617635218508169444623456708664053974114269713532986388548121393605988591368208159718114821192335600399456603987621013190225731945260282854917558509352291705743667534169504639189579123420099030234616997616476726438435593273930690245328363596146505625768612384652168058787596595359719343838834233241314549135485460410030790888334943032045190897863683430291734815627905440232208997724543262743505887799188979674419235121053500767677266765719109962844246881762401153132246134234776963220121953106222469878941052079233315394134682004823319857253998470715397403549552699299541043828600228042513081815225777278457002720471357050022801476406933345686932830886170830057305167940698621186364239051869717947969620987277821778419384741074206451185553011143484488458809787953118505824658466496266579851265785348461198070957920660302508433130530767122893440393475121277770853460211455143791881212484838143903021941758560842587405259083428854851576851632977137186286008321721763838075448307953539350420243778960456735858538357242294760648154245030507999377657889031478310767137865441800166775197044096029731537776320455628177860443585376449899513433276439068734116932186439392460102185709613775089591612660800874206208835784538769323812723886740925613832152907807643366893977547322432237057367947708101339265529752473797153248641150551146186196533902996492642547742812985812338257433883190228407398855216285306187453885822951862258286683260117250694956744352784160824563867037540201680226036080083117812445976780174007342360278325179563848196610964301592738358035614274495696198992403883156799572863859272938288634724603160945664598624516786582447903873323009026597077995167506149006714538260544543231606680816040815459656082118711812208760684545855761073805427859349597803710201402751947570139585785156870362484718619661827694387223089419064287830792446314282452243521138166070126029555152036164386773852032375305624189980116003231584009373405786399105631749146125722853891930570631355700365721093382049225090506642075610391733338706028050068754601072817351064448956218951794293908810480770995925317085826527659651756715906689899086277155787576833450526401572726902784189354992726795525310299050654758110741647852467944151454362927497306126992727141600384340115831001265876437244895572408159347848710642257253043919285342086572114859008116479603729791242705947934614065155261047360510221512874737121042050278786996365160001118333709662056293174048579896586243491585527251807678156591384536994243881316271484348075076200611916309730604597121240396880065031749422688926422940614935388857581087480126977122617612817969891754222658456136824630119759987296350910370878244139566090590138179962134237066772097502829097745126465052922173640112186575772610437919880176628587459513310153295485910443575049894559405423971427369830988186567419485016261520488325836351257652386307273004241429426519412958713717595466621468653482021616437028844325912893335611131153555536646952571060857220035940577772165178048536475667228953093078852676447566211934289391415542733751448051486293086989234756884893777473471838140195229675727799624063084279860978966470591856993375978839553036655131023330548000114133238945932761046482804233717200736619944266891536283714959925986506818156871213555845313442518431768678107352899335952171221876854472832250817041747564653303860805517414972996443232911356012231031637989852656422996694654056906288225210597298134404655574705959391830532605688994349554825153952173661171572134724800885387423299469868009692004498501828143617570301687924192533097770105702911666998190159239640398013199311951379811283907752893952612678975294616073484362887693464446008714864024127703827698064220707272195581875989467686443966772025632580515825162123072371847196397800535643326397781254209408980500475480083810534091050894006377414766627500314284062809795790065754017451999558493651158456281967919255389690031511966942418549943914415611011397734079488496706508841449057460476763986715581081309519592281731649213880327425558134986655474590691447213686490459444802783010720218344654478542164285776343088860697353213449307310515820810166470388165980002601764609920387097218458140194284500708016484710076454507267373303014099270858699717282050928211399695169410713825838375170911458685888487409272752339322801727695874476781681464710998757472406895105790320630943946484336750321359753244710971394809282456880590349152713826478392439846392780550908782701939916701550676842673314647300101084463487684156467718458990282763308378818979269708573916444751587937283039614949845600040596361219093524098483731216893836560991018977635949360923339733150712421172622791954808297784939718966718290338763485364611968574584593414653406131867349202581910437359911575319079856794500863184574032136559457771710571706171874927633331632607597967923412693204555987663794760460378138837170119884617072713300646380530920193667684251607777579364196180464076896180878083429443251464551750137523698646471846872902606062147949958127057623130215609964428444067790406119172465340747856149773529836520102074700544358897234621390176994594555334840384490072697223092989528891886117637410205058216374853084389851516634626672846944296704880926481535565992748939164458229760690368287700903204156109283062971017154816933457635329845391296783781657598984772035617469449969261051108523567081548467453303449216165847761245225895721187121562171331548641113168581070257796342678025494501265107849877034352408999223001238870936878748060307995352427377168381560102668973097529288982358904870125386756571887763255719258683690446822663955333012973487530887523449440252695364330668978096287760487917260159758759003710769508570116456610851547478519378230333200059579401307387967207881804542010597018547460891849542069058062831258393128363140147238318384242830585425423259276757550183009430159280627227705202216919588806106175559422489178140957271714883117660011507739139690941954178537394696832523890713593077575030054147722457641648606556002760618887887872354431745851646162611091239789195744123382937678959041088130183482983814918288536399390154390861406763766772612125845844889404195896952246266209331845242888470833943600947239525635826108669345648360353032286449506668897822148943498856527151899089994690186569154463494463148593526584152094552524366536861522432112208481428270209210312954992247356450982173608175926019249236466170568795244081063897618934725696230953173163267012334709267277628172884273934026422315345004565132643126262446051407107963943024569217122628774003166825764185127428132957255157295904620951642398523936524126421298617415846527584279976623817545361145938098606846479077028574358101752289297100680897527401266504934207783657922242974883606589595041712728601114804770350411965369983991977843721565927818572420907092728046296835097021586078787895983683724957014291633016919734915094692579765362584933946785401539526552054798874479280100778595194737202905785450517773210876274093904627664217087896927844698830625610763159808541836283690407850348896935127424895056616225127284424187111139742175769861550367147996287341666336816586036115776347336990672752436407850425870750711759383034637721808572171787867040825020825369763806918897725960272813551766359555369008298102215200271840857493823843463404151976476769505608245615187745013037915545426159678423164244226381151452369953772180122918969871202684383485008580439266534625435033684144977481114282739006298250423198047684964045700499033344960957283982128721032951871463158008285025630073097199253416776972686851107749747683852158793097934405536753348258700605421904521193720817527802192331410410167754245253828966667120896869066959741527534802486538697794814213081551238950825686104888384345566019451432875095678509591123773364629675956166623701594185254508777696855938358423251612091029181705819520511995020324893680823983658984134445289463251417921047079959681544348242336428226545794372692372710555396203206991378739613624606520414437319512585989691084225604343096279924535166028432787006105654764147618649134412618988476011871161176174825296139770426442151952597171148059857316319008217511642439421339992191116988270452454647643595266533445460164120229370901713171574396730622549243210689207974175845613439496485786369415702418991606815957114837924706276583590149445053107476328153672371988826810830277631549289053053309054056397421510588011173173624259489772063693592977926317014152177375082128981735111658860694491664487987631967949769807211387225025351160668684799500356146435491786821023379557218287165152699716747171118525681496572817909475636846794626922914145982086075385361325838128581047744198010148676426121954391485321937857223161175825745056379055203003006595475315650671275530113399251206468329687470239792286321727467409743890499176605166393398247273451919435714556864025800317756865340081730382008999881845475319289772335298806200164796521048013103263318873389482766238591861485949019415592249047704574944751629569261952869805482847485076187964448389523188801382721625072994100012887347401379503827565429536956861397984222511655034568782188291991864254189364208100428559764048029489244440286999431544209060797068138488071279036917948303889410631613653609071783009442335251021375706468411372150675185052748018623166740072939080961644712911124378168851690687152636242657981716272360112674008531751210187989856616384360844187261263937570711639450643110665869601587690319046802888179975138789251789302033382600147829532145590755217049223373532251139199377816017034353232930969112525253312623586650968120940483680902638372280699201581479597961449902585608256139033694415320312104404446550365934771842992838347917647256247553846094312105894345025094743882025483870962506592941113336939344807774333857559246106447656088385748224473068640948693911792929662160936910059619672058046112927413602641133674986654901459648016708435868287774414290668615948344945645389447500923035977933771878323449445307767903553732968409354651331594086800039943299434520029973997972020872247170358245484929660313095604880337826135379343345675058530992014007205013766731463157062719715777899970301760832963664496180944531769453782786410694541880731139987681946026255822422752659054171154254928284142208850913271414162437760233541426180575305620539545997118869789103382180287927683466359263328722082976983635950507246412751417915493637785599179955551205676131774926479950448865520646766399729756371209292342253230375897171869191320038011915313847010580894751103710200230972068383093734220389572204738384333057138218294008631715391151294432248121044026167344296554153994906802123768721883104802438335037335063752363966230923756628124344930824823066667395371725168787375405371367556301906701555231256553268597976402279959869134667598570433282106971658603464854576559448186332564233083576885215108211555470568611102498402366818718206869953120651745409919029339366558724204807912847311333791022419371599506146455643257205970810996148744009171600944400800644749224100991776676961378327520571771162642060188913001069621012719975616879356579622507774364674776381903557031554613164626183899471644962804093762133482256154093585285063604095574962818486145252296733465125258727315883318762858025160236294675393256457692095256809147299301908675403172012955681329136679068882047847104880308670684528945266280526352288948099858278138122571982152983739507575528732522333002351722882402274236943180747122267073988663992982289793510256843892352718414525837752734906953306316511140402025365081174482742881867558946711819558341393036386744895109077921643201808303348595161703457079437453442727892250803621275465682812470612757948692035787759403645587684714676873970439718927733387566799001707147984661505087965929748590189130046990199204142053041638541204666647214261835810680101119671987328311206675449221050997911479545372796481641332464838396783803126526974527526800996217750465630554455901999964218921901287315769158756649397678923625871002526192638544177048427824854543373485246408415747863083296961381743110326712845555410834065585334970061187440271742627177180135082496098534487371459125253579283846108495733349143170964265783240228310049084999316611153887387929335848986785289051063965455587856779394052512675146198225575826813685160685226331157902436696265382104657711059963750627672290691469040988335106181407050487919764314066291842987926248587961219220129101110774931559694103873166508725498106220854736457563144499585269340844796025590803773473758497040587568475208585578983251114008553072814817975515162557170777310423892854423941725857266538936181854775834841313839485125512987962343883924435731381636727900630356402970925765045661733523082119864477143992319117105094841287440842558589854591828173767027788340569402959004955496209139967492679048761783929913722790282394478743114993760685855036193635726366919281646932223711677067789876561639467819090601806497532157084576522495618669384625407346106291745404000644712749967622926110926484161546200044152526045013361888652066881156612753398387271641012465065069707318230692330636253323361496652636491861710310761273890281596614890906427796771768500304586050026598548876032748745560661889213593163712651738274866879860192177511587628565266046052008981840787850998754086795283802818138145571166593798483487121010056757208301490551012151165774999505131828465141166804040512904218697070700117502789118217881757011799336071951437667206962205197506702210594014729437480127442836695207082515181008065172978936222425588195732376053237990767255613446973970048111475327406906003989470824104631589212628983543100435051458040710820469272769554481897546757952231089953154067392169093029193022917239593994521166401648887303173760071638216503223111589058955029004901986210444270566208516858874657846143291813129971081523336552189346486832107062575055889569204779764011554645306595302232939978957448762070122689649065101813559840804505724400390100140731274834499327701847597741235169746584816061034542545091279699870380275538001012283603163465611262461982199241683458187087123834629996038283017980149937579958385413403809603243055493945124959226560037601755662536726263147071926627330397579739681070582185809912679415927466260155489902492638423698780812925417446385503952752436581448498045175710142530176456434119421700923407054359633030904857706163604945419776662166220110434392606902251406400662534634955006200879027725429514330729414999359649114445390748718150128403311817245720028164207084072322869924363637906029830013382588331716681533121409275188524677620492683809974717146501676057920839331441335611756584004196405884943720329183552267172012464409953109193104049710454987609231105984943550690982987304430567453665294790333675934800444277564687401697093610267530769779736419411565348631451632391904142985508356925365244988411798613730203217953060912015368387025230056729316696207450940869945087085732609107703575196338482810359713713493608417008748208748326398823537230971926601060357300296827790423512116767143254904876102176650828636238177999261485887172626304942740637066087766006899651227859028488435688870854251249934132957461677300849063722412048810486351833607582105788478276415836171789127878751995774913863112200095817219731620724265826734359757292683129297669686092673344767728496628208671480832287130117982942494117389020077301853155299334091282471689960919165874306415046094653794369606175219397793377709436411701831887942238748642178903226315630038176634039984394350259903642404818826365173877094681881535596016212112357381344909900387173219706291461505667196608334237212132322703948954261670700326222840204139808834838490713688568756236873972821185088647876052943858878154398036108452295290119418949379194812746847068787877826948329199738321813637001738698011330165601579245011628772443871742583319681275710749404923917723210534826813556804611199792115635188961787624222838297868280357749144703183117309267451561732636176194046420867059862570128119950356225936014251727432656554580599111168296842324630887916245767160385817257716892264610874515378476279517489862588759400986279353288449526312836989798094315853655557596853192532753111378907134221282861678080533529973289286053959420811124152938609400924080037274095234723717663596653505590513132952864494556996082973482603299570907476825633530733349617214889292079591646400005253626700994840671354257911032060432599968145559797065199363634024443013485358553096903157908589322173912400501417554641945203381956237907870947567064654736441817599030133169874435809850513308409329921637307179415797121505596627843759348316267681547361483722376831266222854853928769559314311516453482351462974230262892743106207738702327583347257343255073418756209711293007596476879440403881872245772428894598942387809006886767765160570022429524285493868729463954967473452483783195930756948684111248218724815254033432994586807855081183365848462785264938330957628876215934018527572714635611604096495848741918181727188701073995873268884445651864477577240571628063643629823381498664933719711731888146705721975226595293355161535054905556748231600295017994351212432809926812793691572968738458934162410920045465807052824075652931748546480433828467277667372465408055962306530236820815516027371309943329749013835233706221646668830065776748824796496873203821515403481693662431358242982021993594749263849809327543648287943978401684202437120984994285358048864996897830595936148863788133759020575067308731921628120931506690622282084422361081564340377067584335899166512389568308722563312370431403337081943127680478038027753151181450344631568051784427811119304033616010480360651629380689793676278383660245948802616400953224491732894480757870431976626133731270563054295744381781023683746687487947327812625037946403068404821179515960011289812283025922441915247660583129639474754586716019428610935146140318116225443698877671752971525506579471854896693299161353633726353720984257778871021963969529737638056696864469919610652990549021823291288463341461745658196818923709158815423854419137415833228034268634270528412880176399743949684098436545151764808037621890474940291574117228642742099787203176241728217728943909316865508681139120292560151696548836847553144520887550627322520986820956728317671976999942637995822917160562059982150970188456881747600810174918503207854335533656744305955848523776905763263118084840014285776681858945949676283855087045314258144345724704848862588029464187573634840404103894223180866712892573156913880210941350057530676361055136484819831153632387796060320473939457951046499274182173765966175071184437117482300548554320910233082642730383441340905771671758235037180596291586921295799336094803054868654783300594922457314712088904540217979280978206972309649721117747939187410837030625379930905708922216077345236391355415224427889858554676996011866717226573284500902317901517915623528742357047892492073769825061274994497768996753440305064706308609147879050235771946584312668535382349863330619689165469488045225400697841438308683420945152313624856771782873055144938330768188830228533484539072777676288621174758383591174373428111551859266120591487668637533805318024668712729609072229398523718086485160123036360459124894334870048496268059214722190737366242451790601434447592620439125925688554378002562577066479148099403750994197487725554912679416563348775203722827618905052389999158549449132934144278869650558418194174029486575083256930594332067675168863746142182765289436778986233090158056667090055114344509842037236512323319173442920502487915350688231536171511956535138984729489549354265465251671905107322377161139341194957492155650282333392130805576583897251810655822378415281546412435625299891570936314575591808748589598457627433128387196163529267395720789091184009452230300568216579476581666490690617079142992880172101554732999849871484520153965790173809175420708966659583409093397675042222969567234085498837783973515026144148606967405013968129221996850769678027727546724437939786764873938639471144223558805453150126362453467688246584507726314234858755257613249372327101196416932603923876678409815426680968536953772663544718483590630542490212830125919754847520844335637870620750259748880143897945855447871222977288111120710289630712401604748081800158699561623039572621764932347867845435155871664158575944568778592102642138913527353103402748296629792282931339874803572049345721207644441150660900480354223263800611351844649165335747129058583785778995953397305265153466457307648271207106933841755284800173286572423072588347389473371265486528906602274118016616051110756361883615324285948255542121018388617393429971547657059902871986913881747913505618945621999243830107953781808827534104830189506669438816895001570614199966464022788740600401449446690236000386752843289682391258250118596826708454171375230100084828038547451602076454797558505213110716133424275936483995236100877507252458154705540281795143591513401554743920227107556492681740856954400392333022313617413096959018661321298665015514365435702958343475405810062289825563155662167200644626013194115124101909939309881973801280180286865651082770804770708925770021949194010407116488673100323638804661110174122074558148849619932527110133296578844209787618499889861992941057202336731010657743493471662011975117782769943100171940169465915041150883754915305783637493031377296530590579478465770266624611418118151308382663014912718736243667811378717083123934037348375351399464066584762968474672839188319976496805858657923172552765177918611734766607409682810368851695517910820668769668535566347351832545331979629569958712385354954320607573591323482556790988242198841428043770117589326754640644031989021773585291145176715682619509712469857627368954738115389187316003486029925804909835624777136546838231786116369428124898930700116304757737511321480610684836361305755827617201183613599016226711933638766282580622454684795805979910429883053195467015506758355187414682542476687304460556170492494222372936736091378684367873477950975352057756769446238255495448216466543884539843273333223119888727667186214532881009420624759944316332604681018734739268009296394422485282107888401947814911435006213502338258467877107613025035095947705497222528440383158996961093244635875893484210009666662621892306718221159954679473204119107776413748627169108288082538945890348944116291671702943246576488805935891209290357044440882440616988112049760771803999205411567030106954631018212487159918607198945919124746583662187250740007964450303400476022413179261955931351541329445132853798807563729784795244975649442141610475973591541757247998997569954312147663387468030027099661032307533502625125226757168214658314889312232470003088587535677296459928834775990095968539127979483792594272168106749459555437523151612089607798139426399118416721000060753156861097545385092959830630086167835859742169980376554048704823365476687556205054970720556296203265642804404727609836085432513642720867514338601381912016890811624369136616317870255710486855752400905924014707203695018688470409847015560024524407697835118479523666407996324795730394150028766353286429089314091609420610354466487372752424469117223028343625757834810566061763676778713484036920142890426174023146532550165037896102707773795614897651004100247400667324000324720594513778754363955337370681133645258170004125298192763856211682951062225505191922440782352276334313631382661571181056123791675308882205794196814758712847895769366852738274360948123816076880468863766695051705628227773896005909629278831082009441101378072644264444932478467388949730201378589199338380343965510539581407166453755471188591539285677920199037530490172069747046519898015063067593995810243717296307810419081828547283108804014997932480345390962510385646169555746274377573088174671759816941319925564876382717936558003743930918246539164196606943327982686387350032368843079018751141505227151744897812699112403329619578899411423132669838349486271689054354325994667846159280728567829434554869405212989594836914761785595998946837544782925747446607667735586858010042744876417881382106283190466530434705822249195208544537073751479714385486563936276518740977911982356805118902994831541990123703739712170589460732303277262155203773917638164926865647295106445114141417586673558530367612784334295110784454381486543169237678266515479755241012670780102918863842115645310362812679364084847267550298678113360683334043175078590193786405982312460113678779634081633397692133306453783967599494227583173642792981372877123289397405148402114531410259019663941204746337648535876417814924797220501872087767808147371707591438823927918908547198125478025906774703847340249860755993291076735291331431147473039956347563581562055217964550531406898256327740267512363054706301709143604432824645393176274543280903080113961224085737885188243085241104929914707105138074352242641728640808875883374933468987744492422357552424257809037803052504496823624579137523668996193929175963007024084495340296243421808034237363653234376851244931100227252951932755614188260198642576960001227335488545197773575697835079502443854783344487272928756180218155980756996372556196981120682903756948595059376528222210469134771206995776291814236124840524002555833218474954529629397333473583277232613017497675427050858540750216363548462421940693176688138283149332504084528013928357341391030426504389478388247833058556229774472475735418107349855107671151140414476125426705940815170870965340796792926672986283077350662694342588135307003223190292222414065390141770012959411514248839447238944191012595787558619114361833154856048258263354465642890759957024310850915414015308735193383468952042808821263510175287467958021562255179950695867193590207547848269460869104879043399452823300627960234618114735934916785688066892497927050557604169560512990172643386168363905045423545070469287623651361781522792212737981373638590145508807619640097116186981566485137712841052108180343496717257267893474126291451904058140714319095127766322406610545032623647309297048391950229848437892159969850135226249853012771563966507170018918718497738256965685145766318386454182892526486552344552069343891905764896588637149459107994827559748011905590960924451663931662216740718645446043997380610329510204555969398689104155868482486872861362872463965066004409842222906088068356422316635007954084598258841218211504223050510798462976013390853032609672410435342801771656132037743939009563813750435928051952370719826684380509753926861846203613344375962757401986333126130005817434654779499269039259059835173765446046437465891023487566947173658817104448199654809101733680367647588920618400272432890678840455790080044801049488287868510495979827929141841250770156247087981269228032869576901940860148704910174336356899482487060012463352750882569114367832689058550565449017993249335679085575134729129130359832852337415833393121219124843640879462872432600832880562182070132120821414507632504711066409008524912616327851153841020418615818804034724568593231956816786146387484798140697108217755572980398153609090945376754286188752340691484667349324238400949513213121251209136215632803239654579284417768469179024379602197393246428802255652092510037140271493880349529210776067422319723398961742044740206811481297805975661622521064880565158425745228440856134995764597530466683881509534165881543666813245296163402348772399500825043098248261004877073705584336727946933813485107904330325622845839617092899505981949227326210971901621958417551894279565182000945386952632001993528543421251155049118724711142196120421216174769092112445490961434016183418804871101384473623519674635234284922207298540598436179505427013255345283363811657098165872418376631302920843259774375171164336239618766261674186542819986904739405000234277100967261214083201036444546292301959183697373270876691695382626056660658997498243591899546986748900686673644683798588680977951634795039162446476490740273092934949288601843315837713787472086238073604547746523004670555881831844537775999620536518614889360701980321917229084988021994093069464302367757001602847616271431150441705826134296019556026124038731108972345704246758116949033272507911017805896634140356995930567179174341458782055478171090336837027062746046293526682227397999872769913732069239383741550377990424089469821721766973715339480552179750172496764378037063734926293981900757162774821262346558365574546872060937603048093347004942840841209142661259388313079659344277358779012888006953393630870067998511684848208722416656643300343840417989329549720301015377057928849184427026933295907182472598871557129127922463076170007071537861107124785233764096505230418295738572319720371105784099576908486287652990040968970191962541668939287123950323858876564113485151297170341961146188327664763168107550523409070586284712775445334938093410148901708824899239534779081892176083176309894753988564772110745075128057224596758156842971322921928123847464983202610885909751730586888340703350670842900996903425933687722735565793504479337159762797400449260645895088062664919068286194715015417066574592012251289270982036714322111690599746935278859447092231792816089284006711532403830990194744953955060325673233400707140804067181300676141736671009716513226871180094343482959841380283972849090908506266255995429239922094932802473265915580655919408768605764447039762298727411521320555908011472758627666267903725626260198136466088156693022976904387189876596996531676767368465340005252281683722006909022161657348427394145096141430439476139504048774525459977788008985350656051669011647218244723797257353345482427755660630314483936784265521897199944124395749583213767889665043645851593857013173853331588883077650542289999844006383026213341572122455628786979612688208046545339000564992884793733763885376746254177416980234858944487033335121277793219544104163421101772750759291009526073874369543509113668105274510666925727194701126088479955253944003870259560445007049802807157022784875145185410727611079961748027987999946251273451114269015197701807497398193788452212448230038903427528776234805309382081953897972110212129178632433633657348088550789342140016738018991756718316419772778795135174753004176582255394601488996939944593580330123680937581685064008707787446197280453371130766415435746584528172812702887538052344335269955022377901698231454041256210097778166536174771626694867627441889161760473864483791672092391251054763646077433780856500309373428032750264641871246362193425986180862280226547542860451008353640937282039654307597269867836384035491240080556016652360246510250621150146820156969755615475876509117489174079525712142854703392149508199628859782157167122377559382316209071296340871642333848918827851314198226720156899787269327744520679834936778193779704084422499322188520433891251163657418010462965008254907460392686625354460858303013792521053257663115908077980072363410078228811647595975865670870755654934991845703427830769801366046392657275232920552825774978173069573615942296216621888254789401204240558242481893780761756761845444804758153045131930929032138110231660934337782159506970838562814006975020932247809100463241188884619867234403856402821179142793643359200227664065362642903869142863706636340319227933296297377893824743172798365292956050194133623740158480556939770422031741829045308196805702953470090126781908545582342849938777350294311700107551856307767744522588713789205207805339982932808287777269101798850639031259594718769837018846893504397109756706938292850388060576818352778512527202986304926437358246134708050414852348564463756639503623013718686219371658350218381008261044550019745637441744184232023926301356382087770221866882430014492433755047629682987390461064468145290324731837826356001960754369479079841937986622155872312899175194859208439227952036463356357344265219322770626068091734253182693117200033713876471595450479799411061104956623819583155900048214632582922485674190816435609115208242258128534363797734281393881493598767138440185873525471877884770154159253702447986065473533361814615602607692710192869069088121222606130036815383359622251228273239749133673763132364202245971069927137372810874052747306432870010872175793005996077745639326160759677669620882828077000012075235869861261684555510460852262836559063515166827959403820769088520473794083187247152473142289087003063032193642291787817710778263386140000889878891905720201137055600309082191156607856863008150717399701708911411526155047960733172025932730004014423341032278130535404735256848474725685719886252866245379830280579288405250227783622055509318519809541351067447697623586196027613279423118548360672229603951625369787324190944539921399470879986846970039652751182778959745496128652888096883966625372362281901947616481719296638608891333316880760736635783752561842847530046977824693499536950531128612217135156210152542814325577263401105796720836646444092470864420876073948469088354131007128294124574094576055173291076622662839862650290205873756168636258592529441671564719818924119214176954628220884817901167590096265374863328835588257943880879456822194476454752795048580197218317980601051041706808995388541137733920846940181266023687393033677575738657816949491001917158387531006246924642307470506610679408953667482451645151215701568925362329227892576868661832829532247204602780337818038917389694884591523624810529813922677880600848750412169850143631666804355306876852383331122166438216136448203234503475569010120165863378314416758700214932459208282193718734156554106505649009256122883815877175008241668479019723705210235579341442506449758686152534823183142781779534451813138517884043613802530234361738100627849909361031931528678980955588589276630370253609920120696565694130699881252164378784153336766731974314789823870707683508164596103410516701825723296008816038167773605026694164164418855309515480191265552991757918124790039413234284200879847075424820879883008231158605630647612781054862053396662711222721496338460644987356498829991044418921944059839352262286028844149531136697909739981561178631982408591758045714675462705093265638249743251594479683243431944193754801842690270501744801480302728483709843104788823220070936885244912823630430452069156685012433344247615998917989977858915914731386747969621916831605332061565777906219611899089548112897484648836461913552260317576728082369387386145909330500351363748458666943518468851543385852945619963805517648939952918062135120089428464997951054645583313331211209413479315119555956887822298411628942170786306078806618640174993842730948592637348150997179054236704117136715092771512450060301386994282643111022144205088051760579051331277620574204238799100553956938590418712160141087910158613885175149234762175367018947448488806660263910176305725657727967331022699659024051966107559991118157025721529567107170609486737923376592516942276998850863160636953743523596016909815660648340019153170286744836531315376116882607020773153725154723216661402449214128234968817545752618136352878712555085386742750398474877456722712071714071685820959239842934529773122709718765291787348098492963308114783845155143502016465000229305582570652406443430153673234889394880315298885308505880358446930103353220871787321941836346207681139587479906766704272892706875655584017319535641113960245919649833210949219613120333559986534247751958092974675659057517224494902601647214557823530421270385533568095311446183374872465660544547508732501062227063113326991713392078572729454365004718745627948355780214920739070853662718096428349757030019510277539999969276197038764402263989935317477399321783502489720954229686936503683192846702426889878327336563010839630433855124646487497239930630829796585508686494817443926502503165227967462882157015470375872096001333190772985777939417596046868711149520744705362444037929851501948997799642404837031844498678909367819352750757634981049261874185948264686545954261192847254971789502438757551953961574797714203779072926888486899272898994778237285624187199438596962566388775468643703539917620662906073394698731444791063933395130740155855948159693620134811563495335461326977402375326918173547428370585940339290264785939453297340503067898842181634353530220617113554791117780536881157300839852038603408612188454996610095923176898574038212824494086703047988836455456330631118942541552198486600636292281429054141555434450884029697407658973974276062141446043386341187233217313968005023702578955848167042087617189959909431703963155747259433005626180257387821970262614586134426644347897008145951448384443865837818227961795889073801194665044521221582413027746045112150747534048275107457969772044042961570314131074773391641061841190541503029333509808597846794136948758300246886735429964526304027269001617486394078589008823342868167290595519421322301070110843171812125420651823345197093529529002011274001480585140172706270693101397199758001610942037017860538092734996158605716935876000413301599527036092589183570850619293014873750441018826756339009775727637356173387119588151931942314929126542635573329475316715201182691828155525757553834059816198558661451000725236907829533626413340288037056375676024923796133685678994379358191424485034288249359022055168857397407148922925693934890412652098590916711019720783801557020644731706871878712116493712609103620394651275841129802215869587011299679959594439372235393772417377177006888551391289921581697750366578670794024189000004420373265699185912841606147189951297650959752682554146447148009159291088258667601637396116866798058900939860449425190846960810578581731359829896241672420005246279169846677336768482516099799380827121249286840361906585206609675867231179743120105761574071787175537483935531252680624780685298876335128558867076826295595723342574300911284716111454150901715938514066792017149250431754231203687071318981405553265557062025891662228163049176977217836256543618935189780655551902893614261917839139278428657532021241125182972867600663192832059955903480202204210099118066248329510954369068283896661552984053139023361977134995382235586653491082889039860563215282479266728502288541875701459103088921350464084804170643569999495294833296848142492887950813298171538930251639675494124947998750378641142671363923772462153843440187622649934185207868404190723232859309540240357135763069086424071391163856561635655439467041031893038043893565048537585811428983751307584886360224386536701501951444939243229287297873982601690060293562746925213802704112662037502340729679783735346854686299502403347138950988014309406913164851525666220944751530913004185926705113712598838760883996119914640129422453067761119552989395040170853819774605777975111868006251318878208584925434485707260803299843696526219256902902699877811842256071654598743342418803183396651037457258671278319896494926044811801383999648176401543467834485935336394025117545656909883864462014571038108286256173773239516949078090233947579655896794390181508745952416061501604635118456272864440420399510223649416844127987441893405832843978986711843952264386748177472000826122348269885119492548833239261491455322015749910186436796823510618386672075239847088962216530573986805333399388074243724331753707010855599164232527746522962785634237375980839654389842819909257048357177970695188096473662473144973514049572977974723846688607510693258274520735884771518382819710479127288613565799150971183815555890958251266769651991641999069559693795070251966377566994772933523398486376834713389822627799034801439982995347803168096780388954697027751771343782383319319041701619829148264913353197557569291897947449245939977590657851614976223990646638345534859480996013875183656107139865543827389273464672605567106772943744192269416293330261436049692607774274560208157498785379844541201184278186839459070017045761928780001486410557252348175073100104614576233630412416758954728140100916911821506428854726090284253847748806580968870132908890476962195140821310723329654106519419790788342373649899355140271586942764944318872835853620236950087125847653428006540190974986978123584612240163834180506507044591279050353276683100789763697936992482529065551803788416447776874101127432878822366302674061298902718302474363624104275769696536781502487281116640489044939736916121427163910752615390244791507246810205972088989779740760679572420089127845560933197702761451833056323764096420221361043866483122877154508271498988248946582934750704573203094017943891394611219544970349696658721228659946759657275369321250336365866508066256983200915955342185582400659373594185059790168658653808831498434625666867954514964705127123434084010527071806867391122979570958097627749430202300274890468870240249667754109538010469491225773307096835542049420806763630922762383954849765418985758948421541550060457482646182326317292737683181482083691013749025750008441918759389206151022365960785169944809722011738002828681782924474780210981536319670904161351086983386973310187998588152185881659414319584417872269421909759183167198054728325609879720659068279812139269387447151368087766285515552413702902761210746576085206134016717763983420798797680198322346472932221473759703508931589764286218942844917806238336202628463605364495870597178069650446899036484626465283369295648239821613071712049844883972632874446668150893300356145924341482419114578738739001631739153306170535335776541759359588570761196227336860661848996917814038241621463161527196523673288290778525069477279489027612685115347992739171849626157474401134971258355008510924641256380160797706841804023458035965757627585343302501873335852323140872452051134091562614421298646913783971677212627320334434613923357342504591484017986492160619555499953217354987852616963504663935239182843650935515801248421985470526775129145737656240331780005528732833172515064454226962504719893857104711142971871575824678593571766924664962035724135758031861545009093713470154281203827112563022407417130427003872356672213280693960299656009204343755415021054870835078379138329571746180411035004422006648444147026018717736562745000591502510685579683644424504225184651139538271166188446984778428763477462377121220515979551392293856768058036742635858244995147717056495013822542367069216572177689731338416645416984520275438316339720982492073967488998480447310619302228632778202342315899572254401097775518659675905281113028736828426672055149298415930543644583299894938849854591884625786597976076148905499064498111596511437721492172504608704712558379023912137028934566856933788544561885800102143111935520388709545313054701180539959835501554700774401921194285341595615609927199834602746026865090401111714083215291477625361806701212523946452762764069588057147723013398623275213429261010531371098072358934265288347551153016348807902105460317478544772909397337535047349592672978236288791685040567083896793862482929286373584433966921398795508901147434743749150702191720116031974574390174380654214224333983357718296353932663356102368438237767519951190502318273487836778337401335610882662139119625636281581674275019901881303645894488485337739838206691030271900708557752324257701110576231936339053677233844758917147230191349492413938889580870372224991606446853293409521855718614850791199628187108151516179033759845840013253801025678493560232681641304112108112474818053190514476241967303349901680111721830314373199916363752023159039172216096040398206386958897033842035149526497905392963546927973442410102492370431053872641818939666701858586896771850229614718174668054906273795796004074554110835874523525503818155235738678387212374607851164104116800067312604259343470747012631680713162974915978470939170411283953788649257522055039268800307713375877833750009581677216032221681798969377780980220452118875523278788624069739849662147136951179472154621037540256603560291533577117632664935619117839077238704762916326765231557325474331245957996294551306080881243579295165678405074095208623705168936421996689912427290118746617905356060934695161359869113943077710706925927325628908892823914355381884703313664373567020131819218845000315381667788022212462385158282723612504473023041957807624306077130129350913856333956960075601704030012856541432377952909746600356902101334619973392509926152964070921849265778064403702251461843177410161573209623688531408406494391355503682069207394032631734562105345248792033008870482322617671914904294496170517668396427953305877440291503321619159869352351682810612456968216003598505973000056227705554853686489330277278303596580290472392587795164995182679334453872663303049876952272290652504427919252405070092472386291845281438427660204870458321948280495504612198490715684426564732458532995663112082104741630676744461988692006589312497694749077801511296983920418839582092005013402576629950948580163649532703427007426432389781175841837913119420028446146377720294549090971674234291294336155774154654613562478620489072007944959464905283604545696355109227554082338250855964511978085303471569075665890566082753321301502137013351930790568585085933265946267331812459869533934816799038152962880016965081083523389258764024204127576213444239933284672631710327626786246739618068096155473621237402295842354978730632484787008362623244809957245375563978031921737344156846951232303371654840655636792668504389134395211180555075231766835489008854021993211732012173795483457161783974145162552172263325299113896519200183652621128547864734689329129043167212550841915351136277667096776281658100960121898953431202631890821041069250350772725390513558631010681338836603311731199223730068014182505048720948611547692843148425605048565301691027862182196321601621129350030429596923285507478323657221692356723308690843913908591499839373533088418891431243503846787162312562643298559228611273405593135360250961619868089442429158997225112153214358229160933914870393850145047345853618948376121322476559415232915191877029237325850651346295696619034465132326927604141384284104940726278635215316755188612888752738659581011899304537523298135058840246249652560064197675468032025291411416025385644415320740667463685334685651477703719898446327229656510940988314565127064848761318953581858351461732789493857430814361099277086322510404445778936607314612848209756329340400955515706615044794697323193600954340388353071205334633123216244030759196302088263730839434438220176699242720517277903700464572275334937875883124493772882846045277982553589974629117190497764308065457528559413528959807792248134214916122468862229357549498642864549730486519333330154842039967723958090367786003167699949921979857046547215469439799364442100176816079270513245270703533434553025396447081487539555318832539188179371130621142200959848066887999037309273424700150272311932353567857663256954877386102465181359815901629054777686628508579239454251103506050235196071041746337556844187359273072934002017679153078375989539744729237263587684134586640225550945525609212034076075391291304002081402163473284610418954632396328857486749995279678225227256974932378063748799605975146617407300646508445115281248229612162198301621332956612438689949221441098860420466989648211430051712291981872939578475060832434124774401909571581335587494212448818039897779023329496447295494610097011107120058180929880279301735722112856524401524074926896014586064645284025787357687030324845273763618855243309152843058647346233344535689968983544373768585638107466729737579716533176733063444602877344384461942756656008956846478175751195439553007713686434052309375584244812076745945692479279246221610209859830054559608669121887654025346879940720496967020202703441472992719684027099761180734486502536272885023848507173354642867402193220140279284371768195890498542563978674258090273083406284645922230130239020102712210494064481470522553913478190344877949163664408936633911871589119409241936659756382528369644022186003989656390002555373558520239307886471524544924248240847978566946893939101591618868175942692178665131847265936291855693294083832720606010714108593854568640805650280653982296042382960425296870042994670989547418188584003144199449421469060502441226962288210349543902178159616265324540429775549432473723435183055724335388351155868750570052984030870821121110925762948605399408562453447474998540696873065784427647197962056549881772705589499511876010234713699270987284498067943973127550307617729829083158639021609068198694876166876248505257903456842493152772521998198819168580950800506643956053005244298564883955597205705779107074775064954920560410320581049182069827084333906316146693982067537663896166260102185217451693547512395151650251860622515442768970466890784830785023584168520108782348748015964567962121491137162606957108358674002530460748205383953311931542645333787388239190469357740164664752881822937607530195276421789660224228157624170272676204986079350411165171668477433878922862150155492841602698502529809632930815965267821051708894288770478027072434730111743849812726706912268742913522600125260152415983784008557510748633763995256667808188623908960244454436607701551981263574506579285008254276518203466756028858282093035836235361347783603964852377096179716228366493876489703845803411969800076370405930064971898362485840025151495735173916795088125714164489697539836263348111489173683790307202342016106498929471534194206467703670236619231745465481970693851781290363167952253668035868270635907398964286567604439157326365149404098771592823051959626330984183061515386612496926793348619169953984381772388057378668493286760853336216274668106426407527231908569604709114482933617709856260081836957241189749944645797329154407939748812423407156810013908473229207745595810705907884066828703452611662322344732854373024377401412454610047308093529941777563298793420391427519327854580757916151463558076995273242967895024401942923083799561708000364994461418363049171823476187087416122329168365600810280309848767404813737976395304194996032831522151961764972747877338772484360469103150653334498732787311498045148674077952003826137391078028514781428119356663238317066396121232537990181244318332787275415595691392904548905177358554779730776950041394122806878076510470583183041570463367425049485043645861145902704280557183873989291212852914487588556799186684004802978001651215331998455651103837955132274286532092801179499395604813080715154519860263700310884365351662103374030380931166615899627606037977821444202747866756643358465980273400453189790614209351771580708435419674101417138520493707039678835551378289683766649545437222629278782431910915081058421269277151198486015561392159096910231570103309074696299395572833294307348577496960429587305924394476128208052247898013579959631330400578326150308493617663619541145457398478415598541416487826379968354655484965068723893330884632625022175084102212103415723304350684194338495048521142255857926783448317954281331806208263973938712605685207048807943538009628477868214646499343892806631716840775702269017254888560102373194277416489193702573192141464167104411094601781495870101069937560544816430342843765000185087694294109517379745551253275669994489253566870235359599618761510389529752474057384507185547341186595577847951692333919487375646288271335794866588078842097564262792465529146066013121647021630051214344269478784519495076366587270005550049290853735895817324116471423270904097376026507457216872315838742113636491725247623428286974441982482280388723476475151626546236640308647698649552237926898723069334491388369569157461120235275743310654926509148890627919824149404788661079777951485718783039126594793790493934837632272038076952673319337864292464272413199626321895272279651140984849048406222275222219890664318540532855583885944871231060639338572144566674668776538947303983510096103681508670895861382381400085817863562912501268887940106120141609143957466041300189944913424617560768100757653888220696169927598994126820775760653942255012177433692733651851571701615736155718740971186075242457041435668209851685435157735289264807875462700122432055701066614865410665529700412389926502275686320491784582955217938654984402439060840146683080407552664770063925635526050463080858828114282176733128692352948774295269789578714754546518464159739368247656938611175427507963676762930111217711115010922965661707024730756259468765000886192319602480209338808329899589964319459500333432847690875587609057009411713431217754219532035307317584264195205547037121433475619158145006670933044981637849027067346792760530650249839950797398406957253984643250233603689536500115348352442405508243685994615924652297335830566863468025737534475101122916901597307992293962994494399344673759352890176335860149830427005503177390882080482987672775524047013036988691137916295110368537432905088446389601442838168373955354993727124803940619312581024222502624579607407464427516137832912786352225692326351130360299227734298406092234981382829002190785281387550007498354887029411004444516914165648804193042878699521261473701780164884620283766110275251663034704330247039643971799170174328034365591078133392070417765385113187861859206363167474400055371522655576564111690484772582761416701725550742793609675600124777274705564250490856387938169017584527257950204425104947104591580745280320068648527249236173613289741857272329889474646530591965625382291877394828103339827886269448967867874155679073114000272446478594291226779839221580789574165361747673700545714324391771930089992532039355615577083805771633874606169143074327777827419104534703181950109061606368162264692105136994121103650999825296723534139959131038878235300532930543756892383774756907458565633919249369436924418350650429983793466837355698576235683341426320550382435332595774202086544871428036369774787407993903092029980844950366908626756423206835890915388437771028740118478336880793027209223414033329085016046157974606741185797924349530029260068056765023731570193696233156289520388186237465904424903321058275395587189939239832146040205150736703688901108010296342633900009000307247141435425501880417713101306482308525360997657655423161847556603523590323646577423890102302433402317529715248459372995317524973149732686261794111864090689763468092000256906411218493165600107624838278767380598788192681385494804087286890495618897177269836602529751153760701436061267387651889477636594218394309938999615079829796178129043574319555923733811027118963137148093082842236129344520021883930563495346174074879974960609172186419967215165819374469669659354675406774817850757154141336923629182270908895148819354367575871101041686523030055539515399015657974055645590968872061972618672855628649411788207171212654188728381656788516477257101826474128931622014348057448157727539922781409191303884058970991774171732184619054672677676283110527643305014614229403977921919447095658985410325011430105619964638402262571004988342744843009324959535176390415349128243011684776384819885858045418926055060083651571505873586447405050321994689477546422222557847335698524674593568868742345454134428313165210612571764414369719284736833092363337574147352072730297958959157839888145537305733832474412271140427952583024179048922871998780707105537165317028934810935334964052532648872237327862182119128247944893218196267702257679510464020538370595748934190326352380807252914093267423022642024165602352252875163931504828285670509826531457067884789518707436831056737298600621178092229130145221281260954897684018794640031283375852380367222732262144084660728693196987022336894926168308808526201777955990428656235359805557107235663073990311802594842106275599522558528275898891812113904245431175846002242049326518223575428609817762590730643635056265518270690087220715665664231863500236382140924407370906452645056212139276075936884209637918259084209914771549356519327937617740171934619118484443261755877094679161463067321925495967143395522276908146162636608852342036244661398525598482116792813154303834507401496574469035320493297675208147525431182290851722451366863305913656206105202003782340098505433498664715392382845548579262363097466140676864858590892288491645587647327290503334728021898925406657573115551257297743309405832663129869583024861332453535636338768655838813350015360183187377914060790985815564065015376005661819708782945057653704425773898113630491009016840545799271079697237437191430288634756885179745738870262979624282145091953894549205257778133887203234683473821119798336103231570614644297564161417750103158728742232425863332038978816919080650262848077155345811636422246365239387364859646100441467650284859322273518105564914461263543350323471277010890960917895721025163392086788397265872309122045243641255282448588022779978948161284825583120833896659383342006175718653783640931526318235363047442624956874803530303745173897089553468208725988835272737832783363628803441259862248635270494483900430124648519837975898129119038215564413359098247606750352524220768441749127225285198853579978427595553989911219110726067680281551981655596554880331694689750467119189902881707386857682438348709060790896730812357135892890722216680430154296660346381876019877898193661801800758744917344799001573315178749564165812813336578375593719031039519404786914959660074405968584262640465903798656181131371758417750432984847359756865556356173423367317798708691024790422840137062424170534214243023096430447861798007976084534101527137316123201017222350307878148327960596344849302903616943830401518114798155400005305784474146458097280511846287244785366444495926882739446825462106400808565690190232603446082209554684506748867293029163056509166644584343380196687218718536051522530352587221430856919409222070867594772142785353102684852489116815686132051020045089187549997746609846597595115357082615828205442305519359695430073309009824336453176087174751716350529665994152275221307648403392751509537325250144028666599195671216088740359746670769118599768310796832373367193248054105192294986401339412736752198556701725358778379210863991610623072981420827855856401637082871768470015079196781574285222753570088660712137743534369267634593491509488711924466963598254574166537744025512091219636223760335568453749055701677168562224472043488007690152366206167972745626864374449786956371003140964951227634472122004632696900918284179970857846253561161540144652389069655223080180562687697764192340529787443815912248744358938976549906209505298430790396346339895091381168348950717192458716140133680720772883398211268502129561061023880223294661971250033896363854933644390107257754981878363625637008141494314084768933662469489362232341357849935734475283722007299083673778480033993695188357417727160157326273961142280856334264105872928231719728561487048763589162356930340093562226843269366073820143788654957046799073545001439870380769862820357672881246258640152680020665211880750352320443509151053017589351731827832460785625392168359400674505399575339625914778197582022812217374001769588257007142794960194602417205697044898808937574397453888081176668237833625489276904537168725804260878108071577500914444649949278128247473327126782095104214744242317340560597571392992953634854857651045367860211043913664950300684158915508773881650805151473983123666030243671250713512854285873993437443460184624772095113884290217478363186140280023953819256224521096419496047208256578254231811921942413154228211411266409024814500656160889411853542970507365513621151804214878937552918100992011430697823876259995819414572607853349412022096010378679054371935198158871046097879406627473880815713926763226856202257112404004903237762568119551365678468457275586775293960071351834119607074880945553884715775239899186208357389250892632186613282377588929442322010075922558945735369475416924595611230325076460716099067550800004803653619452886125678297487362215650396480681678723853979208692157121579178470277589045139054958483606034424155395047544079403240457791177099185391167154564140261659524170930973608435079440996631691185371895496716136863860286650587604636195441855092086558965395536847849677854719274862000273328280539273802807925154463419069862963705231349807559374862900722858744441129288138077274018678265693065120994494372770112464646439692686873053540230923853598741174414551064332658997691964390324764878270021015121805453979491131879090647497242657116527966243139574451378691957426447208997827810122448336989271440141424108708608769345127748801688122802067387978115351105961440896719266920316734774187224112469705529541391985985001262995554003725656424636338984468016974886351690422303336771817423301104126270447139129458590463211689414511212846313151099800796503702646353434497044844968059383865691166409108044390769296313930484086767911028354421978548352551471134477978908381863928428945584405696309095426146575553897792645236463898083441143407213058120261070003742710344724275281317642060644334100709305016083535154913731153072942107873678375825015836719155675366319442584516813174798025991654465609084237791225967302228891243050129940465973465162734575959230882095229233232879660860290118180946939349160813956550735502512484525833460940381844936270215687066452018482105570668815830701004572249509252764536323816274537950455956733384495227330746906377863281533426420897212026654712653436708435750831609339649850588127639858158564594505856645564584337062535593458163721209631308486402894715589608042792915113966808225418700728296515482548260558872932144802234474069125147585235179241803863086474057037854114410444240448638612159139427417286561408718816555931877420669223378209281487237122283524128240112438769845332576390333745272035945642949065239471689390373795950026464316932123694104365880661205186601412389959971096313011894360032847212709388437848407306225681709264919279862479493977926660933463759689442236809451574879532179438145046456569025972434518413228146736420586726042634835063817879123801322963175357177011431363714705235682276356682745315339970027727287312056615679487355376033998242537130303947211440780736841974400298808534196916833404253628013299288690995651724045682605461354619357163118606197810392148192944048263371707498112492823764206682689713735352243309624292806288215591765913172519918247288317656029497098897667453058338809256505090533629814444365232545601469470846574134626231114823348629609484625038049949022305107292740219493627556415167853196011938790989011169754288016798868374436629979132645524906110082816308963542990621406785256091015530022201020710922999860798304675773639673136367941954086747979312258770171599707935179381138588686526478445902652146208660831041550095776971107486470380910856435105290331130852075587370611114972433420591160448393742399523663834320526918887381768394785991108410110200757253223180520268339062734575329782158527548103394642259047362291627562203395841053725469323350265891366524994757214978662703344697627916664631697433140379249398384589685914532041921810819061457311801375464916058725341531463068791653847928899845441709978940690144819138294065106033326035139075588113167024215424711514461102967630703219406368832263510160337253623651968373891336885389636975385308970805432799900330208933711665517235141811894710161163741155042648455621290029676217941313389283554962778155827581789409898517799492488079426411514258187050693579854534096957338829513593855166915053317541391543092352107038625024241356907171445989784219602577210236489224651202629482195016026625809488891233859189578386589749194882574028396883909427361235681399693753330825358286224427282935214576594484108181990321989160541587620954234548533451259164634759115144597274390966776209540071400368109982630830164545580483749914956097108536654997541247322676853851823879551013905852901630274306955893863879436926064380202883456720124714283737139807124331765027641611020808209047678759399087752953952531784616291034491022146673750615154671824158235663083639511176623645664074282667108644767236959106143743700113149475253492119794526692413398771543388846151106562017174056796730040077188865104766090039674729616960650241594088081853841992605334917450700674121228495322927308474423455640089388273838736300218273710349365544677359504205655105378762154750304597424565286679136058835343652435603313706798794502546781746061821301508692842416901712192287007921645064017673192189685461288176102113906751902528507360467518501591115693100752029788859986132534695759025560890639168619228208096443422314484402659411546503940871728622321842054447747695894009912859490258561926422946395318533223111348843069639541952106436312849095709456557321771284202463637324066295454859358105538555405133965038131018700176870929109988886620049401456460116069810301258323683807298761787070437515847101245219848594592740026457862021591805542467441893284128655136581565630705791981866433757032783505447066637186732407076544539552520303700841523119251635492010666684575764954164234809549194768375561672669994555490050472054477930579067728612640821181741926379536957994442487271300016494930836054553977742847281909533293601634006145646512475263604682457477386695299123662538427725468582998815521899162216161306500961957895069991361982598406321997997150160812679064984192852897156098696806947195150152432412490511400757337273657331353142498369125379200691762014674206134994038019427032922985921602625211358386282285639308153067514745829997345477792228009119517907874003482077836356480473827844561936352302751098878492266947683927315878255841232180532065200305571155927279170860460374480387460822032616939742191150324818037343131301900779793390643359953354945383861096473156953126695175362100299993881595233786509828754915762520841141691989029146705984800883107447645393642512307345663133159689481410858120259529431898265049342460343625820077428900301403547061119842121892420807170646286628675947257375815721973033616398589258416812781515167304712656579982998627711303148365165870830193695443984405549831204647494431386858655671002159242128603977546298470449956189594066966006399407125159822386372870117051960642796574368956855512602928211129149336413171062170530868471484043422548961694710679507186300803882715889258725613069890805812014221104538998837977786165082871664958818980296720672659416850090052619185992905730247619315114976066088131504168210944696344997241892285041877448078653090388512648612883499920986448223043759522197640135617221250779305296384335699912172837767565392193353194985832513615242856702026619340425280183449808078254957201189204910088921866722632535816405377422832270261079579209145741268009336154929376326717798085977742746357960947132772454251175534278604484780472971490324314483052698079302823415885307309222758659336641715539906939269110465465629205899341237754867836144409149873076593997284319155140046676667397128967790013937769937851519613771953134237909888088193906418502276353955234545304675507907186145977236940190939344932324638352625349876561358831639838049313297543963337833516419441412511891131643659124621769175376523116647846256310510278684387070256673992386284957935025853661178942150355816252226301394371192943060364146710266208644636949477366684414431734074438417548293516633674626015914577695163110845815936260860943785750259297557578055471194100479107997205499710239832356526607669187564715500989428257973632681110275384587423801233715375845151690735916215780281636905715329676457623141789145254694887761104754144718048551291362166165761470271816500537718777689796401869265952494172200167259607067936839387996373978859853268832223899784395554854407861520886998577477859016589109121749576986950843183166304364782878287192660263750581507605463368131701083254893242183598221466746758128080277707792728759644843171653068079774454450937080156456813243225903663795794268511325610050249413210914192643035903909613791817734910575299368929366134487462609025453468408032298632290772918049244742354833295034908448144207647557261783748455739715403232248064008641533123826157480681614469067168448016835024608440866892607083127935067835146401789974662241814614118070871069025346234471734264664664153374510028730149151247598713283398319130097892498175928721721939811736093154164839255676375283433148027201011701731716635926061097570005468870387753470210421613648138194946053229742315642599670068514575479074243017593888178162952628782106626512314895662966029098226947005430250293672069336383411513687342992865720290048545641937471854077889792957819727375236180771046078292415938886943350524326490045414029365255783659562952830860054077324901446697546044623122390129691424138616010440012276878560072761824634602194535425060255853348318595897100005275395444602788460441262198727175668187819317870852934861798466318124607838084628953328161816023429191398367069924394501837111007096624340153551781824570554075241542690300013029023576795666373061905946681441575897639017004294735151252011334541342856437162540773065177787030880733345386163806300386022786850827381451268080673970262124016542356406523493034589942629973644737855599519699338105539841773572694277892746908980134287492177314672799416634459546946618043410320703798931575384930105841806223507307348294674808582686580597035034585442698495717236350353895571332451659419585401308340811809532800606452804191150616243347205967604742974953198677017399195373159524194745248478685005615093041153113898070773596153225689863546692559601600416085388633170727729451293868610019155894967509870370378716623915309053858585325089231104128206472004740498558179696535548606326837970476478414074419267146578807884593776439934283305213961493331682016563640825613032111416787976127919795202840828435415074270711630195894471823167595804233625621096317099893660023475013071985709885873566515277557362217432438950358408213895884977041302975975638841334409653496306459400508272975757477707644919460452431248613705360696286113989495125482625443302598042065174007132928430414463161516065847599284995750358256722131502382182607118967084709896198854303392884798510058801590487175701697198694819418476312261827254138398716960119547135266942333557846712619142182226988096567243787209651968726647250562971871358945347230937974853739760933939828095095920481438360400802218186459303539283863988492904501745251050298318767334354261415796691505264534134786866216580437002432593987923729127305314682052352358589496905912566926225057818277392268645997361419658330819272166212804499959829556502204434420671965889387404438885619795908699326153630995162776160478694068909882921769200844935090176452931865353038470770317464212165433808247717057722458204582734954708490577006385099089103955356059363242736087638391787669725708316665461365117655509452865177660826771559691441623172924233578925166628145976618596732113858330667862592742939739536678083597766967721448131608443982357844317087120128882809351641909714623338443521727297001619560341954462653409712929793489014568102160820606845601987321703348734659569480377811480276908773742929105945706083653917607396813053230622883835401361024326987370949520964541935200174722388810440865945985089617428539042300855648288435866378893063791084724044224913717224528161279461163018227691320768821088455407309065118624552709054147334310318997032131124211656556562200018161544665918365177838201043679061378155571761671874908001546553795501825322306999698595896601038211910025892370001513707611512163068498129218081403569442155845447974150851475215276770950188324474108046428984249260600474895428682523192037219784264678840566593191607470687853564177190801835027227872872758862102744607428704893151971402946370707773600032208646155134783172635154798317840234643070032026491483351636755882253665360560581107625540353834152494172585197665861427196582449347565796917952594605282935084383235202605244238538172800885691945128611485733912036611221406807307785683210810896223074895384672080667917868711447235802343472022780740922290285173776145026471569442215958438423677251776433784619626168154933104878192307806000529389090757544905675552345994038111528505139429672321186285996267241641479114184027577716502602610246032861952658131006280532874954747437140354584463314531659196311705909495908653291609226640312558590422391834846401039445997395354099968079505387473483959228238242680513980592371131059173033767736033383332699175531379406609136742475994718390196692639240264052161005271401342829028174667074268873037497896219537412219254069732778341666608225461597827786942114838963857717416587261121961074080467750848024747942477885407247881725607103335846898940481734432202306523003121976428128952743902352913349372426621591893400952131930215919630645154843910303462957981608518749306753805391844037768938755336093021397575373432749900646501576808516404578465446422484156696696128102002551111181158517041685379951772620585497694026726735987859004625345246946783559020522740937794178182446584060623752190282512846489964081020493579911837287532981560260634602528520488112051881558576633392128932367185866026127282547929266769777232014070805412387063434428495494780058277129915353661616661033455480071280651190042469527987872503894560957645699070649095237436502821489517742628432394421472542163332983895137427364210734201432488470400606280944131523460067872530006959073176225268395818718740886854643088173309802938476073524425490916803384668059196784638864536153830670705862519570671958751067306463430275157944071389284459906093756609272194022127175302409814694084195690718289390264048071127852499562500292321424566217901693526780468013062693618698577337222672571854703531959654326422603706693696671454011111956704471227253026211552487069581544889772883230827698488850608279111139081731499452780652066993043267106503295431428137246952599365412863890035638008209156367240133576033736176183983261814436957592146563044561812756775759782864943953312671841473580269871288716421079659137145039660192379007235021979613606712354538905073734530282273626241926219559096519813496415498931740120195217022073211752543925478896123359743134046527061107855687149088622075291342121434774754802243548923911613071830674587014668305575451863423215663995149164896450209494534017049485578535941630747691786229539774672548919473562042207780408235680573025133611573586693682293349848791558073058374062203311968492929338590540287216027244667984143752878423858061228575043469044715616431408178805170003575168735954588763239296944747584985657966671294327678183291492407125129968036298321367807435161732040945718978358681599137167720638196849178568660012526830114068981175750809183840098118125863275726877165439229213226107319067595096056541822401841988072200171893460204272324376850246439074860869622754144103125790403188722578711974151427168986993755282195717119223378226537691382327254290355499886666155565711778043989024780679725300316524856819338389200781652319085415871714343619329491454462716059021147179314240517084102507584206723078240983704620540022280536980562891669923216580716027174772197522734523971547010445190008612463332105675864046767255862254546332327522249722872705602116722505873663519576790549455068896223964520640899477588935555118728489885642639462272017024911871042304937767411680618169623978301628696610434951552568414982192037069311873346033822112893827578565369332921741453905993063656638295519080310586403957967170645125069024048101485752824431910435159292208711752367468221569100102116117428749422435195480874446083148928339980713913807908188326263973798739002846118468191001616117724333109083641541987541807037733977445557110216368868369482092718931883568868320710205781839549905511716782568313008371960664160187894415046430360840150108704848101832557251961501761398665169939449175667697962281527857573856960572066120855278279384729535720754186370134165114337095389950788281778973161316936222493522758370755215352880271385747459670350821817555092795726758602470102456838797970516247742436549569979168349233402286483403564943671147275876997496127003922120451516126811518612441159606373752876003977391263799974833896817238777043506740506750569672345371864121811204854170016213900587792964493500390554650057724372318677985769387240356028023674014795991659319027996831710103263552862438164245322177536507737438234567850772184827559483687383313493821487801742926591330358471804761985325923382091738459263400533395721139811551061952753737145788773686332242509119935898355684245380999871524344508947858247348633709151275082118659410091130210317442218716231740810340693917521338842405076723835129675220977842863538838570298905014847554440037994951236767954774251888983188426719171282079334294209015555422315091781903552518808224945864186430202529271887860043712056330680095584516207912196741605949884381543369695074188379254166993005589518385739475860803721627331840611186183191932677529674818474105306098265490023367867957008084843292131228596336822517114953902668257563026467314170872377509185428312042708551056014894028176493047639678386238843685111739422251438819858659240683755589385882349259237291397741932065296995568648092365867295179690072434846582518321674966893329230867628957070727959583990263567269698916149414785798513252974584153203163632567694391377856215217561984959149593813995653413094527032166068000399131479724997406376883848018925293233132631020510288704136349546911389581374802177057770576501194210958280662900090662095455895952922507903751258707656594233857395967583641913108206498681498798743722393106074051391573390972789515463450841418701100549293929352339490555047766887533397921308971356122321260681725297173591912420857431144151368072957057444528520292303936287284208386676232012422601199487568377637890107600034834470499948033350312417728255540974894906146980132234767987679840168817254171635746944247150342231504756520963897140711733287199052261823043006126114252247910299527330706579886439969906275519799385460440272584288954742957646392921722712285071840092627818724713932851660685285982735565175690188200619518538959396679169174286774351935310155859762958987407870922404602998354439639111743955698602029780840003707417351987797814208128986886259826078288295978183738211767585289925827565779402838753021953810271636576068979269092994122332081467244448161259771625678572439467574310722893906990953795625843081016997492185775712164926530625680478977710338506503873806428903059544280141977623653210024074003170486829110833048147138486277776641141411134700437854151722745647565944128325284064729281703932864946552261250480812278066546409627998944986040634747404485972976781120214893700262962700776864193469836912196559587555902958134816110594106721641005166328858751754267871444746298559931504398870857306279818817653718404087072371699864257047635274949761159871864553382718048493579181276694854888265754323836842503332959906088150479515193136075850615051464547154337246953751812229310563082812175671557002883097583616111320373917334460165120259505295388547513695198502245410091402077857101186056016495285112536373805619379469554850068764425793582662707455719384487819529370273707677240008677941364617829174199889329905431800620213308605759696324922384266036693269259152426812616974107931936314561755999796239087889054005159046357383017306645683564919783020290080084354188266276630389750792350037683872146637083866557871167267486418877938599458824754946891078214492864675530596875941535094743438249126492947602900640626816516682605201305195208418224211228295574187160519653248496984414326681806379307475968825838657329924020530491312669782819764264636555861737257814068684294824319546207625031705420139210805604310539357410183175830763635855547729854020546243649845601868248782494366083722916325391223998838468699724897523320392222162361968551303605136089772525892185588081373868442628546123340972947247594719825943101552197816967445987451719493427128827715018892062967964488246823792667466443334372445768783650932276847216365327926597861923199074004298179392113960196136180444974088157484449393057819510535678079618030687246041873709360214093782958661881038332606450679308629300957340231809239541386491643102317147100996292144608694177895635000192699977347524977308175013558205517295239743348494082700891840129444579953570382161251977211930817883426439122917688247534058840113568569105556110128469538257160649292455770125495538178221315798276346688555166781908125803291407697732169461733200753831188351371722575029140100302746898370392206823932185116648241825593601913875995278076109184213356225938880285723261025638771435171829273007782636059405589499248430090507395644966266043817059736870942773278841071653096285847720973052388872842785519720082057712301040620954073373079074131387169671398995920094495627015799575134586327511880843735991714296374931888441728441203677255396210750228213481462502672070027655804693522878513105563427688315691033960161655259417825374315145562649404906103051328573363067642451753207617401453284168849162950308175995281453154398575746512787065902650161423462787919943979881373045162760766710020412069112897469417313735794965594375974956308486094552099189628687531504907591513664502115257148102901416617484505172022109211299398633088180958557800025100523451447550426868326560172628959744494944887591843561078131937913815382390309093721836603646135764381009539783815641809671083958058695841827789066234323997208547161604404175984464503317154817827995268851617598286925236999550626604592071525730772340116614438678543402094777812129734968926898838805249706254344173961095792441884758666300444331787273273977166948835139798194674903742037590131981353446598881678944316158182333181410603508153726241019875881115467051949849061142385969447071430293174683524472995331088072359661667729260395482216976093028837194411316297526689188305754730812171232232759885791248303407775925676608299510642300281996852777768199769883055093201925791029463732749668020201663207326183879175844621689090931604627844837810441684631728813735554397315449328500999467413114761308065528250254403976540862993897028477254230574095560240576707777514568733560660911164027628491122197962488794920919719744081019549853205535106879805939854476610035873302879397534575147487361237792750001285890838124514265564043993816257549345055708103270960111036049013390757955796152515098081520479141837643074934843573797360166050050310972032992204811000466239115836652045205550156919651876985753108511882418687661491136930069116855035088359761295000133765876206264988158544668337595162594970662428359374048065875420385122260929639954356642191431821215647680410315320294604542891058771702552764782322826397389916655528201619685465647108263166199839929141913977371584064608064931560518372668160462885460833825904052559232525487446238269331153203010072275576319570725116644842080301041801000099562254127030817460181451639872855249504783101405281644032904505037088912491743613674032114219370197881505289669191115666339725102847562282992104827722062686219183717620016670009053810181751370196656859283819369817231064093555486225217017806503433002010433901979974955987043812471929354541206166814790764324248093416623073798826154926243464307324973151682144010822317437720696814823821947957567155510183152862135940943697201053482304972675263823295643409251775515208078695710641135715599079048852000308998443365147681343040869018191040207879490419762374616180018732366582440195052109398857316692979489574937337246763024379822466855766884082027595050356964417938830549147428299641540485763571176630791063396867442668848241378741548273026356539352300227457400400244416656794366612151602509862952062214701598776510193718786487588830598063811864892771840384202479714753671060734842525911126357632392882717222248678648521608622358779085796069736448392255210753157676254578562770039244789762980080114119062142629262697802309419053655380084346108322693314186046387555078547362529458426936223427635032691261987667845238091053339431528910588595081638623219357166383699289032490492637052171946305255126879581987755290232474069522646558592105926002401194840064098002234708355743767736177056412603785567738106616845730476429457620171592154169334002572991876071363876240583415451448656094962033324804693343971049655762961593976297066885076151912827289593786978612335466784190032148345961782573438747585877866636873169466651157284680210149853901486916506957079095536285469138716305536975713260497539487932895088897504170589492979122928801384114641735140243901483494834409953729143931688672666483313110877950350806502426725371864142658000530524298514622284509212703188168747243346596134705951299221048095966451392506339782960271547185420012164781651967965801923216557013350844615487108843381067447936669701581264393705912574351421065887986439677184369792466878762742038199031966088774871791461985146959497927495091577027094313929817057279935770676680530674028495177529716851853788475954016040241011497930073846142161330572955270016054391810800317095702174651593243580775626759390709029208346126331200520463093116748535810881890789590214029280969917635188168538897429905002036621582642869637367938964797111558404771553296286035254384909953700561524712929248676990664268027555672890771304268065777309574112795833229648343000178637147773757526066376510573370005006733562017703236272157804073713122456950658000451365243156640984666437890952561151060918732685290059310241623618121821393747303735888058667805120335707683260930111841152236686288471908674572480934644415863419356646250380369057965918569544434281190333078752166896689916778972424669228119130808073144695540788762360201471909443448449642513104143540910311216743459005119296214014752955787563506481005960215799329226026455031691241147108668318100514829715220249042985943756937570338605098047201852944135267781839044524208201461931353506761046047110867880032513540600125774675511672073716354515350775740467564546773625931751949192729383828125400270153639634824207098338947197211390269779083737028591772004215230901360237196816933917418365075937249238289489519664517474164276709632907353146347698053156276299644067206813884028350187601527306430952593402027069326960705560007852515677831830958168352172023874250887095001700129827874640770088477088748267894441591000564104193456317457399340710961313017248940280107713891764504177572008655498948552271911798121605025074599505076142265397629925766516857013912998068834834043746828798778085737629582781731065556526248271040726615980310927343756322517241490626821809097951811974808282845446725732488653850506632469937223827840402499495075155579588963804798735372677735225172990694311589705059114754230255620371048307037911489018290834087588784489118913514262541380514528544991223674100082286345619792868487982877148648236324475499902641002336502515672989241220856049149331110317399026423826109222402863026840378874308004697164686896688653892908888550368248120484065357924046286004252009793530283117452921291694013012452689710675085601970717871430469429934855367241951370922731663376262748322509274476186705355837792627031981005758931320039877991018362996148697365516679601189784980979283781366095107065576389769095494920284591367622918277356800241104271829900506958825477539591139074623323769794742445046806844549811923250629608830706016637746586665823451139765368688868585497251858367212536058416042319010759692026912642455928636726896504361503843739061537933763452893337923506438382532396661539031328270090078026372605869153779790158114975147835966443119371550705977443261867998250798395403690942998258104104808320235007886395827396058854085834757529305766377155948275300278135265795945014001026589525820881535809992659754496306397033239422054893117968963782091965731218156921915818767681638331052250407009455124712029121229853509863319745002605952990996962512535770232149233292422902918371756443179499090172671286814109424001797464952110063494507489286583572836218344886197400595237063756789117220552400857531140181692310433475155170051575252395138766109752251376967741028960751290945262473559316164142117667053416973858243176808948953305076907744340053429083805352890095723225741883241157935180802868909393706423574313640581743148081173871177101209961207734736385347508761404837469665602717907172815245315415986825003151400892309583685112748087561354970624136447944387706014246945587395881875157037375483900812799815791631191305073159455699874952726453184709944180720424647006422400301656394172717417000667650806627237898448964438331280533308212457629498564165297603683005330533095596201814536379552364266045669094815323866130592908413705179518782885391608178843895593507721943908599070306098695414578805212709961805013864668263659456801304277166181465555461971864802703143499103350303952780537243247757156615352629297022370341273398407043041033747418454751312289843463448330916072297489550947228603763882006699951808016526893652007159321007469347838227845290392617753228757730483437961779205957423133282267937961114702650615542777579969566350424088749089485675781914146684720090273851934678145121661332713792334190088950823548177967036634599911353526949132402892549783182315147030290368498355554225192095926849297227429329670746793121529231057227266887907787741710417296823683465725328322598147500162241748638044443203256050511016097157052407414789483108366681589215509729541596118296288633006889664464761424868251508075697207330114024656484191810663260280961610828098934384044022817521316916077634579740450864475489855262007330497703301794492992592746760038861112967479314370457661243564840121697434184496014918500416667509484577208091750005389728147541687340788808470599230637129070073430753620254119538840744931199230298176281213931055880082348406250930099997644892131474814295289425829702403391707464848524829744887218363684594752953380423422989904054834494931326707913553627054334504092406398982788321589871439975282687382527988299157585742232538973667841941847824658436829731508637528873294333126455512492197640832921896267728343750947498286934475419425248574830989321057292756548683804427229316157541650598752961624440712304402505798858267522091375515639737820662964271259584202672631426244640310288743224337081154626565983070024341815401839265165813630859174742356801721559924247994100839726995727440702846058539204237542075407869269292303264841667356384943911866283078498439424664091252943669809335176099933471059451341679516053572923368990066666874757449425278526108307843816754739822401873417280308868021968932020745774110839954737941701126209762789677561040688472393431569043355043959374765479541107722014662183144336941072065722938825549407692190774441078960782858753321915644154160895370434446375101547392688528295259323153778611442589128447421505819293383078005698254076079807225899600597394036231277487244688263274205947102627323438859406776639356747529167566727307871580276024367220949794901177866503153511538909855556706825130318082594517756757470915041166519870410732304573834282981662851191310555439252095724165413410178430626175894754969803965081586836517280998302751074023593637693857778317403616030391294300783758594105937457495911831898900619992467757558397915177066236795128383937563039581066129256624299984117136458324115576207274616201970763421260662472626008591269540287056742044018187192296039172772722464303552891322264081240237996099955422936516531064307457139228471369347805581371896667183641492159987755568784706444098572577461330647106456864642505500845654266255675785784986760641507932621634796445586724804825234661941658847189372068583455118618524408873356836705531375285827273464530211293376171297824409622741337805045325963865525611829159103009456667438178228249818663036826017325356595050642667153578863435969356244659821131047672824027073753960885977073252023178562350962966294149673282281105987913617663555972675629129898773238318115000904037277942925383892439202604717451390718140980303750855272792006735255515726872169464602113828894713336693903910988220181669509063381929097185198853030461072434583732278670132155484148801537883458757470986873795835962457998101371132634620604722673604044772924071933833190955946467193727745045784981832568848781673614208350964010928134226910242752979450424074322875920275155890405752597769163775079568990790011179357608562620576313089932998212786942849152631002370603687507343001559135951561568906684656341482072018629785954649141307938699969538895334815846960059738983661910435922838925577737897485732721502153177603756658364399672630715608773383712188436267977700216733858417799161230426652038063401885860628668158054847759023612184588413723097590282664271668130228199739647342387168536768942903048215335281477146965401841662207280027816103616846025273100290501400476497105386722611733121356460862479247422423136568509249729863524400434851470919631696999221628480471459518981608021393549822530066375966975443126596639096620006301263073199678935062626731812642620924770697164403324825866519938330314931559469197984267612003966045863866972201015788625416680060102767507761247886189315197542287165885567727573530855324179812136845886842407006012451190183586971148682690444685861261990820722292205497605087495168220254730089994677805534741907220099089272217743219888597824255068651385134201925332987983797103223583347471587441601763385969737763713020580969602815567691347720622261608915497027350867773473053009262037630488368229446130159617465310289395173969224913611542953753887061037544176966126898781506362914706833497443727071089188815128366375777468687193180687785128334568525379739512376115254454972271996411457764941520663892297095530398936942794861288636224482830713195169433844170534167560005510649213833265560188061399433796080720398213642386362348032033608912171232984010644915093859318605156191506902055500168138100680672346717754260117089186413352088520765622811667571368215313648192931690611929246758643923256745238362959514232336739126370937567304572862014036290027376159502844050918215858964044781802663671275632445970686640642916191874008986729643989128576601368730858711280763389352215580227553234561000011996860379653397026149738464494277075322851278031871431149372405697954960554377011288988041397460571867996694628534405350576042420539013020311920535152345874881237317010247323158272868514072743121370478206343550711809592589261624250995693164569714989943343415739294968586965477039536600223562315623478462828317291961868995382347424217228595969643363886345652501992287548307892855087419096558075081207450828427802172568045049488806076881449935937900947631487975450155259484254682063385016133091199421369323619032897957699768106364086100270504250512903728636336336009429259604858775126013358083790147404111140038873509188439627229321028509151635583435121434018317321379915955146826488686644326984525983733963931848065007396624624086873245824814494088332387374057039409079768712880248120094545027151453304099706140774333675086185314571752011144888755660923397629275426696103405264967039920714485711268395582281791367551715237138923636405002368999569217223544507626734212235084294440457335709299668261986363995692434280862999586764462804267588893458612708843674809441081996653119264115414038168634657018535178610780750281661937786220251552811121932755517401761292238473916609900783752758442397801657480698467885473080056516657819600802796637198913704791752855931050223461540786095154866618018256416239835359875918642485964487933986337883281675673456299616415115334315480951017400269232282643383493361970747362631342105443745371632474139149874437298218039744155069518197620497704670121587941593906281087760663900161116422825796474430175912982578367800888218554386097104869672572220512012813499520547444244132915456056405278031334848026414291889820679831118669499283032528173939332764989929452515344861038133970522403508730311292585334275403838180001501207311530284561737536776525336679439385150738018003904736067466320321359256861982424258268359769425988891834901353107579210753578435054581177910440173885377613103029602346818585576208550342291951258953077085108630793762286052868311747334085246924630974345664206147068797936256281559863678651462571768863194488259682270894094809880047820980819652121296633141904163398821825938680165028498138901321188910367259686356840370100936397641237930682399537052981985739680607492511141005939470983922240373094036534762868872523557303835492848641021400195090110105269941824561044839357604781002492974528051356856322882716858531582971276158233151891719482758001061166682064881905180419457935496584015524938679537485836498197136269679501495612727882489469006613877101088139054857136430466331792419699348880275030709236106479372923090515677923301012083772841055789025139544179232297023409327666164031089353612346506550197928671749810611330281107591633975615821778149023779291472053786654887146920887960519006553068175199345764540218510930485004010070298302470141547682197610262070782011925653317268842506785848681823858904797722117650755988503916220659769243094933591837382999984629610968422335415880933470095195038427272396702222998213640926665436335564616587976375058610594964023775350673108427752899021809550290975734318279394440428416358270864880485969282947686454256522237655921232246922603216403296260534406169031409172728743109167471448586673392690941339233500761386733661913926579711564195722146166487921863647537268166412883393900189378843793326251434977519221048592357249759552135526328004712780279966160715100338758719991145937668205227082065799781890086218219812512883891599242761517474176060628588302898767108129468847066054495623339694990630531119985442510218478147160037679096466016472871212353118311642169976778686673564334243466986365344513421887199174314129751797950651851553837829443114529781747000968553096342855200040706893048904319035222135051752982838150749982418218000821221027659466007572148917166211027440349126105431353462037549598873961319031563895923400396306315474591446822900091034387682613333973586976655238250397554109988856944682993741153038832687571200373998605241669711765078105718182871137505737525983945227705273735338307811724293039942677481747857844953351457815056668384789524604391935013777635540164547183608539948874762242124180753264255223623552479165940559652159428149211270644198518008427119603828678446551583435167688573588666553003921273263633972173219402401124006599178619219321868946991468490901696394432497995514681903387201746966502872610615798253781676270593345922563726703904825861257663375386894111461671415704013982328958496815758955975431044256965587826036917711042793079330396444712658210827385057626464113041737304312680194179252199577381090689340485252768397841067596879173652543261279307445993434244047900325290895534992281418922661550812552429419086444125818202897217179998468772892454516364298812562350821681827982913425388984126955182435238438077653530193929892879485539450465461177660211038000573521405725270908900832450369396301049829459790714288406788362364423446931911624539853686268710304636625701243156704455513173121912550641446268681519104034336281374781180768981871919107647859995453957277787836557846630220376949846491541278873608468111524523525132092005069132335123921581954714785214380171991983822767653185529832902296462176080830802645387113981119590227841672559078473707182150635564382865515640872276255962694369256867470993257820815786640683515623717945025975523024233779831572468997305168610814089997702278918463422491681101054187358853541370367315073491657848058518225699337953007855727095796320048344650546105075438799987965780010115965113343297807844866599666492090332371119588034614815962169730809802546781155331497414395624136518781926322242212126111738710549042141475735106642940099358434541862752068338650821707482901712098235305854474297009381675372680498246961193531629850821561541696355956619884851598828197892504837854594853763053035497069534807602889087394226502473707282651848124647627440623610895891976922596684389645066251410298840550567389783772580923011899303697821618076351497512614365560832699622702694660355482886943728771779737519901625858662709716093897141545215703829742355188536339957147623623698603601879407856146780179068011970264744280241270022501386009304740940756535861386450730188880816321752206131359702430844675930391303348495353357652317883541153497729501166649059128584178637357309117290375882517724184531545385627322070576223406198242603521974762056186275589544897707097648940479581086028664565608272252695985519978385461270298235368779980888623171645811490011656251025151724341088440915797917995629763446347157136860456878906621662751154429014235621749564097089241852123469014149323781586450975647598770689623878782662831513658677385061957921344872728762369001812751637846589864230971434757857925950712982628739989085828510501886375346473068949288306214869544876474201946501512264809121092027821679134188745313732174945194393677458066949072869289642013726378250347447981807271754158618275053226848998119167757774874328363558544285482280050080925725005832674649892192193544215266618529587178798604821886174419756798320076473466530449037461275683564514709021360327461270719787442267476101145521361347025798769035862305257904064351188281606744257274116545006631572193298120555130320895458816124855210230120144291159148402644227145765873589961534341182329798245978115137706461360477142201711148939294962739247370367876800887990841180725325096284411663519127318813684605298970573320463122424076563072262684462518435454679099329397799670918143275005703772550375406485022297647314774245937971169025818585971350181525837840226008826743823522206971308086725238370198591164492964710878145247798991664026101713791729001801945443198595482894104533620503460827670071715903641493865243010172213481855256777819746281187573307042965940995815818943341678232304471359759547521831406930840693423425201946394155136078140918466950373153258549635826856536820367650417436574440125932572219536894850214488003107084309629991667069916500702923375659565624933801157370887730443314190845304595425957871631821650035768251935133357745675700588161914704655707220183889843080589832307924485840420479721018497774222389802977813327782906224947602866479412749202000115652479741020715280232371417403908875021328193726297572176426124672223252961789083481874771195825719500291853761627329158796895850612869488950957167596051027633941644537148907165637985290772701585216907726332268599498069955414182719368566964079778738649404506894403709172739430832483812860701711994925010712270977943369214884217343873622958327504803408151183882576386099965353074216631247857234791487174472540415416773977353237313744239167566833806353461094295031803795481830283416595796483501292957365465895487529271418224615198939704286467879312296872775022385999390589798509307911339710348969820213238053571498428110535846122318519631538476272238194882401919537261308509015544269341408484501832921691814535200590913409380782825729312568015011710832748161232705594554755288985764806697543358498041118309129528171435139706219236610969002083159194930308038004973845115615192409848698279260826812271621226347148596294660096949165146545513854440455896652664662982086064347393145601511143838948243766587559351059295822011938974622073918825855203485765304674037747132964504110979608000900710591343836319252138486832513884284659445290780447755931981134704905185507082754334957936637186597479525287614445445588036071045872225662194074538343182763581387206333925123267952691961384942467992871133550065704449103562528703125906970009675171982674248869673485191525736298958826313440737685839124463795771811839203585223630941413009882017830920301515394540234862767955686277053477361341336134317585305981942416489676597556231192802267972844308029335258595346796693527908025106889890416867658397718666525654883230613710976990223982460773293056943086378123423903073449074911639550237052959801640073764990856959259467835161700361294702814169167745121707318499061934110030049405091089203251652687597768407464118705587262284873062631090548736865578307492654510596420636439971717748080338514056353890672736152125278745415180272686999666574558049098528753804162414945590895290536376810838384749872338278130177910124223776542747080618611291354091083790702438547356968066932883516548845005352012545630022740762876000278189965318993766956670816060057926029988480660638745816142656627627329725980095658264701254169118655433415822429907018333755543680571262925394730748270102737753326939593480305378090041497738935425959063826876494952451785111175603900409638990409355171169511294783559315862343683880758685638481120454779277339837132014719028541092502432025619776675678603186227823879322334266724548459367002057855486255460496139348791762845237209715060370465957433947025320105345797114452157235916326842359002881814031158383045347389002185822359619707660713671871842895835920505097371898817065700108283787375202306726249301928217981392660343395922293798810213018995922389292695514840425545795486212030618719481639269068006256477106943366219943914592210423843758061602910376663277768527226817696570006259704556638503536973407408207227989765697882910630087340257944774485028538901175644256833558406919119594297929206899068026178936593184130216220641164993719997013064918042881667510966296639857348814628436696743809159474020740288742741596155873194822128235455616363757894611643647224031474106353661551530454547713144116185592550750765699108573118495302032146220168891650582987626357098651223984827094646503032787528299803795687375337535716415521479527471878526335630061498225089848181761233663225672797172780076000689197863024223702466680856461997040310794377579412205802612507618354004681779118395976566663323496203021126651316734638438527147309342912916595567455598788898062332587206487405522408405731607262231087550407719046411903291033429063734040918385164392715796091129729154813213046180474066802816060127874401656233078336243332519384540670454715745583308568504417231482573105334181486308039626280530744470680702193831617442340678224612396624843976028501578660970713928561911413192243146036318404395154528637843315074194882636352062224068537845495990223161331834270204181760451987694571947893404166209635920188420666864988741994797423022949650319952954534696992825127092134911542609197235550856541416934396929698448529241878113150931117481806722064845000280403935035533744374173671255481452643115799043858242002941922938708780577078435380690843441116033558794153328681208663023556633905827616458950751783239706559553397107171313195001288163724801835194985992893234206496492880436690810600229222542086487829829271703093553360879781430611307574582458851927414017753109316182751299082489936862968980744190673829865460359291971402072673998845782747656429924381151283003008483719590206069011755478307055756820979619291526176444053747239184966054937252133565629374261965515036771671483560373797777530959727730462368559768702172881144820184385009748770471368797602588280033445607747994312416075380799456393243241788643752058312680632077761340202928400165501206568245053746648421673814740782188385203493477801139126713372994399008908994289396480740394567619797350949163900460151994454324401926213173037572424658359177510621128355774145589025850168775698984245877569007901669079314787318839760939426410949706473791029409779926970822658970123645427337697603342645831712790323755075542025678643883217521252642229820136219561438076582205074408119972419464079449596415732632185306616530563842272789781017688122773847946064497997259961023859254631274069453626908864165799837946999674986973980073044562458129033627020819246373823314031927825247050395863854678718465140018834232159409781815403192689146719922220419531674736284772886261896526799305097044457289240280106703523752379348071706564493474639517562079309434676615180075049610076025272312862953863605214071893219208391305218496432349949791991200890165307754616675316037767465559021548508509086974711496890769811411508755672246987191783625071309941221218330432762210206106532007471348274015420550095457275511335848994564593142496752447309554264260302002672064776155180413287597586731165235683203421413321284721833513329278693100923100518360095576387821551103418639304238117688705510599501721254943674069281019270002314360939099804610326099677937361322696824162243336045221783729033743485514028112106902215904912300195405845084050471365894085705427141024821294725810678000125809034013496975466935491888964849846715646310482114803872978087493567631579909566456505622602631734078763511872743117843355670862454794269099205210899847682426474669808624713219772097743822613737554197719409313951894473119677780572821029371251358479518756027683500863564207518082827369058690256210363671257663620241170532231547449676895054945957716580610745452478009377678250055965192966433548008435821668443935750533536085915253850250215673478864284295931706612909790856665422329006346108021386220868743501869531585233382224803993271581234131627176306983976221386094879618020374513305514739571759138117852258346972522340805740293534468501044634736373166839985006182806093770306961736008400369700690930350003048728422536968520702869767119402931820532293780360959142075270637945447893538004126429356017969312590126465486251170743188118070596756583082431525950730888322553907288736246952895013610036824424684511792149061542193931054236819541914125761013475923788030185358665238957771984665959652399793441709980507301210235832141398286208541517756296177344586438889901843350239659569806122036176567841673688952265849842575071390215028186358938629009947253583934644766066031431160730592823997741918679489127438676346083954931023074819346039906254948534391762636758647266535374315555450755337773048514052007798545618546175476038027752241516869107838155803412318812065991032921152520304183417727697595456823400821299851974493531754397061837054715062948324748970453477511446653665512078605719039082126340693982011102668133010047999893862426663164039773766719831089359763000012744522755606136926618468718699714570571345152547025992388174249958717528273840797698359947133958323748729762219826811843852804864202508613225068390116903535328791761410983628344811823984174181475184239803712284362300745066554293134665928034233679117277149771230052827326133303155614401041187755108032458624668068697843919926613133085242381217234437451126070572465746172596918216408649838775434440320320285582876359514892151691183860714589467265500106976139064106728466556262082186914346668399367590879969587792221956494160619024589248151826666675436302500065616364227883873611920786941773245278046938889673186629123060282381987740448320894846384476176474322316999330559281963596880064398101470378634449147233491760176743700324954353436470072513690741746329753871825541640973408292128166219454024682428361545426002981418276735894689151751763432169935559674774102179658333282066032636240035267565379007043559222753220281627766634951409702869057200959219153633234866651856054449190982338793718458577720553801677990551480380498265552381701540213516905224694433958858209597896787502961297564505827942557070439314094655004900640797715631542442998658282180869876356599365989649673321592409026424577765323565906335435557308904714734577503503575561934585247632898135095022944386428071049163872551657071415728736342621740605673500875091774193050676894734382834258615955797513252833165953568329228141828227697809232921138538387229785902819054979551133613459712147819250697696156569052499300608588539088684318569526185394032507704675843143389360589617669924137510509479156117714647201400479643018699761415781505389688100432204785510004167655690418008915084848273483051783303530915158146811175701957278682954293009372069738957561370202831228148790555165938456745094000533422543890290184393840818611521344808774255242056741431841593066963805952481648861451626114559230225226683900968308648310950828489861543967712475745306718350355509707346983705233820072127301914430260768165066003541808907577677751052006866216802376574378552139794891836801143586156892445544168388818795973836727135077583736059370680165807244436521421641485439321409844805154241103540463192888602033265927331231233384918966600843811294094526422064268765740742875931663365509001688564143135497642240148228638797255085179791595061286752096258519705383621249346797709190894466336091835381919333544441903908695700168988531127761222191688199848638403615937313884219335277043542925759880841370557201532792451888569315840937689213697812816100254414049533539704962589649469576212230313974095169119697331536284481574021753218487326296416542309303113937059090975491125535091519328517003046454666539722278139916808334532800646076682590812909261556903378951458896913650352935984545850838951601969915786300144071017989756741800422687901801054836733548898795786805176681626644208035670264442869514102249707650793791092785931528916329337436363916585773066431698226283460520362611920509178963059490187143934615627817737220304912417624943143129577096417624191225087209721975114708928665702507146448084542197101493703565495151416638399056448525932625014717421618225375106026247853325530795953353215119434872085583668540517945320565979319820557947709572834692829241584661041409330145899170091778981034923518599957623523128950750357300206127943958692740729962292663339067364981911714499147592467696657114228126104816498471995618155174516881075853841903674053764592034512847521123842570444047147901067720831916402024144095571010512840907394247359414919361358339803425180040500164851536888065607795094496011513652245968345293148968284981577236254179811864796982214998415666969295016538774652800656663729579567472971009388245351852946738595035799687865935513424792369608743693774646154050685687820213665226343533536961383496300206956797995253683335426138121248822495569124260355301591282986462350571164864644654692383125598183892406805457042674858341696752646087287584553638903507392106046400888638539415313143061119950164422887170038732336645948582979489277822294464811758973411594171764357304364311561343128337082604422170279039939472028626396742004137554539410575455957092020571584445219103220658207832521328655276131126123331727464927041286706129075820323302555422033336946923920768636724475917657636711800499589120039763678524353812287568534095325207385977864837407153002969258241313378914284165405561716699403257081489578919309978158685484594104985926977277935439448837654967548393304212463207304091482471803777851794883448808321215694193142660317741858998272348979948818374919286963966102768635828121902004213428683117069653584528050401240366844301928429213384045590169116194285743227728293072132113020445073608850892617087834806913964213669963800585328357432657992672524423399679542483330865188174653340818529404286822950943560602913246134770160945088947194912976960168828162396742772610005610255626538346905112739747648309865433003927292028480667788913002921135628518747650683528149274972973874823120460041833134251638998817931056755965339194428656480461943338346868649254753407627422219584734059722636331469911770329224626944792194573319862361787527844794108286472126880076129393524472319480237420721848302275403097162686830392915478290134336423511572546588548207271761073850241431339912911025669019810851012125404453984918035636733079743139316105973521212259184475725688162752390821187242964918536100890854642708191364710294421465632638008639494743273282437370209865512058991154179739662740822423896908192776963623499933667147869768867802812528371977449922590740390471823843820493654372362293291204296859465647792520530077542494601601629787457072203136063440488289768165504006687410911310330567274896209806131614214722552190621095546251590584852238658076176825087020045612153482286939162821485038207098896815096373320827139668396936171182609170871195380965148277172281059235915132588511786746259891129407555062200423718828590098288431677209952504080754292434077650839222462516028667986238094358623976378535759630751818697686032998589402866982172649803840005717500009579188611260973110825886688636983171623434521285448675849352391645541766625776372958752123033660584749789270731258129078937812604298232158865750595874634479675813959453809785572695537380499816956156326029520288594509158864408464069728472449513490870339839418085720291757686817318140460441392924970526865505911065551937256012175012807572024626631834007325380084464756630456654051128661098376455643868814078661164340208973600239944542937676122966328869009860094272323317097246753903925709919955757001845109613506913393833345643870012052299881263119235353488470877516423856181082038715327801628823149119472857567284937576996315992901687963251162895781070197294444517030845853202176657872985938096144420794472860468927073763409498564511928502128733950554288643957777229085159991971183769527929091436768390267529136101451555956241273446129173027772614119265754583258805620766816054756946478338826126271435536865537793886897049626213942015000486686415054089912757411689872119415700839855876804300578044238084966579897876484521281777927584242276649287152405248196225567656748156092983447817173660148435352144983744121815412621609814696840329691293248465159919581124132428649562342131136230703715934970870702581045975345037913918888615803917168726124432889767228730646404251469156476402415059094897607404740325573827460254066719434788505397492283903603269924556668591525066057201171244100875662316088976449519814420830921974092087551802430949973021032626683988139290752467010252304597774047688995917385436699957020481755313998078852399853781840247490505933314368355881223229530164100406792464895503199732744020936044035644394604169393157198187577684634596799744022217806857740282501677272063272545874919264778418709379483356745358739300102923801255186562838586007239614757765971355740580045864449735251655893614828570947989504712011326013712052318147315640345350972783762946888272148150394516732862547351117987454488103257387343824466203177669777903114320436515976244364049589099396244803068966378454880430597586243257620521034202590219153680443840139017055305780192853481422056899224549716765475046457570256782205603529701741610384234584889881852595273157173336066090555276702563775765298172225386469948876888535086307626232674934616902085616039858772992337788072871515664849654277279366988790155190051856010283301360713945202836141334561786548254556496560760122757060141695595301945494378539028178808649060308711956767528290671625468194438852099026609648393645593897395693942569934514169278099441120721236458312021278920242746905649894928163691906826250804577918236960695043993513538467480708276562608775188369823771825624147219485862463622753229147901611777413479059913463472817863721560999298793990339962364833966415987170746972147518807974529836547087805646967125909821341057626115067050987726606998425117331203240502266204034026373456277796798156849751739792638587827024621356331104475621777955663783263757428688340452131162955273946535812029705433090662331376574575213759660594521392845072021303285256665646314332181662884480983907067896583476761580478817375955029976703228732010099909879445194586176548414051502851296885382922128197087840472618072608606957283200475398599338841460011564151644196503913212925175261113257787843090577560484158884237706729158001921319912331922096172155095147970996990374776679437927308517977648566659199510979939711123667990288259736091653265693719615131212575248723566157547370442408879996861394088245500524326389261692694935139594152680793556622157710644464932622025757149192481571181774737936340120612290554768214307057404226690225785351957145639235752824625099770289044561078413772441133373293563903671678365155483137880094890258716408758894372038159350310759147146070372043751344525127176469789446657636767091583746072428953189065113191939942677934085893644032774466521347427931118187499349061655939497785929613979821243871026872877979059307072646187950697322717354854922834608632537462661509244149662697741960119820305996643969863539682521460700560246827072683747758930985824266927391868172288245534795026484399322971453945334809695791133678271636056014345616211684099809852204166243163059740226685563953991180001373016217804079559902025526074994955695924633568507019121697811223860105256845434063783833073913614959020954251966571787246294150605086869194275153587168601196298392289543922491862180685736521604024781384353628220345598142282241593392299769292390139087013409576180509608356263271933061988400796128719314779684404803871031560197301552077817584338079123438612882527564706286925107574184325480368614885680886719885647633637431308732389839516520989687661283232202869897456649011143085126798921616967057095073385719787013694693769656051298150986681638008633239607737089236383577116396933678188392632164012377254751675951530155696616382346288837355800987226134511630000705060602702042192664952331101117825580658452317867872924113641071494300937567830023467825838243975005648519659573026552589650788424238139882244178837813993894356596108809557648136238895489449112023275502333777521015953168326134181702657010148169201307217636957593388284690374589520302020033875187759565843751808996108108535707101601918765011969000383002011625745274251563799726664502786394269498622295403564407774596664322575719024639627889786691179768790041307672904063858383144797681217827274177796727449602245789420220321227894782913932908260432615446298226329503677110341652606985788413831494398974172222814878332987761071814774050670574494029246545097654861759876274452601694354078243474363967291865360106302381295527984196104444526372661167231681690953472089540559822521933938908070101278803093154192272886534004936257331072826952357815160046597533203149131732268879685286840094792496664619034010020252411043872683455391953835728388025713839656769465456739546098471706174031633777072885130487616611556881730015839701999236865601569726305008949482624631047882305637358140174612453615506644049134434439803907759665973000546424112802715246686693339229800967338084024762155770077519343903553077878397099875968235993901695810498642794851882710865619782235207367125551093978686268999094843721109153186465131246054153169856134057304706865037757916227396955266964543891325961980649507653583536266101816503875379421755150103940790467736935924501113231633300752850819407822576731566474200518772977471673527383012737672933128289519972272612907223001723341889128383922109741220440461934096141556774557975644295141496137762062039561914770469652119476794940567713675570845975463223343794091845425090049713727974055189871255000159065824184327543690777622504113540425394566845680543984764607698584439560845849007040208911697238516102488164119747305288838103608329336397143755724694152378551394587691362259432882098350324632071835841098674972478935704890042089071398611036272894979967899498237945322421156834918444086451862518103803780390777888566673857042880018700068607593003318519581470417496026284940177096410244364494417468817421206807780262492034003819708161467287514597101990378419465347637520567428241093121117277195582911007559211495129351347971654745960554928383880581467604174499751097615558831892018859406609437212362839289167570871751326136431718171006265669632338885088897302583502540790165269597060802203161031663865606420826137955343996844819448093813399851076343010333919427663160198722861661871415478148203891232270602988637828386572486905970338235572879102085775248787362544544294805277009516665720747519094094321127839077766159639128567923840512621255649959888340144145863269449597698892732610928562324029648096447578725657504855115586608827388878242100033674245653038095839436424977121036024809150408121607326911006243694472520277180350716675939329399106490055821975141694571453424505285204969175181806122017274561916437008150147752975775590699589724473188060517551591462313493181709887113325841199442906419513836424737822642701785430505120672839109429582000311274488781134116516290045761025481460311540046195074983023771055279555709337660828539997829951323910674487285982274894063638604858488468968252273461129700826480575160691607695284443086385201724571083728031605261650249889547650285877075783132180004305182604940604728745010181609509565490908755416902553303039731748668189177318151993648195650451456323026997913780212292341044398305905079115179595341943918928369485643239841343266517577101379022434148838634936517622364105491648871208813993980272385083155393830634939566354510957208403250190156985182315536495100514060405689420863872209523748466662182551273677277024447659994302679640460865185397199118448415444736532002102407489697032330493658724243397259121012620376379922265623314625570199528080629932855391337748322002380130708991680886807211698196552511702837158238704541955256704945168667478288295438432355172170684456000364297230250777730285886098200245943523181483483146993856746417222747436546956941663304852957085672835385131870836078872829432754769153354713967888238731137894136007367678672409051243073820709423252789597971931266674170457636256015008811643340293328953666788520343413658399296983887963874707786618769112260625251208959811431337012617151148364246491164512076244451736936645186043686713017979039269625401922846331781140161182038105328800699863340235793678205008558473744891318504891869914074016824771299251884824291288331798644876532867209066696860791577627155115526650773017590818295471856812607698084734283284588035493409805665994458187043073800337003771784911502986432917509187727480114925854075432920161668608840431302170134641920315662640329053793455848942103031371154801756100394712276367807458635215292871302952962986569504045311873595779790009735289146844388858136219956296136972173515963525663137245750044918059750264544633654690094391099049554828893057105524490197765497726904642485272298289246871554649574935943617021832416048108813655805395175342856092581815028432221876159706773692459529205768687499105963453928395428427944309649016662316364313838742120278188428076718853388514876773779699240822058197526333363974433007165744260715317766794513388190215099878908128272539336861921922492298776658283969691483105428029966158147547059721616847220600358091716320944379264310140978734255141683551094115650382927242038719111787088395548721545780220872987394713900969829043156269385483722803745400309197942764427896464803122297832696995352026105099908089180643353189056703396643386065294545037104746362605725885867190873879264684253636012926308539635588233921192129023529863427246823850574110830314395663069617181916543627656689096682242961757092613991097085205751645633657063938284580571332924501391588815152047569142233980948821235450488519409354942058636026488202017413490525230879665324260107944487893425733255274080681940284072761244467933240660046146107089149971736497194881296591078286685264348889455551605141185715715711573507581595129520451134471955991237068309513339594319865548280630069754334022130539781636610394687507569228959630557335249800722182091099236498780419084650976599016132640835910500716933657365216836328153403166512020168290458752307001970536899212947391708424658247331134738754587821119481559778901416578059208704925603163593351381692236725329924494135252981602083903182683652945870274050403593444114430763884978819404419750137739120649896857904814736801584903728026402819372661269946026308136128741678781492098942620861568759854644193478099064802676869471903310826005798174823244107722629790921880792527767829649904138463415340485338062480580156067499746657228243100096877423440788940904268714566346522548966099026950253933740229842506434006057709398339393597582801534360001798545699547102747131623580881909602524365508920123884407859364951047385522479613558570697171868512276445489268104250176962061057511285972932757825945945342211535610635370901671718637346675995798727189198280210316867032661592800640405186817397398229283692709510166577249855879754296998741599493224870414286226234905135249644359204715184287445952543522351148030229144221279865517162229890556012115068066236242158230985111509434041826659890299715340089207951960444302065373788206216566299160330702416856049874563179851811032829828871239203032027902900099916218341892605200882951802801172727590072054607337871399424340964161322041764244160548051529644570986347861053057248253101980780398338719852025131157167020620539641300070065158802672267451316493451078698526769518220826483586649400936769592165605065510768896941387391876720707928464936789870326585988019525579799234736620745133951053903674859463765537210660449881191781953756456095701131501718643020373504740280641610230784581485013074041984230993680041493727878951799442972106327280944043030082909627191275652720483562546160040202280127857110040482610133850310041113935735080956059157736624433676060670708770784514934030100918783754152854153448678984322069398611636664786917035257286901558493892664845299486804241820391145894625327955447759148467254821916725767414792519831463018182936878030134821508005237159535146775716930970293399540800603330596036036932653381334811316895911676732675879677473395584433054160737319501766584697675139754722636377425888813069754684657252324599938075583933196246066616038359049579430833641571361960650392911556060344283253441213264806664852598336364153412033644209987398297859664529519331613632576254282640134484146807796997227304819161582095877985375605685266810415497315023225572225612493093393767750471506372936350844339952828065284998041938618058645215741721564885776452716732136619247704823924286907296024449849024624237510733310277945650497886940462342657499355001653023130096246634503078427802712075476928324251150918014878836810754278685055240503675104612330958334640104635738833383158685662730226361195085368696228621282781975492227909995549652699116845243769094070490049598291833017652849768421938673338030887967027579222839865486862246429099314364415639006366182729509828390887281857187542382807451567456775263241147403063199306740109126152998439725373119519837233833762978325820130295894740837392225787128946483521511090694493367711695654096716064823793009766974528686877177023901946743171643163774583321538227805623865482581901074579463062783578674386718820848815271922564189299404476018463351583596064983299746372209580483115583513522155633072440789641417970302026040781037458331047249941118263209945266338207679196883661943480761118972447952538741872563943275776669026478196446210915884633165067731147016545254315842009638673828930187197139264807384152896310354304389093124318108108230020765181498228323517070419796501242971354226934921287092488994467299003310788431351973408189070538052897017447287283270475356698460838600990518452753029041401550083263661872312399225653845603835061816079906281308161713200058828548474910979646474406640769570008112404912484988669429111872041873299071948321094472124335013531960042237712252409863155402427887174159574680042492275790138786394835390704801523616221898511946222825562013428830562663819501584478998014532552266575745134075106854688923045561022547719716160414553174193012364420571588206879590084685167510467599231864088317080641962651254719629740779444429142735005799781080444213836675623717420532071339134788861232912219430077465824778058201889679572493325959216390328513870002386626720439146243078003780108508486149083042804271028216542307193984305878751603345425485787021249012638466597234817908743748681501610197297162500114732422704216654298414428028429676895258278395521025684432457255030999036158659881673366126511121978330518944821597664529128712072414632940382092380063279338855776745375590553842664049309141050824456335431842262004732694816742426154840595421261897227971064761755864542538835615137048063662077541944470753548607126054748100563249040754680446372657811045637252850344202773810770911132512024263913583899288651574529261726087758714768506052282991962655654599160395380964959771709283196448610679264435914435435545240830954330016956573937108655950835923297985288283720682913500594008179493013453177339230468593242669438663045819514945674585196014403796301306604623722692050036293119409948163524943038613812050616976203917026153152320935217574502372580408577080589956083202656241907398472147488153572727049262293799888454310900090329848921326554037380210759842521663896436314528639935783899021294934709103575108000517692465179721905371736472573262515707082823708470796804862447998839871299285137819998926816139644666228414529261858727365313088492166196657990258052083512370265608778930667916014871316101494309097920806780115054093986603533890908517399136847827164919492318230408655753274359304351886171915576165692225751162496726138365751224621907545451261293455609001888377657230968755030276419904732747861646705373245138168359562534338346129226310232766024157083975453515967535338594071658570992410246505605967188016746762505076256068241114305880943414204649448808579691164501337085752583471090497591266018644779420707527435918375205484808209918899341089023762863516130258617173328424695881599606995026947391089172817634705754931206374034439233124352216498793676107143216716078155619704696488977129049215740688877915840988584438617822145718528266632760170646583820787455214273390831763130181874359824642502123191210552378951828345299744323752378100714172644726937397448756917770797138028811204862165344025603829939321250295686934569471887477836569318503786171350552680873287871706897643153241612577083481130852609654987631113320461498916655956972874256052526831158343911845945548579243203273038146526807048085440228720205968335937727825854552522555525633658475507625709022714451472186054012653298622681746812161258833119827922737499616624530252272948852262325137895457571692048700464208652010017809707396338558398650820109121370579945134649571588022896742516229426291454392432074908019157968490841403722546038053334597586282173146207930737343533394865482523369736466441228727160532283020203519325057783745824036192354989007657548159825830438710516760002220478197784435674786554037627486191099119334478732544360652104941898818841555299095051072143886550111265923691010682028896161143402872886235060640885089870201998484924918544154825950879114791196526817396402751903614161594314413249284844767109933145439238731730888817599307090266840515178821620546695130564324366414560321416864410832977270752639112431880372895222538719130307924918841671321422104098578200117655207400272276844462047065996978094268001894527051846784673831923064188291290835661735241915387586781348905552960191185902837285612007584511124917976874443320007962096915644985364095241310657706192024750431798792658827676006618372789811081851318015552271217662749102859988446298814361423506751230391676816634036505270044708679653773957597991523111680384759571975932671165294866890291781469637328252255437043343009193234148033825822974079368406372848549890942475990645648555608061792034087491269128012632611799913055779885031662977042284446837991620170618642994922637782238764351111098145589692821229898873416665931774149944262169479716599364782641696194622665860297872642656002757091450771589496010404432807862982548121318935251430278524810521780623783163830292237729628652520659459038366562024779018649469746500094778203745179744787287411292832102882212209484398476118845302660318566797708564899201392536792839617287801596728530790128824458273161604749024367430345307162594164176074512374577872661981231592825088802698797320425269479850660391051803191069854428200279744714858635792636195725346544929925831300740882663335069713742213837279329020103500493138138271202576953445996780792302640008563846439529678299062744758099179272102227637599693066478174256355895632444229137279088483727272204277892955320417525856392301391691217845434218282637320112228744889488449169971958424814515031170199248457731284369329305447169504854671173502887341880287377829406367718571107855272545027439325313231118048195062287801039517128251547704079744011045827125217954996758834452320871523142120526028638015955684190943967124925005976234018428309129721106959016600767800773657609653424926621260939062554174796341820883625835519225192067724588330068076798323666509843565531952352963163076443811722856210579759543256584790472083028500846774143124274627406712008650061799023770041942217525849988769352665653123280522031926098834082970803558860323946188443736794216661401103216654792474759636898009721549128142748700812521805955188802883136505589229860485364745521432137101488995119705115163663872971442369609635197791317498904212496475779655323590366535845508638177338117719673782136007508741527964653600158431716995201323277023954513596886320071462936824765150860242731950428916817106002422807162571800884089909328156667271953254493482985601807353565936490063571704988052245287794380090421269628566932545087415141635421209798216571692320919586163691433581866529434033988975536874657187200091495675471175869399206045733604228031194978858499292378343157917600104827019919778422647952845366241942822062189287635950196587133651727683961474292289608211475266293297680801108518493757574045959603632487268831870475954863209464682538840013062939227353810257486960980630559553270651726088881889458854014463981086123184596419737393060408932077038056366373999145578545413575210528222383055472615630385885059255084781777079964119853127916976710130904862082299183299689758237323269764683954158706623869601397399072006301023768068243836888034886307989973660141204026486831137026512834890342175301427870395864405165910664895649499339401470055591787740367914664330678825046808222016864441267705490462990889231610396319551270208821523008154013015824274041964868332127076167168662438282145503496875058933301060156069084791620576216247556792013822879387655043301015609831638988226913129415066048140483598810802450042184284534790509235663732856929254110158439238652853776213285999464268421382820505492110422992560615923609155383886140381237395129974695498702796920564030908458542531587137973856597716032865254945999555519268215144120368719654198425034815769933536376538845979662259869546599800963367694302699256881740298407858063880274636255487146046466823723163457376162418241773402243313266092041281790253887490879463653517350620112231468095467167265081662791244971530383903302622000313276809825435718026652049164065710058392636982875686528218845425177403433291701860069394704945137184920909303979456961334746008408360141093675208905712249328542640601566667197408838025326419957500400105388934881821186642063397045031037638138962078616785615908105970666848072432214401183045189745802179932879506503661160169926892212981804881796401761743858508293795497288505054515138433768507989389552711026395576152980464865983130246225318436098786074449938808413920551053553379170225118556707565924652660896875878022488781530663011189299839488601809108506232929252901241565971563430099639339362241885938537682714405156723532601899489345099266622270299345440815755852665795016355003485513470343030247891688464557750909206170365155993338754670373434515673474344890729196963567487833095346049451067609840137941280905467191968711307279960949877310261741901168852110289770402771750725326023644878771790730142597766617387282641896359215589305231455675695219193357679814836733079615185981494532894191494202515029012080958104305273929137289762186334605281798382313471335041077590370786530506083371868166287244378498626778276853642194953492603498421855583357127403886883885836940935751815594430672109106211025124800699832446881406471243079266528619298625783122948449685195766310640457446134671872339536189166175295114440924110177766050504211552472580554405147487225437155600759860891359063153233382919187333709767247134445921439802938839275929496096626242747851852143321406586683826419595614444811302465311851452800683165377142533357840323880845985891629268083086363444683002028756969400883423389894077033750383034350917326648905991626761483437851685452493430277298491739158714983604192271836850230980784493405896787462770216235722647510591259940872239158551988616586422574542337384199289227345029030672603248655906259582267883550602600006497791976734600207585258747105043073648085914804603932648740986189323928034744908098255933821344766822832960394980444270679540093256356868362498428450232815745180610774122894677898626295380784577737748828256694997501051960864355310508773769678858427953211229675330294050314646155670696128513006281076767735506018967559219046672576314999337854059321514339289813760973589291512956006929484492941779958328139116781221570248168424367594244744364124142560814926037583276176297935850121863931458994061709822526490003065178514041721340191685919667730544839228862312456879058712763720563967610855997738484110986953384240515035273217530298498418845886989248807442251776720296682747279910430255748362224550291713162151163867464167013685307810924660875706052379425386157122744087054699692187950636909139900772338901256139651331954623139581059955663180298018342788637288685693703624407855032036460265865565526234134369682491465443825085713388158515083010857025976206722566508049150312308868360617323349527134398521259437267849008941563820526420352389835329570083186583464542280848603671112421614421585334868588407133713703937119510506643770034707723507418336017770915906966250859392714457779777612545284112780529714525490652836374274532041270738860044057695463375945578488131897349017078890322667981155528091018763912238714108926175192220771831570379087652371334450288461000658795126832067363029394424602908291613403301694417905564857247632366638060356229254401747357071886847659272428200951956074918753373952708964081729422659486132316870258972220233476291040147393416622381770547669742199558831223456043587533991706845338305772075009340155122638306567984503439728379492151337183396235555164263500123788698931075402266827827985758798966218475177011757666403215194211430475423186835573661153854797952715880716647806013374696538604522784794098879566034271595319355381604900415196766400767707197738492755631316170743826585786268398955590943588950094055710812850665248306371246057515685603835140705460263846501193975610244867239205976267570373575697928584164988866079656278969012750073447753875541677520108184488157614831477219502328181700824460068130945545160448620453314770878371225849851849264322331978620977042594912912668118521463295603873891293108837188663946830336067779522295109941009459572119163661404249936530752396717499117672504020928959593858735039982569057432139713962529931663988526091906885653586678333948260854343681155201445620382508709350137408061980505160355985937253539246839695949160383849925634591755396453043213230605093750242578208082896729583709325391997423277937983732775620144501157835773169782713669125644325208706947834644790506273159575069393981462036731276121833788353339659881449508770423484186931733657174392033743743279950738791090109263483359986530823012398156688753287981350733632271491478715052599100313628783094550587521046008127349716647390539818066173321098883441691519326775502214259148243068106513098198561986902829159699102315908029066168892277678495624610724035713989859420777395583230708487887016581128969869914973900954319122521470281593202385777938779515378579216242170837440874828788938207536864631650021707925695160419204952351141744383390888484261317335224444405334511164291943911982647298199358651634397177487756052635846315492633731103328192337363608691986441256134710970555183729622346441210087020187984492384483652767233170665090959352075984428575305812647660761089026186422699833751700839114313239933590281449772008085353322956063814987047959422572095606603919414715775845713985843999116782867297140080030753846656957452693150446036211374661633776407062157266342793575824983840825988503539650027578715757816567898652529670643059482085364811984117159982733693808639244884243607199331949239797008388384529618962371615564205965056714408033327884916958905117170472314675938551847865728775592480637496339213588831533862347468237141519531667809040277225140471639289602482584170031864571604626318489482552335267793203442428923970708650977143640265574025837644034317187475787824899898797284811723875325243971322952448529911431824863491479518637670430416670183030142266372122706086780134505086638256809581542697337189842448201466568138807078956083078914042573766545717464926193908161669937130817950443599717496045042693611935153538170107185907619046668637682780490198722956053365256207070650021424227893884326465013715236563779978264892957353296908392378620391091251872555584789972436253709634302233508790587429589532216391509801145167171961432145413570889435102575643518027691421658901600101243028740711333180274831509471441363970040975091865683476153473020800954461723491884785332427423425912718144360373451410511124733762618543510426811793175414555475854922105282424926730889065868541124431038362188601483960406528512661222821018426609908180566445649028885400554486341254863275428477072737455192705899886565932239745717602748363502785152869911442158158536165007913828484625049997646018384934062845644127504775278717746075310858331331081378766209787027204384350408121264297091247448503920969474279664502899950384896800016121485425424079100548983216546261919955545160110304948561399527712491131121703428749568310657727940439422638550911833177461772289140256428260789245152969803391009163680778729354568051790537303439939804591214215620863005154571876729750897956638037540044494165204915173089631869950608929301460456111442675120336709522846541449804743423490056072443401931668639488560902160443144599099376866149073739297168049644758405287021849035243838024088110083078103002696025441643994920869398708097928729054457608147243944931376652374598134243009242116400583484249159940977891630831001557258386329120804483865618362285477673966085456329601205662202633077975716134981011132882535793560631801007945532729444457851725019977350569773480757831369577975538987800819349137551736997956603079220384740226465248805453341716033381902852333384963018192844489432465833563996775249149942572494885011614802999615211538382386052093234494781839377218584790421368540205385064674075682031006776538526166586464924849996221997305633941033214561290901079674445775245324638327351538968109607830183637493372933490844314261928192584633538840539336907912140227756773434502484963825951601554875931671665505859935816573047669396002294970903317953288007718946024502685372063375676609864247455233526343317888909033267216430459755810874730232210273549467591344597971004561351284427672406064742092762468963079815326249053439399272373634590693487354435359068313487688566032281827230629196355042908918849687627397381853522737078378841331775671249433748048452431695967512080042807530916501238508690101618688042669224601380742533413327767760756244107339927929071102366554213091026741301666301219160762081933491324593067309492418274354312601944247116816463154937961103763211936531976198745379209532634439768590501128794796923110801923630376808242276498556326458387701620052434490533333673484807425422356378970682316288218990872530731798173336948770133525347167263291420805178178401485857931145246128671194111903777566382885389319534810780284006320902582036439243233941329943545366977662665625399483208996656175005692789411845909205268085150424859114177363169949533435970709598971858327138544520753937595899819320214624170348226394435853984109970566369429245844593842060900121836427219839436411948833060571757106877941768141962450058291686190939485858174208231228308050853914741443576829425144150196174339330786581636275491496080846570799948117951382164344618535334569872132525061492267551757608119724147113012711589720647380129396738928319702020681771510494380629691657556351043035720799950274633864471193964321040826168023679548286349282765696463084686682083728437802496958626366203460811782687041853955050766064453170886781206293780084089528718232221062118479082517470264535132636707748863610012367433448949586211055219673128026205743911077394561346714896392455809277280208056220380648559012009492436696600855761986492087241712156674719511425385130203071922818841605902914489650874652687191165885201829497381463151695898805191283614708185396113651861648318472433979816166577072211589148240268098979754394436359082015637071913956769760337206346335485129192310630578820676114724912614829883781890292346302273904974270705739940675462454656770989905395043803536818410726456795330476833411591616256344650174242893470100361170352503213167524847166414949264593570513069153643188563148413136131430553791949183486238353303381629815587830353269469320523811788717770729545873368576421008506070794568082023771319950857332389433333304897516001104876157383915111068616433751345935277762747897145698010440132727349280699489770045855320750171908001720948920049499624694796720784492764001330045685079227382006697237165841386631002742523634390939294288855174883650223501747313811927568235033789355400071202484723069814562828176815411916304469571960802707699088449551852740136426067760786975243217592141451143498797355678422539402203494313661240087140948716889045061310318913834122436353093717107555952680669315372837591914711327749337779772054876518246647582978509226103074259780129887291105120471647091399460917726010642895260005948207367692718278941794066647748288540948884388299094831883462495166675807771482446464267297234382235117062403479204242743266450020104997545179097355944664839507380283329675379705536101854545662402818703456166642122594451983861158467852253449932450754858386530249756764113764142878345553986478926997857000823993075301539396411432554351242136367355371737398776349245353018332853565884731132791147859041388770371502280606178218293671252405853006677397074062737914058173366572157920758962093047529255643890834802440393008710674566153559880462758542516643339695946576618576551542106035019454898139575078869022054006519415540019361203997662688162924122061135707505032418683006339395616696995626224840533078944245855235103072090131775737476101289216211278745826377541950386927562554028926167234371154674822420653937059966873619618480510636933075585325060909373197400234314359568480165646225557130586073572967608291336422319728055257428668172480055008250477429493519765056296759349010985364430382198715414346859942615832797695253362139344611890815912703558003105923119285264105426836465475803482174801132062321173551490505340255865086436107850127887436916230983923287660308993549007350082847422961174287170455923062947377248216341969079289437702045226841751757948852235842052264734585520950743398324930471892913831540890769822870446814220715494682966313193477397881401211407968724765395964540483312600080651395179400336285835544335969321190688087760735288089166023559057433896193739907703759368477609452488008373057319744696341851045213690627041144959149260013549636493213984018942891160938903420873260402693670551103042520529111484743093582110359717568522779729276676319239940498108155857440237268722489353054206408805577825994925583323717702526382358286729748235679708919437148927660610148876306840349495360019910836097821399817348309472580153745812734869823717661304383844684620712671659504805213331838607472355458304678740783598154875662071038291392144991056347899352706056727634817928033332375109280890713094805221755115986069566444141213075212332652416929310480194996016065358803597454815757240390410637665917309477066820875354608603718795240626945609807428627930536408257390743088651761068467608105137272991544269221919311005838215569886158047435186846612122521474485346343962753716610171038136159775247558256509750470674868669355689928366783878626391832418069265166708854598533061316606016173567723017910140555720613588849328366093391163675526394391266197015345040738821720496689056951771163826424133016836098391538142113611889228672973016800230149478497697952769721506176534093845213973930972581295586583056531885463947848361320373242725437958250257931861603939376083060648868572678878914617927313098260439096176931726065883507349285766530590495020072293600301935054612806890864795548894399045471114897215286595617392279855224210149859158258622723187813187095199042663351228454558304377963616491058429176577055836545164320013601476543293438101271372277543025792760750908151550740430921041548219258818944689566201231338323162903816142555262588984698517214381190484776001769548859122037413617541841378381911291098470035566531867352020471815399154894808434097084318358903406765796402463916446529184607875052314042488690649248385046035085591067457093081862300421079383915223366208839307511645349009436071465504774485593662876099280034127558187872237996958963971331386197020253688028078304315917033654816042973506217829295037264901622656415301748137070936969250690724603045643366925538337206559481475122058576041935132234989550967360245352241300584238608890386832517485439944096329404251915912158388146412301085884982030264285907310958855132634122938388953447154353791370542881785673089015481483583741767196693835867866154579505530543199191064620332109810699758848427422512976096776213904320371828870761036543854538593254591039955076763898652920308405786865101262771220968994879066145656765671055354147670424323383219940197880139126552796724311143343531081733020114754503012029959177071837997238394683061356763069452321504742094192082857342487917344319538203950230406543950646747019597287020881273963247659037407663581402607326621852052631995870964430146054459395959941995532579409631310197388344309347624065785899798213551897734372011247063089794962988150945873729083633897046806664758401444575489469115193022385376783214623302326360447427701468368498757262844077263774280671713489342440263486887937295208569129121569839478220115845476220572673179330754660098100027711565304604493443853015490662910196891377844532393556205678744564182354937461587239131690048604516952518343140705154844120485271029019390670041945005846094098226539033174616657992069357057380467873959013777697247855011945491643913068015165292799542521895339824821737267822194201831105609657449544972989022811262405352317243932868131290749076839920182867241275901165275435707311701532489179627645503752630277260624032542019499645982615071126383972889469977699863607662061821707145995558621792721774225925994331570089527234309200643837951428556175857276574879011030230312233520571173908130772988882503947205084116902993003302353702345778681516363467054623611107379764552344726177152485629052950568884326522049252991771979016884188295961551440780087880063240401208099924171937344615553287446556080749472369570836571880176816305719289202764998624515316826386300776172166774838027273092327271114132638995893185692941265911039172159312347776687026674804571111070631156349698176191820853942695292217793851039082469072178902190579441765730480860733657680503265892847757691179245784377553625104382561830299604201447998259684111140181025138906053570439185832798679430484968325900110187167660676490138827198390841185842169596979039932624118150119659935355876488288827902028763860533327771835694361855239326572519372645025068815956949306531777410069279237528125964906501290560915584391475828540567762602464985061153279792985647743561102523321876830587238981773845246211362139774729434028818253940841188331097669419294117017732788486889292293590246934000928914574450547997103871737844970376000415532493372903164295548857100816773789376221761527436535166970729217650098155080180657732311175281230178369699633542407158877107438254293848108779300653357726145614776499832603351980271092232197797801430743174314604675777370402885186846016702900088051716352547324609975577576218621273241306831620361328091976229755535122728614913285945311289609610874983609831913466531757903792927071640953471647622680896461834258458640013243905146726710746848295188195651464742587121990323120500197194408073620183904760939703529769807632204872964820964685967141332037057095113427305323049242624408933090177732606015440425433526937134685182017155194309132665708359704457316206623859946852847265898675640049564952250593965275528723347880977742464168919250893120596274810641365835300863619803318059417096652997128030356028896082257871516878330249406457621165529227954788273920197086798282149003088757360541022551501046544805818803097265004676665064586282522152370269274023581124107988543044514343852845084365067409235822432395626600036065520785200664643593485936150193642057430714584602402145333190208085725851209669794080982608351322202840136864371749043342887915920174847779146723188954805412957916323730159859833412995483636960932428213131866299610265684396975644686182934341013356351869107165388050805120279511884684450205994290889531228077844511306610956105967810153271186476838472405373144377164885331258955253689015999082655911894775022369264397272419614377519812141667190416979022028113228962876445677369868550161931328458996614672930447298814962134204254810753502681647658648830374940164772308327001620184524210286941810018896435676555991564337276944579897337823804606636366164106903855311525609860165785767185914524663240399550625770714529408251743956160597747354617579955747080717196126766552423366326287766626066817654695101369093124513933209232688203144993353484347961796235438117819545028387797830967982070702547970565464861550694330972371664848863008727091034746380795007063996805244375440929947130749377094683641526750123503295902465630285089658891702101732816547764086087369088710480042466299186435546573794156664500630488982211420457179733315307128036662995003482496724461517013455128373370155818624884092664700693716802416600174182365719636107247111708549871151531145852276415289676962358842578024128820310676548481153215969024763298579569804094657443179038891076685159903257657000171270244718901307753910538781672256534807500620716787306915225750921323677052699255648345299647499651810282201601000716693152336170386132839755957945057565419515761068751684690912468957974725568106333144616735770446879354115564339939527549581747836678516931732030628657792532758631036409082525246576111348567991143472829038439274077708332703632152773753677080406573675970827466065671013033496567687330574549186715995334782651279830926155068174051918106888872035825525628305027202339268369501044880402373631822402688032753575019378240518902755183417788074558026243011364498436262547924231957375285967112641374169919212845947705535963606042594923550743590521611878225846022058748054252540736655870591407325600063188384269330016804697996934962975855602647078688613744011243016306188389974761990863872021978438771137830482007565976008581489397569532724849154169049360502079762684050593797055864445468631034041646543858350158845217221447029966850393656085931246620958822297343696786741144699511723119914346497285401042244500968566524530875670506319167124027686512419841703926863007502571954408221782305536919853854681251101598312380079302693347834864738940334090706996223049816169206575531814204443714015728871797280366476881562774327075143290926303485631464788219192378332117286419169406371437053620416067374502272877563812774881477532781990295578809317927425156195248278421331512165651127503727220714184164817212920152974744571933366130715225330286163129358940265367288510371312815971239838932579413073021534634761686299013834711131498276352379019630405211173072583448953473770712997135570625137631622584420856150810399524445325446005353658800183484792772051210260691875564667489601306095918130210482352958023244848901684543301896157897860524921018570627388242909264263865607019113860039293029001499795572236969290587308178905250954665464555545192365343518660321311670095925703994207303501179961754680158168192037102287305735918915963518311520420911008747277454734158795730319988939109066274144784952222091320057342060890736751584865270257465850818196158387865196784229729057025496984719349815291682314210257063951190630189449033403943314865381817987996145149180009560684530925580952802393174911208948290677768760306205405935190633612848890668265689973468203687113969889536492570792072625518804847959762612538456770175058394826121902613424285350852024021173596954473757084737364766233866018808483189744120235772263670467824234931716655848561067204958626051764708894593027038586470011472631843372249209935585842309739995819755937632983516672811888602164572329409645118076512252175111539383967090071748779911030134688612886608318889432263511783910723871930986748366403762619552590067100727249215223897907013621678838789674533178788266112208641739419309204221536981786427564597738261226909977459350295599247708948126972859415588553506589046887344135092111549074248842199107956153380438249391127123565926040386498185963169890703759129111299741701754797552726026143840896864093058152156165957760947377399604953998716171321506467929274917384024303249511484348784727846638884936633603081333468642950535098311563418325262902101456666299495354300674404073827884299041334899661378696865729048289100165142867164323673671483463316768088046960106675855394909311906577965090587481060934237029768982751976634486731835245665736143708443974757164504474650483175118660977722839717914413280890392696437011321255176578723351301355472747198131661777918391747431852095570201650895318250173353597432896915978195986305042541689791494962758314961029566567076912355976821278305840392350752826229403075537587161378231756664805155962764617716049561393532232166443312440023260958471098369219735146536638032512206662734430991604636625451190484904424042826451899091991714358305893354393697587056907747921190287104116059834815040265382506972302087949167610090725732089154808387817948093333039784759910197072611831770406004488580057857103476470332974572284795751552845771326442409145339015866749251765541056895729339152085572475447664145176792843994486163180142250014737558954035028930091399648276619288698912911090071850171159807221732557634858132019712500757017170932436739138870851115399709669804330595761218228880524832867267500336605651810323181738696323990426065920385179520899396776790404749720375920281208576884616354616798477480616622547456300790071075434535342059875701994678078491110097398955147170151389174747182620732451169475574332427891340319592018680746263924158777874049693075817214805954266139113998006776083311818277699106546977425379447164456283491624445766595980662025102236337125219027599210927365608822526476676473062028584626648555591484416238291788869541014166416221094630394111794124452318871676322587092293579831838733209771677191409873747376297220465420281884541136436902715186631906584148847238411111114913529234842996773287985402357425859256538146722317495940883516164130135451111716857147656864918117578666891006040081686056389721444872557804284069701082327562590575023111669824603396219781501954740131831618522648511691270140785221799109969232826133915224453502781598077946374692588568693335792457265993206557726856640243519370352724233291089765924602024654834361854231291344152954471301303081420587814685800514086198284980694753425029230800566475877517091414795848808860043502591632502519795896997184682847281706140142578651087200040700296978437093730952577042377043227556301773500778103443848547910888295037728483105936803491714691712210987411601673331187747116395917586590118522867667288175150836081707295103498267074057215428848393985540457728499865162894855431786833929686471561263211825071643490998849515808691322159914299435198364654266414942146330149128090672591520999621305480694730917558221240988786242747921526510848635720314390708794160684369415925219379381798317117488145575513760272834661380462465911425025056455717057504844027588453705623584838552310096276865880490512999995039791338387340471746390830558459742054777478378946254645618263075614532308510161236960535436060335387132802716615755780483367819177712299476186655793470858156005726150826797104554110644737561590357867604806220380155437647134286845586824906584839615123027621254818906005112687661882866744695972291266756853007902554133949101001377065971711921733903139947945918876742309774313442886028175964649285341507898756213108441135900858082973832807747245052411378060226027103939386970503129730832540836760505825889840021354457083394397679040125193856305729939708418175283303824823250706941162321119946891629903775539304226961424359359631872774261352213942269318924847486278756372947192985347105355522209310397141974157753726439102526449964246948931122640747681175683568506826205773579379195062430039368226346359845386411618475198473577847275018136338662240292299852513909159087075782788871235596598882315428669809789247711248057768810751746870196841086831050103285024432037016912161194886297387349539505932495043341321300981746624092749296356418252453434417797195921808085716894142520359584182836527123424503595133794361844921324146566542703102974148091765559481077794191298581290697713215737825812515859767738374532538071129542033797765009084562714044089958300889072253429360983770161916087717741671009133982410228699324152412892603983233793047352002350475898164859881938929838762070517807315553313057380432690183056583055618003794543050624832989833942187395361214487457384639966176178502169479007103378092082851523582728445964777237020485563311597847461196812337005289177139250090643587033254848396053691148405799156898931680389565485406444266062092443639468668793614928475473224383979538973214290419675334897918367361253723429419044996084208048929817858490089271170193434953295794032061167286476879576303316997248065788257233659902145537222317487741801810687157303151378375597924375543475804065535165393292673345303240720247364546919216170826456576328979261489004810358818341729329279024805424759173805265758129864596382144034942898165149039860702892926755944952850590357563315412018746269992107510651462073934958041635669939419748605357351915394005826371229491804122914652575281010842874552539347523018412098968592364685841888580120265326219396513759313151270319861509405354292371226874626625931438310082810964908684107767921426002391412857039338253930985349856224682917919240521013860891874976648492003207925878479319096409283733440064243828935445005549118224619053385302867908875149992451420414918547770451065092584349383417496478320329582282130058141043443574907944112113485584023176288684801668754977990317315315593445846994111842919421507377228464766076654380492526705780790913683488395209857532245358624424402551920730482420623106128544926609989593351108790811843271335798018106947196273192021000344488690598645898851575766819697758926768821086930110718014233637131591774875307820045423926638293342343903988659166101779343550504661185029536106522121408925728276729940955451107571414285316183384025954861981160273627444209189350578825406565771975124576521020739616085900286041777817305558312331737360102205876861648149901883504073656456239840081096723588871205718083270431017788538315336404028827306140988213941629053092289999116474003057904666598828687229748427190711726381266194855693150491335700693808888223048972531334472506957549793481357064278500425538232969807954466355815420850469428570602105982510417749844279560893504259136760152820249068932010429398117150494767209708394746654104570155682189638291794100023616465320298792143514529015298253465357179951885245579208083185201762213187155779025825875468557601018564040730169324555223979877456038147847821059161273069707328971789380955819032892690286875314636664643666673040320670341143969010951180456793129882944000754527385159623168596836946959886224985955510196446416589331625498876593169734033330147438965574479785591446297403421351140542026625991818298276367276032010365103065648585596082034114260906750303893880788325378969987680652256387842857231779644961915848692574006071348460928742731515687450013375064668351711685071071700999443317444682668521339301336327570675515675790515746895391061321410298315041276180631256632801230991462118094346806337107659910304581675861567978870441500839167559282746145440773265064409488482355628686079690910261798332331312301735759647790040788283392139190371973865603931622792557137343868239599677644323943380445230823662958352515412080358760464248856151631648829500880189569955976230060934399387368740743577260222233605297556665789447733319423751792653686535293604258976626981274350495603628924391007921630442633793231694546924816940412303596803022846220304658855282675963941703132168265736412441797334408182355002012143672614980801190224554866008784525492819517153790565274467250094300078084544400152562384913499781086297503004503142924909427736389399217418439485026524143396188541110594274199430623968955949621267829188797905434700786907917430145271739102076884888868431031062016962486793714191568972838206409576028107041812811159793993172558848583104984621941249261011294428916127454116196085389557869159686651447573962644102887216444268293330465030500750140208564132310441821646128052186636398061712097694737802704916225121060067248060639486202354867641538846236192567950040934633590352079904674438040219570663218428855158791011153358471276100072122716964757490072840962113143709720549030060128295433631044830359038905613797087636783361592758115536361061583387447918882342116038860270329480193196550556437829700806410045610189269181812798464296107961221878057077753005569309348211194558214491978191090331810914598993572663439861226610668184840349859308447507068869918656289898356627443765187697789052731274330458978913267119080484429322325536441001338829021454627751658274190509275458556751516457525628103806155213187991551555110797148479303002757340485445522914236261971011649835775684442774712420893001167870348463817923878118663124212087262417779360228967547351354615999202455969848431513744492852352187113140801055182140487549702252717706196777986716912896282935381089015066247704779992180076706387858039455010811017926936983582260308852422214322797385391117921774145282811615186518905714475452478255161400548935441793382628545439199095483162748712122074085045982320577527139164671910998048294010828365709209305656799841029637313080041397798252670959042265993133086321577196745670848789702047075009450435388663345097887618019548590977595080078117328773349811655066406983465214460670669535193595640321638488769857352726442310139870292205788347982357033574116766621187851561383411109398890798056981483939968740628647665856216416582734659822699864387028022232027389737921521860716749886310534777559196368710869431736231841338742925648622488044446693095912803448763915074883542812716351290065556638372497181041526480959973070607144992707314620662986044727320996852721206187802494834234277435958497167863622012344952998010453903330139310403154721976963394438106062383679882222845132933689610187367974386600823942925550667496633418413272959999452196107584459530095922919505314447039244604161096321806762345047532616642343139394247412624146300216429434536921241619364760266364712060643257590853787474516991837988058772562206992426039939445327779293396968988018968262636818140373367371161970568182057046500261080922282057786234392324928718274552381703989721252135441584674509440987544867137359865781116839187398267635315370802330209171027764530133047574975583568284534067308095507724332800954371320816900624832971592454574048108149032031180097986652770472086151792379015184905890725523201331207970330037990479329833126475636913684402658342072486684973846400018506847565561585689334221778516747435026310908769078729196959708901274293855208633992491041376873179681624604681828838455532605373219767617356139309321563727216123678801109736225223132197131818371055618769509484062393864690845269382232481121988795629204924949042951539130495761637451583091296497734184234838613488869138816157021468756900305088453985692442348425196565703119943806595405763676310799872686462019538759752488404449317699847886413459376479310978887355482349989673325544225652792020677404701253987308848846478597245180040004859871329864411077332557696153706466533790847957904790667297496226960996979623400506621349430956840030004310501623161683331896613156143510415977080369766552420220820922560324945180728135251632812027607462703828759497263951864622913811965425334816460100054876659674880067451389009660238721628317756314185352834972679990782073262471716096787103920779140922548487485133181441335136965862388638874207107426870324104143897074669119760151005252198299542474803482230869332990173215671506808926542122429059611102178846958580965516115715459150974545942807289187996042737621826315242401248151008893491136419128302728833303687586633039632228892807332950698106252670944313081281224328789735393289168019452555022235271056609427389480650277573680646104823508404174028492504655141686665796120704627281883184051065001466188800094780897506193256255786173884657835379487911058588016382958936607827711254023151144303138643923952896436028869156418652334249734692948530318778899321554551076849915666014977424869334265641764565936153407586777118720768511382407011186095451707886261390693607212483849201863794320315975443446379508549954844270748199434169813538514515236485882614140518926028724710838896315283086391989812267266141856052283372342151948167666950702604114084698399779174327370930534485214662250335238627331050336402792063432481631836189378507721251426442317280552935162277209854090710880649694327252024952712802322084560500005050552689019313178578587828901255244534918660239947031532330482351553224454231570544762620049936392211628616741946096788676743976228919840560083228143189122926579815142887040921099443924113700054801821335769143446887151685302661943583723660847421736959645050344504799748981477797395755062633532387746634008997903003829198308893851101191306552589768420755545491852210525281992745358046303626202753702828428933322142242206546013779249194968180210197077056879110577714613762269924396053450242578236790814338894533601713037983243373734046398582969591640271009072558580941640758551632833399190174466979799555402917596948342283165310181952630677281020079981666469692914695723866028206262844795138400020313239245792660065333161118915595604125467308591573335493452568473318929871650767587567379919933984970197969871401955491915555107415038684542015517784135513732263806333908659966494370314388056131914746731260745092538995445762626525783935550746430892509338728724570116950379454142688786145626495350987799852551420261548513178793953684372323461125620519487603712425989796892019299665861304348437355311225926064836216201363491105434234034085271338246770155911902367022189827187453238169575883222394802617833058518867983357581418288313201424301029664722571735198441961423753278570346165643167030546973921377936602455486167046273387716195221859013785181054235704240030085705383167666690250545191206663596555752528318559313785642606310679690739538882270457360905903931224440181632253134797397605672805912010204774376391314189992724989629908159951805366877014553402702802351413780669929679324246734050718905431298061829011138771239207061788199237564968960302929722272719336060754736282394623520653217827163025545992228666581860757076590505608890712223502016779180249850046449597970984432772223210963067391409917903703604685138087042994061513624718318157164174043363756251078420622290788890046541211792038967813562065844115910546407420730855206410035114694630706656239810654091602864052734227554853687922995820026571217924265231717034706901649073580984469399639818147774056905319137666114723554443031024557399060268020621587355923054597635799753203051365080375938261722688558220101347149118423946639782086897131422664199805597808087778755934460146517375772774711643588189868261549442638260544369300308081998053099090818885917690560080050960104925992579431096744757522820824672111188008474694385688262558657864375605125690581134831770562346612062885027947101338073111448914889424413145092229558936265285233424438144531772388448029268946344560503625689143881058928799691130432595878295821483228281310294000579775971939324890563602266243129854711212480068319422900359656740177986076208881675144763972429532546919478774848109573057090787001359122870237066940064756020727998795233148349095604456357474397662602866502532105915395857202801252163614825767688700054802226244273368407638587753556784186490530446379349600136492149834205588185309043434975702194613583327084355214228415022375877399014145752218065714370843379704729012379898587281385152290986994855602553897178675493055740285502146769028758838123644023661162731880956109695275895992205837862294463836966620768463069616576048562141642617748205070851573407658124449852271620072909994673678894138506548192426743740730990065099372133123067025098242001654508085928284020337852311557332271202444756563415109437332293073136067206292282675472814238957736672206021165982416550738097073624176603602103190139450884371747780910987320797612672816312663691165944360616327201049863181869206169811552194245004485428093316022969762574938628458849184997661667226676913371884262306497677255210853309194683592586541214507146811332083364182052577768421649381772843213448880034378575699901476016242871907291710101272218631760825598196425012046659848500291062378967724362415628208654224296301050264046010843583521189240546692238035055303671736637407811922720844228374608535712020803850847439661818658797188914272820760537415918144097891889479883822248424868647268171305348322479717747755128156809426362583840498906230781281944820600125369037983643469233476215800096420829999803127418251697895111682929841522860027844867860593174953234724621630378969774697042341831959851267500647833757396099818183732914782831045747907029467604419247160857792803770502068394268326023928868073704367078774606504478069297659786648923135294670847326425419532148910446283221302250911396718018660582980287414286416144666184141938979772093471105404542529878593593923093422869092000920261333647952880841707311809819832131190803009687059744243454948664390346803585341050124994240275947499022216550328395001814827614294134481548166545206694278713431111208384391478893212762242075687376458719346026847602263108509274471862737127649288499104113321965656578758529095981922604923550690262919958676791157441122932812667532464876475585638497004632269321800736958027929962471892784233901747409228152865188591018605349812252862524113525043120617511773134123742802741833197034918112243042251082802627557603151566282590962341626377630591940637428371067649861283117290040955941009947988265479953282858809198896645316132931990240735960534379999167754507823944860777725712063171590918538470695932795811773106433614016513395108828570846652867127705310874645600543189751677107688408258389443298399862007877625365208274763842804889755654294891644333532963026556495907688566408195344734944816415344728050145461172798768730765895560670422835106480429821350085062758169104606903660714934123694196887844406367640393582605417874662923400118268263473516400766500274939008978339747511803381427792885562689433248170106938218221685494416903855058330291582850580533855672600083045342746232744578768124020226875864056058095921074465414479775533480336104834718203956096129379967890733233047175155447756963342684522459502076528136792077547715527975029031660199646506182551080733811356075788234669596955865791611704721401904757451950807531100965773671153926707384947949229541500776452244004174210770250700597462247974436664333648403856051814993273918419991171416262336549457496191598641282534595874374967856419742684496982903757256449151593698654156043953388240787759814327924132365623728735004974583455686439246833924748794548237071355418417707082220215455696624883068879178949839454538313303539468745010911604053786155638668371992660289683193064841311930849597001553212259527108539034050071523881217115024792078675815925016805592779247640182626723500475075191624193546996958606285588448782516020839394095268221436255620438932516224638411552915606186353474796957122641014083186405322559576766484180476959549462991831761770676805683071004548431955179660769531360605369913914001431070930693105278645988377812745542814756147871039955555164031572044580645945130465873459314320225546675224865589326367545042751052091866729477955435437516283096069714919584998339532810890997455814840788699070799361610714040751008232914374698601862724512899784470746149356979390623784505286582426835867241109376400421266233407908831693542654471866804467185250303354235897679384108011897266804367629742571718333739832158872992142034872701621830621731144879109654179118273756373142810671281276866270497148943716024110471818473132674621483575743639492334428301091093555927106078365825424002294043538635667846982670528198085215934168997479054899231293378034659551954949503077894945738299055358654775271816978815980130898648130495715393238810997628553812135536471411942747906683594961994901094707426449545492285330287902376488676387542998471173428303515285815413840659358949370497227822210256010167890547887712439367549189298461212018224271073585228691808126401846917056832590356855866558687656699300154059636805605327941229435715756753929576294543676902413136367105957994475801797425255767760843567446617696965048450932924168434152468978483121051863610911495870962549022193087681770602349504697850159789885867911021294182176987188321645566995949071459883349333964392164680637469901424025205840060226667973596819423851222503459733783663407968508948627677993420872354741184820391181234214018476345743060420661016711944925873405627219546893555309115732338938663221167574743803565098236517267130151334456632411926605981879785380824810232399458471396091300764699568022560617629637236621680762973441320867573550924943318050505436758374070320225208932773581075029425002851255424032478021820788103876636642372499189693489435078620916794386365399960318889665922022155363707642362712650562762355271392629354926819274996337441718403346600527379504508951491819741886305215517400511543497125933335523687320271104974559127328584116985417389530191789572573811251883107488225407230885296478021715422984306436230760067331878667265970723771463702559448465182782953602167165899793449449155051821527370997485336456577945719845793671399892477124437317941230624443387316861451092051474824572624349169796442753248351069935257139580557321777254035020835401035934056762069103925716628071932022822421656888843998299062473646673029167946968479418010241098280913574084966973655701493418283756065059842158524837776985129006071700827319633135624584047552679032723189665153954486568482907452446034187842176525505171391277811323280626843706110806183385083580646449392801927847660094314210144973956789250468521627521691168629509977221170526507065815208265406877130708831110018042874623348345833645827939293997077174399446710527498302661344181304840882066389636701834007109119371654735970298240842576916289399150198339730204772191360396686208058793486204733001806929880496137973459952439216773695296220484866691688441987813783141216457431305654818845247070625915158547374428357502047446907322626355660091736985537584090856201536014211065155957601334944714780088384319807504779502989142558713866911848370919750047338476193685974383415770439830759045672258800347860984730037879755724654184782556876191405877109286720936907109296035541763079262036235811809232452554106212142494475088677092759529336254172174579018462505518495810833303065821811424628579159978165043208102943329170767552721552977213121663812694338057508946496891843500809310777121603492751253027068611610605522988669429707398398131758919750481617073002129126365499487068194783949948695414779389250010123578682805017362850572498394829727321563804881772796054088542252563345201275243562468565353131027986262943358545105409866046452475734281738377380825805712360760583001623060194018045601202403840561410281311051827014212616119140939535594936574628967255812019086613735108488770101788560589206821236120063608576177214678187601740734136757893413347340731088153946031458107529772022126742232141996722133671899659763619168303803341847433957848755376141447897193628658267876270389733211988117105744510922401210368802608800643006451956391293524605327917377276969515838759858483175079296660648178907794180363499359690764374504145294892492181184138443690795851343315378453778367622023848441710054602201213223439803097297080574031017695971484347453260781233158585640945534008564068085452014681882598202396498397226998634745373782673055547760181643337539685211031721768693341826685028086907881030431108884266469548627432859411096993423101332164614078162385769065629005460070378656002388069431875088553609066702521325150580327650847248286769224298823874987063164397519276911002798484520603151452831500396263446353626230982527233857984176436322527511559135118516662123537202750172367537231476525469000877682441750114130299923999529214669340453811596344677279442364982655034055922216857694231283628732536227499253346970677689708655991373836150166686339773777741724847813156901945098226752110623126399888059407368880030631954026479961479045735227902666548635895214281308115020066376710877614164755344935568874485342336734855401772587874140972399420473176166373632834631466879307301060578727679711260393263490977606725818192551063902149697949041354834901510261362550684671516440436913594093454137283618501819363093570196165654110882733749945912249516392844289427972380042677492626931228844170218834321469779934450017704354772442714354519391011234754209080079650532221139270821005280594162097640929157035267829684959569326977082422789122180160135318179152172263623361848659175400623527885286220561133179233393569478077031906645608658446601645419707765727410731821850287179768927131082257480372141311994713870447256494568504298299620370568650816188638632265022118865948730854765142885575100241562111004137807318062480077152695230439985117458541067772190450996313631491964645501698200530097773555914198632009430472319270502617410344316791025773701242113787094646796636933760506951630485244286289360959889489886190993240402107542428647907324412070184690407630951874317865770858764457961072036512208259402682356681483300081146533588677519142956140371396715213324798107793067346988201765742984532407591951193261159434110951393613151190305498768503663129009752999500294187063011321543375128570923344626473938163300684765032785136288501943174695485713412219865477707736527962727119372678521772805494955798677458677612689439122394742295129852083103696377624815324351327172212116586762761108435312957147958121336659299493387545667927129672050967480054767417477567700962161335725837174192396592133832755968445930917511656285373085054438404811826012493123297170767541151525007933308466379056388115232219155207984924531563355210920216567530638128419169845482986823422251012992972794171132893174167402946150155521352819189457447515788434439832296439090113520762751636823931178651940523011407309653332121918645128969172098822537420774590298086236312126872547171285808160677759496989208593610025842606936770233280002212462355753922163616703957987740538604176219694400094732302570080988988322287393207529174985937694711499633910789104501972656312259423607171883643807144222730611486731404837509073782458442589407564864884240401548114177386968867265165412741864752353124806618498325388561613745704706390246346890444777138771740852722344804627516002216250568755667326069242834360039341218315664603275794634345439415248462438104574219077978322559665441115643129801405745038498237732059087272916717962213147574691306949334845643149203817993673183228350757518286702620424151667975199377081796232059687609443470599651690033278392825224402625010076300994634957772369602024050782667862886958582790120089999981614591554477716930635280208963769044433329636750482480006993332274400150351667533309952131981274458138520766121694472061822584627973808843014145689445237670225216145034867094845505094124385327201551598963814991795476321030677656134817592682789635410684928050475801315608608897619922602744717437152684245262093745119705902818479688790192641500604501698827192372236441261327069705427381298140529507011395435069111317599436439344679725182271077881812099901453566231833125193411779188274918254261699377507090884294741323785267337328521599462690545241998282956598497758141104396841755916906921064881904407807286086478585933118784687387928867284405653934956042131440841518987110317344868255290770899763268777702314862524750710851278115935789962821331886690828510248912266645539153745198295759086530977960053992769449573826035847186146508402982036374200821425243645326446922912548729752435387662297175862161286861249434257730389436495695138397261171345073338096872445020992350643504390817242580262261740910523724693854118751921790859707624115240916247986683055843096371788542487483144125435405229243403823730679832704950189441634396043665816597288458253273411680655989334585666948203443521350184198202042808603915235969641085765600865759222241386087473363520200455939162240106127923425374257972577839255029660856897818387808158651696690201388986867538069635064174026025803032993864875611476254468418437152227905664927851717105120147937560042988949404831852375174090579263631478167408638798115265778478253937952811850450777256625419091505547307791716482373923609875594133446541924972104258090046583661663902865181713785782671558034195425168172218728904073798298917795881907723293122972715704507477069607526983445265530544736383259713336765669772388615515949180395052336372918035435486227969791146364307965756507372297630160442244980892669542340018055010382523583238731979548239753136213246752836493678179174047534672773174467945352972363048007263646196818823701556803686321664539098147806228122509340692679041222655410719911078964502520481981778522883652214558744508222399816665847473461830506507311694355585610389987006670997087441750528082730873290066538715102725628804166682948880512364495756920985832694071326177528435122204313442416924208948311469813706175801043924387668188733549280222589466241555827334279684500305602150573644426218832216193907243816561196394039819022569859469988601328873700306961283838298798491677872956422909585760758832542484821949218203960949140379276495158504657815694576020618011480136767742348660013230126738344549263672956576176699578371155752502269775581467814084280696673934304731203972433100952624737596074290059757395603864937378265886507760882463656564651922260406365107540371289769595233911746326331611005917648559030759126573397223764302858009918358709328090347240796257389504036198617398837909198379850191271982994936963082625184619366424221413448752820993128334942484698609242747123797390794455836270139186204546264473792146180703390325602538871332525440955085293701226183196568186016002300588378796070700525330018186650029206280753407285720540092333479046517998417478929786783600109945856888587129594655732364856499279390547260505359877129569600623022194242092610374270112275866123775371798744896033477464703742350812138757453824689767102134499338655159862287043289249135952953073643042785750472322549578938854264633631113121215426882158218807420973732373865184928885631214057428704445598838631500232970812821645981724173695069873196557137910222658726800675044029743579266186311297097998840025768773942265956016041731773250739044764128105775487761150384660536131508828416631105306510134974276298547145424186244415266728305214952866515155291729675179582349299835341167454750439337016799311935556049497833448794660811805039582370345085711540280163812876178643394488988739803908217272109908021426729443725985188783657628926048920234522258168392049211721605390913239986858241981009012071630776000472875856037146751818993473183519530018202534366169780183179686872037357253922342119522594345388978118034979863857938774477372907708698453033318167051994419734201927721146075550788842939976998228603613815142177940064458604585526651104054899248155917661487203630413821487956835585165425393600678208691818101564665798249474228226025033459445583754527829706912865424227971502237126165109852756461621417906243439118981542296321903503288154853102220666329487424384135675495848804248089113494073137161803566000700761491811103385073165275218166320224053162793506433332174588364415538836395771221618452695079850613490710873283731610002307256057955787739059233467886128465706451233781539853478475615075896847213954694976327081896115812739770983006135503769713444433319686506302999918303917580961487735532152345619110366936769592655677695188476661784192033460549941060303822779671672949733250886442479835830139724175412324879055738418971843773158496548635589788075646813863837454363823035822418285683901954119168625102585977131244960538997758202832053997116057057844051595756623429229331946110386157876342274653450747069129646690922649062730486307007368462210658099787869788014432994057481334407777291681624218692151474036019389959364219524239193697985364573605994892768309552981199055535392132790639282067854162283219771233630436142084667358757949472703423761955672301424532599783721807422967941235969369788835060240903598739067136003461920517933740123981787466398793695982469700362676981248780651636039567606249711253348213264664716933514268581353648609710565490645736135646071518147882609642189257547724455908114850321120791144886212706493139386150031382953151171515116233232006575117866911603918459359109266486486060847683606489316613630431579912193980975066738897897820456277769865260685405811470965830863986264610118809793161391157959620297585916129083388727292964471886454422111163912867401181611834272959404003272249130023726095635654217283242446626417586803319762834940823191720438902529985022716050525245827270972442195033250485081759551473712556113970875557252272281946046032105404902906809833735817686752032847066784591677786367894407320211946958295186692080519500339354785962508254272069211639385549007487344877839641866287506293199490400310031593321232155134563460945745162900825753245385317736132185279401401243923731456547199325803560132211033157783498086850490802312261659968499657250761913969559175888616392512573976065252124249801415870991222655570880811529332852494650190805756876494911644484710111990659442130737184111160216814788652119918195505974666394985341624133037299316685060794672728436183985567517879649926050045157942808564123924419633452377033685942908349299788119832516273921274230447910777031668536978739366252386037113309384783227803281451301158641479746867760624061735482777232653806362753260227080237601905658959003129677234934576273126085283333871928223216651812946525619061571588538949352664665739292404771217968438137413035643623142431420332422370509694000790124631222963703240799416842156651615331822238144652238607230621977176258814229818525516834510439811885048864299540486689526816561786428073787511189344814400378496970167277453177251639644035041118854921528468586869834882537193903498222811973792849916847362567758947470864334996311121328542250068802187165549595238753892822765417264678089265306089530969347961129011983139681639453797529095784988513334305276670460352750471859989996013049428431989356201023247819296313216030249383316846026834681970996232528815233630712319977624823000201325336768799453627733213496463280969149609759904613455110769983477152189737683847746976157795356577320068851262752996682229591781719815737906145959892318332330277415038961035085073655899328443187687411555699151637752539938828359282100540921475476511919879156267779588322694964686812917194996865975702589786223957970623943187226717716295934612603942243547073493027127277539636737973741371915093571494233546702217948541115869468238143711040374366719401117903712304971164146762843215914803839941716170011467017431029725382379268686432975219118636691239418563499211150284022187073082480372256416624083600083115962575017988158269261763033809227476214134879416367380502397138675857686177693697228254373817908656413739336148765341381894020179769291275690649497836705572843099408517310444902395883646636400915252090493833537472189421947492729675952225829350839735867622861562456997989029241253917212865664444335743709366354486833388285253219652682455657919628651536491180945392350424722223968294679874688554961075530515358753321263868372213063904472411794819094784576365117123687919619650990820401006557519206890186560690760863927668101170767578592539990450301349548810257681463018458562472522563365939646489225125979968500813514685496733416628364758200327855028228204866374809825685571279294485497295796283302899974887855397164105885806211966227960481011890180353544518876248842486469747243322110164881320404478607457481005441451674326196479222723550962207167454325748138022194052348908272046924690312122230515596156806191270683086830002773031836409028694794306849850727169753494401494071576102492855010577572047607193264464862221659792063199604458271832138618297249830706440279486586706565072821307840847593476762996815833730772943996541744202668630639651323986159692606397943188437582651597973096434410693406515805857543967582192202071415382231714627038485827983257627390898161173835790862605281371066626211135295996662862276748576606043469554609199047267636520867088135753156691077494671207683375557001508741946373520556925558421666021975141415327140891470090659483187070357207870640034295311328174459602875674364373565324757431216484260499492436930266159253939173681907932049718494402810755378962230721926837319869247288339425953560246937351762333197228180933707643655568078623489464443913057101633544229819481843661138598788618060856465932943353262999936066760544058749092528438331335860064004097436147245013158297249579461117161385747597005067600090494818900877174253009163420300267135967257394570683498797206269265522625104984321148492146247825288425091058316241584728898533554340976449255448461164411789115139518033081289984553533838767235290934052315538315817464820339891034956514657611731999671367974688923398068824602501008922988811561302782212377656131022602953308053284389811876789285384879189843591067124790510224323397470399898357079069732402992051736647560940562879510846789495625391732039325151441211012163933363774094957583759635731923481130042154662781009884630919256157058179602854169244554804621393724562682302347033427707845205430500303793330586537757030689480849964937613078569650594177559701638988732082161988807025425813295082428543989578251520103356710842952331896020939384437597365609590496557795898125932796850339522667703836631710355522210245341819332936037268081873648215846591497327934966744637966013858310797314005711303460480582981222372660759320178663422126522419413305917488854650318330531800336453770836678779525809114615043542509071599303059696182511582883526494030197573823433472581437693108418377775774440792415741411848526367927607925156727655793958986110433924225782438452398123056482145131722241266914469303123345151710110258630704526018384285588965624594892328515574024902022411065275245328005179678359128038349391684908291492385962431094155774882236823520525518356057928395587995980783855564698764557606846908927905812276765121734787127587413980729266419374083531271035861906208623695183641632046388586688744229498852794042810678446327090987578628775297975378417455514830896631980247068194617526143790538789127560894399737923003670152097457898520527633411534895456413798572748364439479588481003875429800959505429544271628465507145475837849424081339839545756053796373227406569027055450137767330556557517316742294850380580929347975950284540725512063758531814891545706656149220525399227852337188527943526061705898927007328867860160043411632698907584174107242443595919989929163423608652766914639416550817575898225979436111516578928530769912427392943414086711714003769007945370090675737096269022874891826511840624266893654723608303400508556303637084741289139316517180847298454504783104087736717367818104787000055809459499919662807152901264214089689012890833114405423051793356594426892106049009284416036066376926035254426159035867697978490862953503452103465953923669222075685096938623015968816338861365808959721114024276297875187345086478585476851769403497286272291282349280925202127977141510374640421783015942938402693415723149383674066757445296185724357130307498916692789600722432315729747580226287388196301548567992398673043552030465185914438134964436646022838392172887078682724068888736252564705237675606816471154687015218367178267671261110922500551582928597053128983660139197891552114998374784058780512449945048477135336717024286514631275714324395035604233613960783041693308877812559168025868396150586829137433393675446380409506859557077044921201652743791567280646643192135291472728073714053340609200388234823574909875050234579857807249291676237318915332276455834652615585690516055686427237018018238654487298676485233780353685373959599364347194803320909992793076969954078326208289264415020292709474025259654452938970268932941553454705127982967762002288013907950670025003724847233080795859682811329098792930233196854012153541333430517548791862175483199686699084658137989890637101571997329025140297372346780690650782131134732271656435399972580791690936663230835331185164288948597282216525072968295613559176443905685625083954916430884888937454667905363751572205679507543298253112860460576761967358641864774979506933607762770125940701741146701271669553000988192126861825829486632279772943488655314264748756238075347856256080715023996557295898658966356347472293774715170956086230333306768906733364941192909913370755907871112408100857197871064517314600713544250302892975074310450193388963073969576510291186878315237276917403151646172028885868879825774439470642431105179705798319560935234772486727775103671833637514041117299425237610164102296802887808532414575825603881556670740591331935537847848054845707939097219770773190655030371645137180148394831458306816917777500333808884574487186938368056425547938260535499246725423802092709410518018578366998626320275620261340362058759911136665547621392162349940331250724640559432583675312389153187875748703883641374645628750903403117207284295937486925270888866192570688306391360384684428592586707148280014058394567562856149574976053544481579194262051332324849256055318066112738548212796676220077765145757731243615915833785586108266082652945789479360254514999623616204342573016834022980874285091570363717376462971710262620841071724125031610793978359735347203289092276388759711208724852183393157314918093983081142358632798801927366024194481692444117036918858242406475539367932488500533083538415334281826409871200208119187264861402246213483531052334703913385240672534021997183000008681420400533253505868958240072115356096552862031357959748862565557208729351788228851197938030252321886992595708532600329073686048222047357923017859094518394953461569849165497648245086623697466125587941411789932693185931179234268008175715208252945145328726173546308983016521970879932633949938214772478841172581274260053642782259398064510216074052761602549888611012248699999752774725014034920938023356440385363937701002399285839285954221454884462452728764105493618157696323404352616579662135888141379125123614672216174624502158653951445350728176534609770983074870576961565243483909265637487847622515522981470671438776255951041911674790382295093785637728611338744254593613664326941347069362646185893476288676715016487986689965686645929872512523725186442563984929961118441167455656454094501927839127457183376724153785188172268290558983370972831504351481175887247888854219426437427165809198410848202500116379768496596235132885231994673643281452793787375006904728515534426979421003028183954340849876889343349461917570585265758292779879612443382094661223868629688200042707270844691652669746158892932809736409737095298340950001621769421153620586665382109094613989611548327354240669184132519512757007254981093668344524397048471934818094624604449773373988838330770523136145438732941143334797438543165775752336621710270915822377464032068728469232852108985409444921809321124486487930408724806849053314139526520629456855795473747575358476972283511501812793380422802670212817139784970012225998810554653251428237478825052657778785368793927457498522696177579090225476087912544819907514547797706231290232591710763827541073423208846154059426900104601486640112187654312352547474250101249757123100364872041531665156254853892992160899310326221650594536437087458108553352767547405983470797860408927670258989293806443096486977560694332737864112865377542553021604172749492283225405695831112098841647432699169028444842567323047807415270047351076557198029570294577753543567512734005693075003265083838305841619063784589972773495217766585957765504426472554848237191758836781051526225358358088789277748595237907821872637400253152964147639127429919969575895853028649653718612314136244620457607148337185252636654431258768970995248281095659026021080509926765731046196968328421484074615984780570180987931676509664165231304328971305790397531180620418857798063448212899521779329687064208255522080469589868979933414560168167599273968706925294429163820352057200854856311831604264683455886022196412938099995850188755027993937219087141546507730249719291144955269680474451336821711924324531919359388940171548477916277346398035650767107950334785638812070876614117234385726733194455763188819957006775132801026264349957497376417761398354056581690673948657021385553256611479620609336408608748171459146052247649082729324750880574256139513726272397501360586071748282212470683066139364706146085398647064393150757609839743770312286176546659662331053950108517706476417551227072156809165553329431560293031613597269812309145634177389965902865208949062557216045907062086942913844089379137374295963554052292623391530606413130181066016704975851947245444565787096661244228850540545565962485955835549387187087300923946205924370716198775233001570126505953683909549878624039543931060156299425682921996888497131464134894979613482781713564233260477436147183982941411704513398762163416935706684598875172222125497466261103807255086396689098630606833653912474776049659508665884169045748684266454819013242386708084962824865832104318558176764376728834090068513397895368574758498799120391267133408944522759218951565221521513210995034594421416723275302674794930981673151130952165371919815472865654074306428058463410103247143994631386598707059345796825771548776913609617625896432764349700097290165305852096708307301794053358104578333610830244298611843534571136911283823456339717994160176767472314373888992006531686937563496121744277458940787530310465867728529475623535764348392753604225632674208195163259116427938603805455999699513961554461844014697101407148463954024922344532254510633733765809445135448693569414212029757972128349668943427916477997747513606249058358503450707131857748379544402269595519909224706304276093172872200537952084972518965405418202748779062870165097464293727548726183051225734575009449910638330815868379213600001507140831536834478164683649845165833307767565674747986179600078846448713594283568697675907646905859231579491964615634524589670604732466229222919603242313292563046864614904204850389349011053864789940022939533502939896060912533331769278702895457989670693979408323156837261055690612997966197684036120609361662865372116697334132273673906327025045789988936807384190410125937259490163493018910140243148597397300870796498462705046658606609196099490218888319125962967167255776690534611187801678001516642909389610888420716453816216896143350630874020982287471388955002515391403940355686079897065056025482424297455593932328107822507135814203658905868206094812373640027840638309762684756889455495042316738386779382324165081868348128988642405975011849699505491957154118612113794202626663285024373315319340303887740190846390141021245352533788814623513616775760166662029934149819441807910693277441094386253293779617376608490062211893655626643737685438398583506211697576726238845802773304387950082191542867758581676503943573340535645474049353760000407734304153990390596517764258425825188571085024897437390229022047625349347227617028661031270199561054743673917385141832846678493768834416329247917102785326991106453761114077846497614209932415909071628345676542090532237215413038941370087035515296382731812030378010585535086071649609719426940845800924935629787168588761719051271539480706866555399730556129307932960967903286228831408464507981957447441135548517932118574334656957087452852010462630814100303434806945856225379262323118766341118531673316479981794275083113274773144229475733341150251350105994659348966186935617259977855260213276488036852267507950527906129714556497318236047495474183620425204743791009467459614605702884606325156728796500359246086131254186261164471439754677171184282962080652319556473113841579627354358662030768694548503742772105971104935700675818113154199675446296450993004810711598384007905678746402272908347539412667175308012003249762174489714964182146196139254335912856534855047671148868125932807767140877570011268767319935489106882751026336953641372403975905287068068357460199846667549183821523383867290583433899992512316113196436769258341373281566941528397464900457948472475551076364250083829856583093848184002718520773691158449262329798623625672893744070239195926315067769312382602386117292998039641528757286372100999636535410052739966684913910721426258881299492739847464709531754498870936464180647593576772105529227015679408963955391773430787449132462444870416831369028757180114507714796162994097965229479302289830423553543716672870126624380880223356408502505143762628036399032926466325857050663164377152141414403943236334735527143506944798189245976603211630402641344134938124345783101236641269103145436347952919441814850100509219362821869731779289255989811604345778187634238843058542531469845431287224411307273392223621081968609257076170627022531472866774091004595966771809002112226492131059123012395524401409130840886670952240754744040925459925604056797840654153629140222818598801383922918605274000318424763402207169830525208785751925647991658129359404722199746001370619603484469142253273859219625911688429219510163347371412428204131078312521537478817458124851251515711943623327432535873015713099131245154022050387805694383360231864093280728559813072595114391476251414115105612422451666687657092553577294780851385205794777472895867018664406578519169576298952468056846022485748320514553729720498212440421480873900856929671959691102430761127807686245000707608312798056852492089919767825191374378449546352484605833088806076405030480931149734439682125575762317567666979468591295875988586067696159719857977012000728202121929479857129972620929856056215932246451176617886656875330774282800029248055374297752918631260493746554486424332439284100056770869620094580423304473840685985581284594443639554676356318496055972931510681902227900580963846865629739092901397278444088927625316060174512175323223596635464271215173272470671248179423156959375257460466704853972465899315384147716110208523133164943987440625575595492428656875492227643908667291615446091692136551103983239653252343306479387415778630192835732790146099143006281737046525093352399015303383321692925906524022989362661934934893087255451983137663385929175331729125843346068911867217068724441133445254947536417841146062945461284275305055817037740131310533989388506599635210452837170380728016248764217615139980501987157563034367072691691867678975938399518183349032929245084416192511702589737574025960331792763101179369976249933839955222449203360488829250561492169915187848488352133813546638697905094082384330430569330512003020647542689729607290696243179532854763978573917858805045393624642972923360848076464315409283868883320325181128137358575731841141336008752312806644474106496980557463055854099894986305231188211555339353873474859210860811883954686833200785043773828719234880089011219860726776993151083387794578137395681992539441415760329355114696919645775667943373956563802927556108812181703343817991804419880954865313823623570906258259265422441759953837318213034541327203372512738785946215001441356937759068798506381108694952679046778428273913924471192363055341510942038825589663447480808724655071017546032580977079018084887371897833974585252309886483168892236623633608092596337194123642118767290238899969256530527774648681422754675066328873159301002584396609569931058707985911686755667921238706151677775599112727618155981372541400252770292161470093449899040582450160719540801798267833896248458257386661235555820094035181615391761210013201514726473398687702988540711314784415165611428846171186637951395390891117034903880904431720414247760568608718732099545013844700195512716586103057440508506674426440432870120488737261054588680417421415997669666072700846154646968914214681270790891443136598927268018230457989292837525679242671529308219938088396371383513829070522149309715482259524692150100729698243243170519664517767537143736377320342569743131576000772623892414210137499372541143404389715727356510887798365848640063570041824399705061714730134749667151955395408259553267233412722946722544841979525059831529410484946189813179232868304615904364221349764413598991624459101117390543676323766540068612262410780850682191754510242369919751298112764223722587626595167233366997308721077654063984612628095308660767727788335809874243336664469650348594316005521524527997712177582985433405222421827352023000788741742986909060593726055574535997694748834330425514369877951498258979555471471679179256280254615994176472649283930178135358520213299646213938747267961063875819776797031840643761444011275485003135062367376011390169375223213941687411065543578255122263191931268346525305653636729089976675841286830649920084957985079983182091346628083695636066037450545884880342215224763872280437772130193642022540721179348301038539067052226148586329240960740410232077724076719941933074379640179602794056153878931849448126630366449121968395995577256888848142673074071943753676277439942891957816084235975599800499221331963429445575054759896726664056493790897484196999979041091077258480118239087748690929363578262805844943646643201591111788583189221740186158230041862774779416384040879702484050243758737396180957657045337736644273442109509795890120072753358191808885561143568919582389718466498906608432882696975472976640012650742095388451292577546310607805794211794872526731870221155240115023353967965646268261265950580652517569134311570831077085316420374735082185412178334105700498348994467090930982704046608564557330433460794737745422028410123383026449552186676993118922319708026240342939724565594509654832402685519200828628871520303354659907431906791218616073582898196966525998456604778518775808429756639898819669457076482982376537801104480821948155437127290215048975989063137371292255583369892469759469512991651977304441097603025933865967503861789285045686127016778503116240976611545659671005309403827243665514698654237796256523241731926775805216645038311385832267341949995349345120337143712480432048939517419279674721267235538144148773888196618786140378730422197912996933145702924928819274683027249464906462708102576284199865378072817247198862915997674760967619969724411318758319150139860728702466983143644338059259473062479337441341251136571463344958718041873895927283651566399974103378822097712516776022035778757024582984959206074049378958007318843966585507402776300209981212330317431954865007573871861678596258692353466612566475556221290368085370562079529863028726770479899129948247315439765882774092477401131025097126719351075534445791937038153896088592146045204382449776929635304864369657968170445773742984098401490015524185920225763799209514562906388633490960139199109586405500369356607585641315319321876321037287715734740655698042542884865790872622874467052541302114516191233926612269837143068069372911966464581836489226336100772377918339997017430543417955533184483409260176851822826983004715103405409442511575392958501699876176370980241379699359739749266799678182207496188278887259380709271558464276169417811881220200302671094255389412279451184215220316608763605717254717653908719286402432743783679493841306018010293776132037809573820743995961575544873893885557371106620024934078660192449829755932583844312687961875624098221969319592960825956785861903223457009436615657174601340583857458547175329588529281825817759522561517478065827212422379321448779760885689147606096962552209757366346677486479865181787246404619777044489131247734973344517305746239542337359222960147328171483828029463240234762743079984339852462367254581093247496881912487727444722339175429198418306569348786768102521573505235340699312163176953368250042299177577283034938626327090455389705101801231412822630217280536539965240071161749309645280824815456831200246564760050822816625645542588403272321490829675724757625647871214354828007358192276642363644215705569427172509411255268460853667192680030317256784839410489318068416465182240942048540852410541217333875786142554221718480415364655788011685119304907227596780431736806065658868895700578140196902710099737077626282154405847658306017805953270109084844656006538579504497347913062844950298475000624593807802461474756795710272554983332986726960357883251490393027965436828475426738514693704368355847677371754658305835016249293745897050037221134917240997088909303788365952398631981876236644550631934490837043384599324575218420827853341996953468112512290998910118508058368480827356199281183796552701523657377371446229296280244640150059410145358044187067324603150240125465454234753087806328592983373800684836106154412538999593333228854663886752328160947785420006181311555492640126870627683085911270632567566497196217597031936106175430494380399397562226085820505775713724700574684184167622487152859545443101197819795282808320649488598214038736767155774993602947662700842189117387653195197540283583964939466643483144060347433139103754353194400032717800847588118269417755837748228980196044698447155555117459966114975618957297589531025256385383269313611124856847933555094203423705036773609747629993223579136836610176320809719185162886512375707520534211544776451787724843527710604160498774134907335081487782003185736113572477287273744594987453278838570107312049403459439616154956361167766689611225297033007579356561918642412039862042351499070203677171670734362913240284877602140382523447498261326523074018672548942152936448612864238942281016971485054083182444884976658516623119241783443840038637599005534528095550906452163712011107451803681156238326947607516621169160279696632354667483401665185867506739715420044678661582075163126210973417270035270089390813785188256788009896927832207269458165177032304235310530784973279833668754721580617285332296853016369569755078213605463806413020171833205086537515537769876291163718353935785176806153654957246192843306977583721064090209213860670755873366278284731146694356112836128641079559004002254226391096015315769678791564593127027040191861755574863458714796214947656827928905520446631270416171257356949630324053218775734208208707352745316336877599327376544289193840357338298059982731531763806362388039036943446245715340183027028876700878867894823447500679379710276539314405617382778779321523857121184099569639200088330647260127461551321017947540976845085131459220252106062585817680360205815576561317097853802123894027473537649740201592660227253215208665718652180787253535336286901109870316077485038505340620733287609911909430046232777894658232541648130822984956203442357546402364028902835744049322385506630401146466094678939311181933556612117212340831579192683816764954080291717396015179907637927910740209454544484620020940494346812081667152503688664841117360723331430178613426704792119994507463339597961582912180485480427787059649318174139867894312835107494956982841566936634012403433014400369205326407188918321370081099323545741325379566548061912035632904341342440721674079655447540473323435578115174074131502634988528157016557725096611137016379029069280234146796417873494952890751552254108819448087621708114157879380263897971591995437007746271250326994748281459258176566744840254790660592706521431510252040343585709371016332664944544208861766545368966176070203858185718643945512771717771126462340210989694435330859791230224696729456049444931874797448190666205901990022773404404706047728240264908678114538893485430998492202341475001496340867000102451568921661514895833260753351284845810421917704132621965694459985561708757260613076031848510256878761145520628764096546633297292384189015486017225838038530256874999727328228659162868042462479908473591292317039978456135788051455667270609003714659004903753967026136449225389317747603027189029302132331861294450438751914341403678317971211857993844185767072285430775832763642839893380857130344402584216425478945551275452726126911475240741718933286365449542099392887805340423732916925563402550277391090990103009461856160325380398722525911627296282840653118147186379977651147003004205539455596619849658743884272497840142651556565891989990461482146200621382086487537906686054784810283472305969486972227445556306386799314270110498027199184723998729601880411544050013217072840518216235341741374985145882067905276374370402673456734419726980909551966936168898349099056013118191121669810763314733966849637019800989313656361555185062255122377836082600961396515335778430176046699524720868833915050187410335831225073138858115341320132750023368696463905258851239041884097980873321521667363966112295621481408196853484869516414820512046011270838609083474411926408190568208549221067938421774161653615323597313042778630927402652268090835786660162239323289672000272357397078335324838002819040365220031129351037551759080295018273443031629583752950503738576601850772459109048104176768424112047192424736335331559053514403989988198828038316150468369041590506743237198881439490990030240735206878626139362142417230532781787915881776277722153041401636719952556819157696240542406864724208535810222516307163089711771203371196209408914205198046260899386239116456455457041602201119470180778257068785260163599007012990353761767155146638357128519510165004725445841030496799579251099536222003593901371467769185589595002725238963765758206079159820725918141285600220341774426702496450546625703295965504401187597944659370559186404989609091874701909475667882765007167965653676963691202996518925155746368063481096067292420425261038013355758512927783312668254145822816733163512972521845022239900331411788575956036510565538571221792912687558750223825193159727789498447242148213801191092265973144008959510769553496881300346540648892630543907558255569692080249277232393576544142840671688772080932082248104776503665430415477754625605348357393842590741880647681972143665827680764068510718477849991582953777986711171695766697217808110207238817277601528527950957344829963831495080189197760612946845449856499347874313338620722524536678587578640943391269052793901069399243717512752333064216609652213903325489775039903398475644597709920058726094783637578873701398964933403889130052172662112664401234863706889612729194212845729398120745400974463238492678986998418032578216697398787535163529793425342885951337963484155201280552448143601303757629729684627153906628606043580031631193433939803339573099952336099285665881951625052558634519821807530768463602571648342689992760592206538095196249229699119943682758736270234509842377102571108996012979287131700312563871231325075274852011646217490324852815025726431287919572468646158313215648871234108776222986538930427428871446626382454867889211068707877775408428012171238878085831245950864622774120168959961998123530398650228838904398249180627509826819313234992264543915341308100466237004980890221896048809692789081359916139959517430264213027631518704865699292986036419085506724686177764551089893138300697646969103140434157679730805317656450112106515079084201070585410771522755545674286990145811882326081080678376861876489292037498590349005040506420431233457294185846778963493309434908671245607034570853240131342624221479924522786967966103824972808232170895592388859214778488374212741930002067933743362767880728810477077119033587641518790511495060175189928575780864102942829302110986853038938459567150649801501668799480737649562384047579012796413756625822706258097659366226727433966511936639420219260351415291643776848261239190898147746596653543396595152191966616115038519128344514775474142407978701620667842297659854065695349802198532410421433483049048371072411757440843535597032577419905666426369192948470795174689331890487275247258551972462984251818492509457688950866483757092725893795589823008161311098175326042954071743096167673298668602690770895605762680440311035369330458123837275462359390561724691378197755065609785033582857072007701141601177337816352245147897785293177666195484377405498856490877343883528444680135791500601138866781466503888278797427855163730188734791811195402648644580204431685125360518084497709015084517301345184102133945561277761345478109076714415077208679412694811002996009045698534282249826076295298121954254880799044667107932322012613410362628199761328638943684960476257578460880248555465296183749864614238115184932252646335063145918908892029363391116259561730050280189336693719614036150283822831295121566372424083647926301224013469534507191378842365672998458037988284705523247430109086171516853569664243048426768372818105951332933032002571347281348303334723703329413757471396010966832040041755756929038311499288609571953066505515809870091192057458137949876697904871019338591642196454761994431828793458752064983000730626576001880582238095101890974748009257809768228864902679754952834096830200133505496834855471483353928759078804516147795650144273739118227073635602368966430847645095812424952133075680901876442136604535424610998986770368942499861456071776330299571203812448830421380199456390473293883095341791283050030274160825094716948352970672884969005552393081042909766299316836578034295514839619828479001034020412294211283009894482309728172371850539251431896243098468366473871914976035366333465012184394265130940003582266194322688798930585043955287733418224223472585608451297141809176214237448333963815947993844471268251391803020662787499781161588870522335991061095640574740106204992016574638662240566006498472528543699474072710731351611293538565548002868068239902969530929644008156691475096089448896431070179429062230650771765879353784634489177574459678666030434820106332049307427965582910342688841457994771583289454422433693166441206170170133045532866478447723388056025224356405876687807093963291215680727857413624117237348206557871982147167301497585558389786326903083957129969080838116073904993132495583849110631154612113325371273152946450251636563392945398091162518329749301443636853096213765052320600290184511915405713838143631698577151398538311297037490823002109492091272565463969918989139231074752779217876070742174468274764239638534505536557016941056861770974829818426722723731062754256850473608793445382032019934769715183206377236991012171582260130652503678745238044352071648011001819945926391583411469491654139404363837535293455883163618467714225292276184322426752898417972018637810833353584252314975820292983913900847239281164942920820730338765292329659419343724647385055217200412366678827741212066421296562905213962113647998213422115810854145170153429184866029008041485189713209393003169413078410441071871063812829663754605769311812236085642098445792403036541552975877598524657171278753011962481821941504815159497188794900452751001657724773506918530244842278337202732627292021359333157790239768279515807898916247814746516502220154435767018389458322479560771089867107237037229017405960851460730851460740033914340542525125606747307452678254474256862752228729150577322375589363115869543128075290506704491466476349469652314744886166752579172516911557938831117073400794560384165637203740088018127689421656055799482955897820372014021106108125446962790274863005676359002633511380933832611441179675141532963278960369480282110940563109319375053885613442720321184856187580919392711689606682774327938095978403984043065918560169760064595648552387896228510920932294879148215791264273880365414470361779937075715272428260925795826929183818797153250852171200347423907925488376662796441827566921911502921527788691629551709039720898293471668668427642690731500997155798038928526243279660903133475043827916350500010298960958497605491464186135208492775393268071047223972874272733012417074121982864331810464433959850120343953480376546236055126596708642524109302397915140619033932446282629272734584964582878912064118259979777352373817489197856644550712653730317677569738497875292232651272157523612069558528323507023977351012566635792187537988140410886684588565964797188270901668934759149505799807326741444554690218882561265996350827580277374403393204757710049904346792781909911008127774773896965959315970731132031601405035832671386311289405178309844604387008753568851758435755918318004105838750693264037763489431782118365171374640868158659745135212799834422516423165433006610159900153397585405054218901693944463378873009602398221934112710232314379308974758605991519088653618831877080746111222783859676560431558998867548669289979329094808333104960672317598184720925533987899703329625142720823418873502456801932646638097834770798793611856041594025024355931366399629335020351680255398255769148150253933104230856660684780403718926810498753922088280819474188623868832649513424744310807526380859029502358039222509153340467235550849074653222270662264218721980475784983735727041764238030544156898027879620966795741375998709140726142816367113038061190269968750115437527285342744109602822925773425852381300925157305692836708472904309599931980790620634023858000517374253574014089307952394462209916926010226542606099886332084523593502322228806238430375577418293056203769940500384950119530235549819893389898317748103075473976927010845015608037521945912127790207761944774023032794914608144294498619515309934617523941383522030521740993184363079135246821484277618518563016638119353971898330977936228930116737807435576820798712932408001857499915012471299980012489234603899972382311115203861091080104742169637929301548893348555032302325017112254199008250227391561229211751670826018597881633705321843860687949124581799446767274713116529224620411013863149457858947689949229408734398915463015985071420933609923446891344389269143530380920190207200466889329745163009319849523324383699634408851841642810090144908347802229072147850068006397824410361843422268351631106114481361299353590824232191646945484991310727597823655050984885776767716530753727995289237656142539058680797087962444463659347867553949571377378318439345087255604475391842472913221228044917539971254051400958004159860291907865237735237598866531443473266231157600962915766914283427430346779106052507331360064613915303731088078527965910468344929162662827536582294687535144367321601143530969745073551668867689425327866157106371267711036417177316576528386390319603188461188725183643121960798249319366852186879370962534362520414540993845066821693723027600374019560700881431398871952869957959908226455506778859711083113272865849837224553379806967320238308986740190443524940555145359143769415882670265888928565453573551120353604992944407166291541517996507632808057200658708836498388699347965092828819135112490268611345950834142966702157111579320223780200500681028522790919477651338523584232500019695431435901775837708121179789126397971326486438241283388071706783828281481263664196803757534255887329982282057741086714690774394876637984575523593462987434918924123121114683491466234498952938687294788308073714655253022803740366329702710561489910489749011102860654160531780491484822452109002814322941464152408456003614453485163974498543873749842593290330398155695150603140114169830229684926755967451746967439090327601901879819136935572681271088481189938853327784540665567303407403304778297229962439131055118334973942102869940337622938335387288168514573587178443770193043501188676693479925436695940393824828288986502450443012392363897518846113513950648416291102209551103561605744150192540147868822129879498873396345714149727938222631504154236308607717223840761399998636748808277285034851539731862738781512262697081686956177710742138793646522345708460619276412852292879958814243590313252132858825766764792941728141323009050795517855823092411289043786062553335136433491966652189163218848251883046956726458853750917037289831462628624452581911607506652066477935871831556480202429330268396042867736015938487420883502771553084824879444203268130878824898643973985592398365243304166303109855160396935566707249229091514852853501184172197877640887664653911409206315575551827975649154926789021115941849061444511407355691259566741619695442834924711500801125190560662586334306489820148180524328151840043256344117325949173289870525274432267009795450616245223484898882170656280059358766133899105431096912258396426531851904418317273181305894373748348806441516615507846408029152970439878625769082524883057560542257283295359676804871950137665535512711359441838018225120630679243322275231933111004652134035579345953494621442000717244123438091486881557928985351477235478869688575484864724177985920757889266841554587606321758190635222108381351257663618334001699100309447789032679798980116868837847640469396044016547463169520177171522135509099888032673706739486596248325625153910812985619218840453817542423382045845898705767262222414936357555744076649413213091068102028060834744463387441508552993627505686895598210560928796230216392434372269496243059160360373062580656488058483933544892100947276696444569724576902399901917857017623712903855655176755723900715544125948901174305035589153292184447321360025531741231872203253738033361540931048214226466272271554900980360693285795093341367203458922810153842615000497061969304401808136705251381425373320234346918825544031324813325857577537169510781453284011956298063275348692398900024069555716672460463664942630315353276098682479428135808030162117644650584181523733591545367029182588525637876700524375917511360434701229524852646734067081006326767332514449754648793744667973333690841014942703770925666463445525871998021371129107839721582443756097649559595528623130512986711612029980335140002921199980835147679622523037855625572955542672497072321359509081951703477630304812796182910994474874270904024163848208407862812610209782504370448265997005188020948567686851382999491742965656235026915811088219992411866716578638918344085746348942510052707371145039772968480924207250408423277759331515043049885189879933115381200375679526757172662203641421012891831818238919132539927320080131443567274123183741246855048587713169388005582692757066393937601551833772744764116590288167141255309524170158807143792208749129575725027302277100547631945849780745110177928445750783815934983871565980861823307371617010463236144327098923835031264213772320200638801349301886456455252796521509972477353961781281356536923548928774861609467765741520199901307430216523179407735162386928548522585651181009463775079957864613969214762963512438519991370128322436603009865418007732153735057355493532117840058075218032258202452173870959983415976892204658620041650664324823439680256379473821485606423318639013905598192683751263477976552126447221787721935850232623271332388990467345409821957214074930515512735561731681965222343530240898764247834599142136328530628172523886342988847895123764356850972844632136919712757062497656382822519902124218117026770619489146280712382356227186494924452905151263542445215003558431325767194514619039374251638699187567912336612850071410663758390589652340768784446282998399053781105815531033292876788923632188588741688428485028506689230455242534802562597170115411733179708298543380944725871890598260637817205895492928295412582179515512587961550860988636912019504328596751911040460804967639408828293270695835103565494282282779412177747272492252694940192595863732298112981293992866090237367017301960884727037994408986987431410325347276541414428164944367995405200639241939499085882983366874170590286817442336255529779779332050823006282383739916394063339304603843837469995137790254990720515871721236671606574716658583132133086528502247899918649837628696167907280353059479539615354413074421134614915571460528771638085890404257402054919498797009222705882019553387188698541463751275187410514089955770812355097884666017995336679039464089566903378994640019458684612500089280731257479032134032384377474213281243350304289951828570549864827059305131454200925283901757732364036420659038738349258019227038323917224348833829880692782052601028732674698730898324034317208516020481129321590535762908762978105086745019200986952089753203469063539756298117209360109636573805801329578166451969825371890458713951348803932328038770579626930209716147500379559768960517945742138282338687810824141969738643215501229054455632041694823389762877696679835964364407771214584938857061391603565191041386726616611041269000589675464755302427796899230223363320959690105530574483867609365028652707651252922400104878355859996037471317983735458706510610823289788089348391966479333498133326459398597015207487913223376470757778849972451949585805274393554571007746855272839321137320358067422478688550846932299004719397966025512437731966820286831350979181351706672375632246286428425131389208843277608428873718338882415952079319471955439236409995570687039335609101885271616197011282993451768868628217726814639657231297068939013477557930794257818814367346248835561658136296706048406214660277572596246966631465448296907567860365315474508262638388167956932409429856703107443379972091407580685019579325538717838829393262642509566324064020120656894630266124700770327346070128889391731137610313887574262782678856703169244614327862356498360196335632961911906073459313694055974215149611639587330910192998700953420957178242465323069636764925234471758321174622989179647326283530251309875291566866319103264953881329689686539081757514475630758866497365258067174850887211830011151291531994512620290304367893840280027283961195848263450902936100735890064181246238383454029819827486245658527741366462273706210345679001096757823916145493730633486514619976559670539952560192798781143478608945126045161560247078727965814516019790517082514726263540965431395143104235265672891676590710771508731204732868859481241051273540142836109829776823575351143393488539042038744832191190399509298200200427827517615131030464696596817137681694918680686307343387477463811991923610539342390114730775061454690935197469024430898421334738159422158796698215800336499443182121017004924709382289734812417571570599230624049798544132523450267621298694147592171002743895193520218752877147634091229925262643072874281267515351495943022972481929525990520567859702840593174470487296886555295813610589663632491527355768358328037890468348645026974541379883958036638873336754824431007432397809977844148163087843934900876800748912083444538262102063087815957337699984701472872118108810228602245185283025467440615565867626560113239147414312669499164563047728107789546421101185566749218817495684822583169333518330113111469032614108084687889752581969532592395389807168873860794614991483850581408670011470405219050912100816485631726492340978240182047762909445780924132761272778399498040778872473506683468780661884937689506355659914823837413125230005665833488087887459837690882039616210480789192909696825269995717971442480540679827230445247545664299709902831159958198659107118253542927695718828289136682826172012871659641387826883967566848670350062105622771117309082523409129184672952513873414314879518465777535545965640469358204572338421515280837091716979822871587410603921579733238978428294658717190237492894217061411166368095816430312457954641796047696698671163231478555188225271353327158748444538051208780743567073076284018287244927486541372364908160569755655012694660107815827937286681698174833207336482462101000830786556775051024994526189444388949784208448789263063204553514801895935869363992383989406173882479880653424287989414095542098517358152545181559439970738101572737587800988570375311678205688648680227781698511359920393342368602194217077987224138866827390528149800178323831085762689678324425672021431519178264182200583238902636081203942205060894511551481804177787789222908703687060876277466961585716766955314484141684824137092430501086410032487039631179140588043820349183597988306638479609351071282213843958039701492171961369913161288013166753663496144913637859401743134107907610654489367132946996807499656656599898091488466429819080721945583417988236937090739108225392393062261489084134436080840720518268412642509040555742360729355835625848737047269860249244364388551330361909208026984560987562417902706948432244862685514671565461492093919143919053551764073888717298482503157050204894947667799790997054370075711167571965392377305545541267881448530485576327316545638850251558441677380956506003653825945417077734125101083185007607216336547648167753020070017812771976572578406885418591366578733402222087362234692717006780045341620081209269449582022533735592055566286320096314591698173753152376990194100950351636437257497342576761831086050566111334371369545508083355108245217077132574431993497828777291862267149766160895241740477517658803877728617426200106240824442503373759348199715188806991850305508603866285414027259359618764176566015716202461535928531519959040481156785633417278408056149844118177357771723398548837597374537277956403125900843426092487698796522060038337247887826165659144266179262555277352543516648237934508331165708835923620660416834536710120934150047437066458988839919762687712176752052071615733567992298735745271607552560634125776368559949323556847665053343983364344017536924019924953363739739238069588133531881971738198790038084585400467150522565657190331026415972869044363318532494272747528309884251085020135129487797283129134955563999678153473087452605987510003370664648106970436756398307572445339691113938555442503402392503327111216467177628706511223433445131106207814930890916948474354110085947658137224037282876038002659784413833389966577536923219054194487586466488333563192207882534286607689755823052213253295038655602260206245019195932581511924053740148306658381660007502088103859719007455989504719959199688624022370098422312719045186444409865275023964554005668838538717065898768804003314276202161660046224028387532287371932183495683870392161759037365870378153471816829742022679213303671025500984591417576415013224976427526131432372238480370427435898205721181497819521695199569245756604238555594095768532296356811714129923010565336886311497867725649796516449182969830568986524683593305067206675889416226568700667467776904271441407407083899922843790353433401508892003241926650362323244669618755782356765949289703039892460971792847279671179635232810965109318634296714118625363578420145586200055264801192874045013944656337876533765793547101280011474219921365866824528528111508213623110223008357783758967490875855732121363449132697912085514570012679352448945673722054455699512285589177061739666595473419768324183929949779893518655661392395637620592554704073179110460079159489342015792115216682284979586830850308247162884845980843861904163768272526909336856855856289209496882871182382284253742220731564764142023883556534059957155098647910496274784647695982079256752752523817212731874461106751727367876922278113521946129553046544568866376613932015496403242677024113702557176966331314147987485587776500618859290011046256117564989663776508123836676848588740990604702514216539905089001224773729368797709008358854031734507314524778875715513689587166568204617292275500312562976359519099804433049284961948713352455291776329482555158528938714379794688992690982202241043608723690545824480760583146506598357051176798758398564322445659653883978109205195875342764775063451351516010462551498221171047952761615343110557963749140776915471353463793820041269080442364863786971977186045627612096907504533679778321149578445188327161016733537091551017261337211531718222584449797521370101138578637571451689356137993254141802348343764463090775371178936271395223758888053546215132871623645973263264907347831592214256522981332110839886681761244811429324667019349279362128113903770615097982189397786635282145306802636601957917864778592406373166404609594748780537183516636479348988987666237696848198444217677224553970128049583725021072927492939387973131406678287295060333215837051954555134559580766793841501015675975686252958121580240638304697765193789280889766309542660801742660015320726344274906735992742310303838750868035067715434816196011945289149779393629275877424026825087250867861042268464943204196583523126269010702154990296033292996301232633600451263041352326273880414261821194625589614621481435039460751686331526957987534688635444691745604868319767389445138829945557036685088140163712621878733925171719912903486247330030616110809517199128037875109656750515309543057816543612001057286232450989223261856167249904987263039871449899563722655849103318538528706932602214398792173480350260607423978357260262841204977689872606697216056186781177627110889378290482470837393327104739460689567266917947409066602057197685014597101862610053422678916740679281215392491794999736869194770543658492213600850826113772343257357748999974966646862817598168052132643323185326257913281797213986194315362492433782331970417923124428482401556647061001793796974614644146374302601552245425068094631293991374275048732866727982586867299443198602209367557048509628330586863924718085383401992271493546037920028110596922731474839317413158279281449660236514881785194857495553825296628928544731043051290037497795847010535612138963585979783563843508376293675486928928620240368560432703016464839699004614336963479730324643973070734682986410289833307847570341882410706035620203149358608059970451408371049339065903226775713383766446520046210773609514222234394009719536777497157521264473808103260290010601755376375128944487831496506015396649209812816691641154116603864162820868512153715153214857156214292641135932342944522061494326052424156385081488253318758287739308308804010244424563423000790436165703277576831077810348748196445416327841211340995222191183834928282446066124036343610419956841667820980995179848021972753544306012334145636345469242788630672534490435699019768229002915027854101953593077640850146595969678938040834130047173843319182696449824562625610966705547581485782742750019193569754957111384142422693098714406272048246690275881379348239911857637969395374639587394396487623780931201349507658703786059593409165316212857681214825804785454406246035103263544494708727689752143458592404626448840760903528766200661741406809885215190209363767226260020161569271514925279292394349516543698663713086930026764095282703301392011194910805801452168381447987191121101651038966639347644294217488530209627588356978458187712555634707328991076917472622496878857472945637780340822160873078379287453928647070833887097388343486242547268549170306104350397121188838883717630414838782139132715420672312090918592868266707905402847838283817741447030470208505487272794536539566016673307771609635441515829175785562910240044638709109708193681693498988612047942631648222702046703171197038018036995918515553202965800967151766641697119292810017264179310686249098174092167807485371050138732721386791335860998406326756264358734331459575843754458348743020246473182893191509531399304476755251362475007699917170769227569865440203971157295216524415243949578961214876911357489778045089471116757087942277589057192612834127539561429795036589370783075806514107777561799367094269009682519329846273724448226075063312376040420606226579946052871499533921839464313010431240308257310813796953297350045498149566912465440617157880219355317620442034091876473974808484269473458788157833944224841062653579407652982580157689712134774576649563414020536102013245160637027241229173708283482479962336172428178042863333628995072144881068134784700334909357851050055791579835819993369938919078855937748793733232958664282100941504401258466606480072304285879473433617844715837557777038860559075036286305241310189045089808273201875605975322005844531062715195151797915627527227043767426412955711690826312326213904859399816132522747866007053965338984171057025681929593018510365322348434549598391963963978694377834965846629747606802490458017300882193813476396868416807698014923192586339775664836658766341449684313675755085276361159748098060977872772548646110742819566443882553894931264585974451896568692713576345320909432329191978867732938460202578969805841117626179966691105227138049315719499674423610607909770844521160791730958013322940770157327942176561174570862409572226257756216973422007609062850978943389826657090737420761844003414883587867935941484469140233748571396535867719164856880187779313152688815798730851047366264786343110906690456958087359936984203292930473105135207914464795177332775083676753956676839616061970889225534382886380619501232395584709386211550324534716284280089565440502618212533568495474892176150960016427452889728008583009585851256754857409382824360839223059868177009284867087089233759573334609572824591006069547367637589907697151935364495153182711319305947038376957156335853646286719763212102734199006281137318510484082239543004279521820891870732618767379751936436517174301912452195515858500009346844946333624182436144932047775745597477555378697297134092758438472268259686440290961557507488828129226047905255290811586498455259865263108658908108333429828462548753847035395222688173374493973009500545365615950159792007238709765504153270035862269469905727293042835902296243908885108051130524544039295860312457874294960461704297433465088677880201834092008850508622553794435228220860393936015979872464486218369432094655014836167282864744529215023900350465025474205095208758331776442854033301324982044377525976301022559985254052064262014797526491538763352572261246322299425401564999072867591799210264837679564818210511981942484419347367550222573837425446264540435003932480789454843882402383118810519830206818112699408969214714890771002437785406859179848810611834587939157897895249692908610781397859074332968181062455107642173112411344549180617143863911787592142599221103830711534341946220753039091246803301590131711585744596259330507047146992128774225750352491247300516809574619340803690098665306427682050899387463066124105414727706527450174926198530936668420097640927264401805120954981682938808937497122584641013675775017614124475130061007819304334146150886394972752217829953090526808006416982226848990916372009352910786707508968220210057679139011958993547936147966490118973633913913313205426499116198180483289628289753922647917821422365197105987408479207378688202883242466848635521204047614912982323229562082971555082608683477031105441077568628021129950041065411357189639346904634901122309263060604042182459498319052990486730744557524997951142718195171955152705835743378103291659341873652263146220674706345842845399651075971947301094972440179034940858777305492854046376112477130066203606181027884362361905686143196371891218566867461723013385075724240221863237231884677638870871514824806589988743869018969188105608326353236325097305927688067015517447979578711864734294486782222327283145659403561910550214577101267118198359195842334626230015403354661004086838478651678746355548071322593010339689728010876004910813171044601248764966384996478816369073199410144642265705203336660454259587955735645758255989913676707596261438020709999021359743576311173178998246598954774727539908930916660076602289354987368069038577932318511124956639002415092781664589295148854065404134914328720165794986897904105228701818926750816980704736356505672608943381197062915816808570686772748517380550919166098979295284041105710359696589689392164011268666912435297697919770216999111917919330915629756075230278179532217657570757805303971553337690980388190758788053402995701759866362356685288568711509682294899423496177918051252176912980769024893098281498162078482723325907549812527479877629758856714150281873264822084592300202778975962066950289880903751469173922414516117373236200592007187904342522395961970093867373581684649255672874462143340123627592027406189067543553090046199181560387938495761334407892221131213360519009775848200591088345069898598900710313543335455985939449539371563738514871995547288709899149717099865557453853836551069022044327356186744969440165285395704884051240254579412034741082475211430180816864505545472865146750167338182485420122101067318391174219106191578149132451894984737554210074640981588148080441529285706966675981910332391394161327461225409630476607799272119063504015283381429860857115375951091902563852339670989019267330297376511293073930408685748144656547127559175287170625602759915606280336694799717492851254483362141732883428500742119480326308474629145253893994277300307292712023255999339377235791621398140017455345157743797480475322110474566604833908669116743717475516498246883918535792850567571648068128200502461922501710472380562791777837266274792976754992434515978036391744608355042366955632376802650451136477327897562884811940760408505567755991943371446602338768076639174677836959554402251435124179369485215755624623152708416544768840759556689327523153588773638905594837698239032837244939940462121537265072717682770519930261263405131011794567726862378396607960453607591241209531721152595832420153806805250232955589881435332100180103925283825522606049915298029921979730474601014363197517581404675923699267951297022734607258891098126627094340273549635776498338235346021638452173530259278145491893499432523197459482054571609811152118358604382822750828699680773295881798166798816122206210473150914650077749709268178173219543328141893516656996726225532614616155825535782109732372144964145480642933488349263623237066585170692721227734919668736486025620823071055594017028797753511001501377534421345095228061797401352597912504442374403414993911378695436717594279880109916044242737983961425357048885938793109457212210896976809962934383898946533879938039256618158927261191949463600570161259681100591611258952170802495102853387577387391736206659991983945787190558172543898319811563549208819017240260906367745022542257215862969858492618265798054044542648065647685507542781690635778537330490341010020654351867056444600725742134400515488322443212751616042045768161748978550753431521309002164921763708234250842664011858870617982739646039000999917005035984844419409722663445544972694315262674979686326591740585922201929913899021636081152865999127990330832979041019675382703602356812949575718885484894548158996585291438561018688318282911420215824256564181053366052274323637660487150746439067098331099699133590016813975078431973610058954801889885392179344211757813015033142709721072890609147458369856591655871557178376678251514002934802779132788176763692001078077462056619397346276643471889051860874673226026310507861595605302904019926611844062947913645387522710237174997978814236598299718228984672615519017800630305843092097332550049400749516444981963667922916742978495469168830542223043464213428675244222559641372465360223325390302373504799079182935783515823486160293041019152665254669244337251553484057476118623338697791688187418040456430685009237857679984252841803900703795219121105287144907740448447305583823126614546808675809266107652737139662505986058842096766123241311026389531044337797464061217352716694018695152095606004213552628736647005411465202229724881492060145209519524456770399537044535503653485278552428092818034649853737871747014352652298058296060927306933675655631006324873175639573317249612108013023375742486479611188230160646021485741857045057602062508705510448331091023977187691725324736549678171827025854350857367142221853651998749544081164385242434699010462148364878544087396317238699172718962961318810331380285352302555336324097432529001565243225736281451441244383626777366683707430940881228999636894964033609601404567411743997422481938680029682705752264460459386053511483734147614889206246189047467069789090057143083997368074249551489836877602067430976025302385160248393155036460992273763059303744137709617381881876567401272618836048343806155481844272351542582118994509016606721029528390109438423157798344064042870350640009811005401320711080959130779602920317634586270271971610758270635470047089862499178536299073124841734343925820225780366262856563681630197696865029545713691461902530239990617644082120258787033928985982321512528065922962250274449113784758074620765749858426735195398669264539438259824075869878634985312874271222289591065300333486285099943609000463597587330888815728549818628905514805605297650643656359790017306505433032521604999561455462921956739894294221776680482732924998137956301150098361091929782046497943628813994000527459715289509030100054171269086260155394417155221992825311474474981873477717912325792856412761423320184582332408738168401676701575055487031012678065977845914128728416998384970709569084567940938240591387442865660758671387961434286169542262748114431185088209621286156937703836971883820023063700713498532968527750054013461746606851863361900918302321160299987280019033678109413672064774223196340721090982647620151299682387635218864611643767359438930772411750695257343179960355133321618900538874997843467438416958807194642042097007347887647096113099686010434015934445935235869172887032789819230440908198699191401880347696667340632614407871650893223740342316729014874671565184161968444189201284380100261111893625781004540879938157021522255220097560232016110258318189273626253984112500771155957412633601726463838408338391081743264107181981000983241338014294509959661491899433665442414798610580433644469452579252297031560727387090773122804920793620595268688387367338260181022153996571200994288560820984131955384932961253054614206700057463297002973036345297243504134660518513701881996961580574846342556909738529757734083752457848077004116251536683670523148712162479419505685270335655036255811845516656251871898413738185082110376938963029453308271969146723933445544216678398808588796325857038619364113533668691823371745503620570385452761404154920548093410520825116469923732960840574633323953299604756439187838495643722882692418256684935711312036970744285798944146626982940440243259206320572796355344792051876443036101761681332994644787692841270547546815497241521589993879677697811344954642387919302619269069114422411720727505990735423451330236685145375692843166401712641598949681625833621178075801577044240340071039138183605355261034345650381555904925216199608790225487990994233691341995561918274311115484933907100130613624901334402947425324732595908672403212756278334909541553031037716359151319952120653042856605389565451960199378687488456466285550453440386486449442316436075465412730419250581233139666068439366350312151419668736085450898224960861536152135185867422179033657408130237353463407097386978621181028877530741344228160851611782763049954423922331086748980058886944241598901722090486189482891116186122984744762602126891286947788889954518037578591847578658179673263761151078170519556196548101019542192422972178827452141236839298899921219950966497915159963931990383064388257226032583988175352979753133822329054471424193123102189976107095163514615701988428768276143620002933888436709372618900225400066092744402902612288263222594251081272178085563674870351150405363598042671542627249119373000672370544791115233580684203719978420661156756575264133241754701291938096108082521095505952594169906901755205108025544351605683390495611020686685027310838914181397731589055033046765910807089076438722439692069253237185857137407988146813617107621592397623590111842319147940342320189183484327386225980183544366740558835878843434406745632492106509708038785993044801736734464967455835506186045488722914290849033980967328636798291623395457706051012461749608514471654615461907885805155958164090759310443514151280902721897394416296202952461167606841258264257193651118507940376209277559960160750430862638544003063119896846885686308249555660945255836944927285733125942873321540463742126298892446053447409375701781381164225129047052323576876115966715458698064807588495517812849777315521945432890630824963283038201178770224803107159407149929479646287778403261223363503521843096238878068016076275033032400057846129001927229528074731121536709910369635680345865582468045415180096308379878570200530599943053379024399721940135599199753770367911763892068510928853534535660536223793027534667971689088093696435534992754009484976866938576457247825720595436885913356878436322958885914827432834461777384041935303678052916192057300765644653984747702110276470448348261304824696716211523768334834584325017618158170074851708925030334616685163105146998036994032265082649351684103595458267507886500401023249093858146363030403390431799321984288913827900366638405342965892869411805422193442476607778427804860619390023267275360916943876367889939792717059629050552944288757089730699565961589308369298903721498598873130208198052252937274686985698597344905910404533118067231268074572792895756301224635836344553639050447585237554237187615473926385081725971346708158470906588378076076954234169975784264822846836142903357035020444827524140694542365117411608923879982138250984626146225973410078851847835469593563127239879771322422252803011466255273916077108566739116290181085988702023805629054379505977888333458504416094015610856963245373411978353194970957817838146997998546212957235706053417944238735984187577496522741666601382622235945860507728374126431540848140543257728770244553667498174585506257885908210145304103830793512012313398238220240402459010908232491281119259790960787362365853740245859143256938521334310573770657242082211585528865671223986262442803461661294045923415017933798657008692250925474656641407814925399627174327947173153351488674309306483952240324476504769363142588211809039201745398991620482072294764065698123610575879239990919018177845097477020110188152252103091781478416286814718410798560787558236030521274235114408079439492361843865383162611243353126248170586849267090366392700903847700590940711759919940268376417849924913303869210713650881499486600369399291375912673510198082032566045905047271326744222624729754819928188460937054909005165030475628049504608726327800139376062699838534615924810999663003870604378155518555809057082604004468642479634386279148978417226841985092138233192019567945601194862143024367423491231656852567185766693035222445978504956414644127170269890778951060560157319001159153366444945688912640167785896516187416026252108436232737684237870537166514396679127550270604592869622215804521639294660385732410599781310015225345997628310835183980464580563822726734367041635004304793627613291937708418892365372462926012236548997706033819654636153944102987865814120045353946081526322864440433875320336989593433144809809287702640335319111203560607137123721673008213168452407190890800839312430109058275366205250714407892400046592957567540982767924057991193144834596517056876810135614786510587168242701730027060674277547544360855967608029267358243870478095638293161230580613772722648590595883965498285372353997483225164681573333093528266518146082325131676879036057929793769564241938695812752681974985635735791432701882036328410601537685168629443895380935212921501316498984309123321630690896560539245414075818582575180680726125397744071852256811803697550537811370773387337254162155783077998136139260045023386230002151008937374440511356016500840233195593712624219950456755602709741548431478809472161063170533058463573348906519199385797581054784171265703298875365928734468959889440483105487611369342780128156154506685642168619083538667242888574463390992326484854028044806416749277777849148764094470905849921200556476345637967246843060334087897834548311337500937551924515426952910820739909096569074842467465608124738352469555852715638237837873809229105999301383972349140978518806314128545656657939971364546512347889814434677746499243839745549434085496821905785278963818138788227119084483682178560650748255496269336375767160500845041211965416447377864741704285085968173737266456286908636782844882796843252204640783476567993922910740340600104446165595352012130489753031674375325514726659179226807789348871526142047478527815890295833770781423805339726522282109906204407162586791301051040754177580204650906370435892416223810863510587141797106376921507923706585072705330049411670249556770485585344642183034999634212718033461765721855167733204373924151870245392790533847136034096921915297875369116167458793156701916598963504716256970398298744942846624043058237078435583645188721516875220895106919650335582848850755877436455291440466679541806420121936012578497709616052436055873973110660887953814704294276219136844641026828633233491316942380677424565587243892817132573715039225384756492202385260634057495498817409376729174618996968849447438651524275719897830014298261710637311990498692791332034645450655536681356804188030998231562843856749783821063023604370825544478727310760904551762920340740054148953214330356436489263966982869543250740446778739602305595028057577044913201487116514013284845059277883420600293486999398653002478363962003931282816554196431802299133964339082686517334134710295459862422981506341151656444023354062306961904085317346156234440780181033320752836539637765261812566820748618332072579455425916876140950445452093640519251980647111131336294915130057887952563463890526477075975505630759746682078699506933658864698844709636934628626432631603188453045840677621893487627957773955511659584758055591582395280627894515430821977708273587855190336548672574727324152789639268011569756601811312195510818027425182688701830180389618109921180153744002327350143685877514046791070145460488573142464014719775224666462607105289341672175785785636779644582837116532596048648271508804280594404787731236383174239526906834594065731387806683810312339023316603054832991693812305626822290368934010025515540824505014373550866004904055800819660402669900188425933575475612489461754006793226037128802038272137109163234987638727295971506986200947090147147290644536294569783641257229454059969961569491501111813000167352111782439735715911699933590110221549287088775621807813448580308090803784905680846251140651584164161184898802157153359622411872964143042583752654688245178871627111852855675185788757710687400641065699819078737785124843388331676884814126413142780235897131300087000675767794042295138975554820687805238933818065774406875754083626164591563831567023964188397025633678976831894705897441619015556852451103991414009509927129208134883930886827158614697856325749085951277057143708132412972416443979828107155858099653440555274506127196970022152852750026260994663235070196068838195951901226193050700694388679288512181466897164982880392810734594594425145277010747540254916659334123724959815980937243187631969395057615965132417466883973065710392645837240554209361932638188562342046798326174009784516587691906299693443355514657971495391544728561880426793101845300569098425794416290843384103428433532725964973455720173366663835480451370644775464060991040231071869446357671164669180601755239422468740024479499174422540969130039548177043432460898151589310558487603367914589312724342842108089055031800524862982788405484828313503010113585973009842828842997863357496580850860576164764862858808695787386760084901091315664532246992972551334457471493248260379039413448940273485594457425872470601169491336610499425951581859141224122118609224390871842226264598294595713238106953126247311569792267591408045916275165887647769095561800526400361629892974786278869935746393289302784772588779140937104208130677501595295149843409040045516916436091192498850805604725778735440045121225430496531246996116361338257485789744105164418849630515678538830100507097929289869842380138863012962031595870368449430322352491139939365393163858627014609668918828116332399102195797196969204636832594237014948003947673387285362996498893568324450873540537743535056534603854821711282110267394023251844475916954867263041823882795389764029081874637667579629571754465336447217119587583298900358344826738992210837789139324675349016026924418292221582676901997883241267535795172502456980077503864620969260120519151472935172454340159787782578948633095232403147098585944816459715895627133616577462176777316463008663487043363428522691330556214498260015460938111888903483407164835238911042307958495011689203436440079726231947645170871740607808939726247817029707528046791796933672001691962619084875385281663738558971614563515171808152347823688835776551044010587300283608210304593247647772813318945215708243356449665190961352080375994732457200118921484350736042151554335353511505936967574133121751406785606005018892183655729980057364314447349331423462170710354049148276581887984956710446898431493336486442082501219693670051669362012022244584070902690289188539815076991604896249084585412067748770020572606600360003832702446882175756575421243768003392041810525563044846052561078538148051806566323889286743358367912917370568982001658853509419994080634339731737391887572723857150206726452389973327405188617014289408521826221588525496390096927700530194916615694712704975386005257277282332044101308269299946316308380373460537870091206603957328263753446671166333815126793409997185985124972795687935717332809889885294553442439851672033776503291554274443264887721833908801545606871464178350272841555445717183503635712835847454111574555428957040813993606346829303983655757980411390280488285528087048760495723343296178018408911091607486062757193738604195400505798586462060402711393542063473135601897503674446238359084157510675716001029712794411831185773271596144844331631983914306355847293130204369394906591294520017820555753204606191958963286060879402715289803376680564748631163779961585544354732605706829422078651876340011686571921509101147262919274733200534397714725016253909335281085498101213048477307375064227340237742738404136781388025861879347027829132928424791829272336845424984048519425023124383448680541743849065766147523837599755837436827188648587604690823004022272305530541355960423066622373404408570028343499328893600522214204868623144814096262598162427254917103600131084413444878272787958879586554627615636950208307572376617162878077813845076335610226315400300149703247844980376207276134019395030611891268642213818207551534645325431944404939484911584337895170629409460158195267486146123817552410310988383689575998696620777190344371541325321997610755674766272585613341864762790172346868596609005178380177197643540542477995827599858740813707404862160150196584296196865300235108316434722715225684926675833958816075742314465697600267290450802141478044266999798181754460314505939286458690822484397176800839036601814822536718951306251367277556047336732610849574799475352625319018299248326414375880464950033718728433098790499803680893265155651458193963227733678302044298227887454288069494298071624407103742606029726511822396803856771495738107959533072467418335245655763594612710039807932253413639664489159692525504663444014337135821644881246409904687287163074679059997537228125978070189536836543648574888644831035675845563456444256543964585547020679321324974526847822710054126868557961907016693914562204696752255468413654384841268914265584105845135044638348889740566635269100296237601047179521529273264080935500504241399172682317437518371206698252191164679109390317058985937891279210843135287349978923746243942956587236492415673014226258839242367302332332756085209960393165689070391298929486883072824650983025008451103480848813462473893235424180022676959276002111060975015754828522239530447902134449505542204271152266378675745642741095246354424117081949591174233756386117264813839431334973368993945525192858448512788518627713778605542911015146750683907356611234508054578084624714320305590177341079301003439284598636287077900137744074170197369832791362678850047916448152010409660825591763840224509288007108192613977983238577747867997916929628678484312086981992708344321702189165553145725450483938962182308739647047916262550382686005430663054055348229825466904033844960345821361870865497056140175791636662586196624553270860317688835588252318167759745547558061988509192208110982446214526926037094891218640093459290193317557152507105158206073349745662213176430687292972174814710277402015125855006072072827657752807638040025218633371894350219814524819056556485173531211595503626184379346080052739416431151701013819395884190318203681373846017005322447710808977433909401438013989700228454097468223262761822220000923587399807261978256800947277068322845924884982934531396402939878411968907344588411382353608130433802770353956057988123995165356338163629008133976720829250879569462785170071147086142288384865805215593930042281142716429409244206010531251545152845688482680385023770514390120249964130853888360546892416262838329124215503402995876838983718271233097180345122673497705484103613990394113665945201912310315279381292586441039103989936532865831657468034996514131499845770963950002987876173624186695006791243263105627032147555717600603384534055337838817560941475709611340136645498272773613354278454612251066683815383469414691917815553367145480458707855333024642595096969149913979801856026485556744561854762057979999525740659452823975840558941991229599804031501046377577122795101216805224759775291566915962943246113082957559045771262545476622900836264154550337918516762181438429594080158802743644758386169938483215729312928421578638309216759643654267239420575094950807684245791472285679685692775892231956647090070052910672328409059881490452470276241219306230441324449373327049935981028345657803341186138419014009323983051579450186450465236765577232893720759049463959695398115738356303988996304279133296397873937918454993649074242840305122969651781840181008202726251255269598338200201732051626378655203168283562695005237842315442453660252635816785569199733994053377611601936542157147928731741761984518796524537570290329910462203555855980512475764232198841731828281674744821677575199272966037384877239864969879821282281216306316645460088073497989088745702395632343584703626010687091038348669366696167639706807151020724274881841995504156963095650191658185732910504727058708890699778111331140953950996238747055691651168475711091623008132316710459448999791416324672791918879480341368085320907258619205084862831383141755529295553359069728282392923456600085422496232243993061144896990156087591195532431941673621783415534968864918085335439377691771399885070440351782227214098577120483079833078600698789633078109115743710576612129247562689471478971583027475694823115198057149716305975770121796850513128610473408656178067011375118510117969270769436026082511412473317656872143685277906651400080108776549606897106726106967175996084903691835076644173376659355214046083326423358591910239274183634710260410882068031350094763594212742454403336523913372221393700274914231372395068444073592462894832154876033015869210144927808270706189613779082330587606066014420229999040579785455831431784105413607063116378461011013372029175822827268642955904865189166841838664652494511493849085978259770122551290364477243951591483173084951800106309650343509243630679055027252127077097600827700952087529190110006990441313539008514641163793769265414575205907556226903898936477498281989187329406118783320836925104094559546782652175911615886119765838200005727188158614917160453725457394345265893867757701711237565986852695983178760828654565716204778832471205400775265882961679924499263777024651043353187335912650444663698352687445100244941790884161108894024122383427678752507550399498726797839014912326379651668542278139770138196032824575262484861853591126638605613073994015174454697576497569304185424876828609536343463541936657585075663716977753289795834390912299860055429595692350309006552596106689188771154393960991964084021774961684836725505634469420888430015921389997858562004268262580275086103107617087273351169844582758962838987848568536866274928480728215796520114854666787860781401779618363512027862852045798514760342608493993822987536400545682148741868633234198130429549917416099743271744548199466518283262878362304295802908217642511718774160780299064430577468415408496593517485652051759252477967737225877442715883909071511492752225700519516477621338834220995156823016458971267205590413855452176477685492062701573298782399345736587949597990847657051207023521317854186813702775881062566426314043685313155925442496007240616522028384434220232729907459067492454996316302676030017696544306304289537515635262269110399067115015900933601949325766344030018675066039165804117002370244609118128531220299897368842314840612038597119062748801523078986225354032657862343407428395876926893959759729734723153162246236849971787094096776859532796825959208006036988208425619137684422422231309154677467588272833957610832848352287272596425874795625902947295639279575385827706416874042815517983823206436790114288371262305728617648519163484014929254993635098412914618245093814607007379330185176621159604129333547392167652500824237395056106993326103956200895372444492615751744189578100962691038025550546037844951242792282191826493618935884515901026709237027589920224136377733375099216629832453114501071698210895924854448183543908330026719788199319524798816495566653091883319488345761537805676272851266974874431162592271134397686410317366356382198968432036329365558902025450289223503591026822464050572236380622701350054429420598709328769459925532175938746011470086558931749498362404921507647746725195211616896923105758847113524329618183881161464907898283091444573244578184097527852758161386836712160674583009146702500071328217859367993744141906753185919726148864893083193181292896071545500891246000945866379458555511230937626530643193399280901255961080156441044393640162169967695430650093348820038676994289984373045138325125169137820544511579862456660067292867705615380264670842829031861437506731285970537292804777424349382445702844955239728702181144924852025466268119718209523576566790131052350557492435729091223472422859164927174883515098241930595790363709530065970889791703108533750057351251199911159195577264294475529889260735508067894419670926865794789351634341433877261727556440231258065882678000948387854943513252782007035914545847935753402817916777821836066445860908202959172578947128597886747164078004638266272123437664785514133303588703323708681682464960971649078934679762026819866966511815787555536056573057927743055831450600979237329372321938847065165960574103701756442912105842364216735372517101687750727967633395583261247754870643131885475603324781116462486219741957073944079619749192741972683688436602833843687505294803660621477004817343642645739388127010280173106210702470444616765112048914001608306921299518001223052784158874451736073432892922015318342626295730073914814190461102895525480982437511787723494148696247114141395681456377491580768588854388799954316688495478455787618087101864675473462499849248035613687830603455689908640764373487912950666926498462048216154213464939116587750911262108172168234994812639575916968966524273487410921529998951073966418527696786737743605583948101695970638075146221400929579488333079911500421310962746011621821057537334102628004737852931905145691320043757298754839263839050213514767884032955409613534422099244209730608211143898885658409466013379245667498248937491785014178613056116726034451382517538516029709992224226159899784392917106110093246521397583724526814694561530447730186601703680100354425422777985344032844956476929367536330947769827526276805617177086477114025435733732113747231507771446442388989484417278682268981265241767299508512462298725092791724699920951138814704193109436752560334696910444727781638213079885352757400389434286263726571436300461985466334492953843406527945441686902657659864182871994452942716428887606538017419138885173276738872948781263847053441736347086412342563701942881008967642535891087301196147629129157233579307815407237373297278504887155979989263010616678105636001580867633474935741100660421643885400749353289261443365874279714614680575527904072627281748589087299656841781934767146167866717105761619983450403624133710720632990418007790932024267309608112252577049308015367795365535061541439039344080257032436577718030963977389539762502507387792546451894217557092764742695948548513019385975002156399897407732099204467830405023806161296039730562553744027433940764719130918187474328017537980399387270190932369853437521610778333568595331343444647253092856853283980845121049424593556210844199603265897303588500649051458745521530463682568209257097911049937477964436019833854013629573226919493096554483340172888119282020344603848801436205732856344082913122288595615138831610475395105234980284161806122924922167992900985620870672010354828703959200712932349288903353666392599911579741275447938844619781298849299901352199163718479469505231442217610171952592304576218889424530543278529285499301969956702957382930115466399770515570546183046962860421461789942194753610062819747602572682341607477050726063629857517570606002387488595388841143416995868793594246352332473589823045922427571073264508320486303824892412187710506482888921111931744418228856135188652321801798727771404144618587645951727309524029230337078179134359457557421597874532423921598426877959290135562534413663772170379085506013825731687865909876879275265451347883473765186225455961808918884654882129056363247486769471741816478432571934427249270090665224586034241129826570469051985062565281304204862674811334512289203105656927385109500666374850167061871138619500635813612543785183951364541992297497477539833472557844333369877728904251799882830695979238276334622715422810220216049618986364171126967292043806505529596651476155772264510617803000723539192468945418266926180589646800537911517873674727017955473143177946910262866403607832214097504785938834578713036605946390441654648599142082537071073399991243331919247790860248978900753107382940103731687176054075726594784980495106832009908489009976906655841201474280824694520801594968483567639676053344138972815654069286893767776802206910150747708666160607445704842631988555394444079102053579963687143132731679286264393906870663836918841001405020954166601792604948141384345823525141353732731242617897465687797818884804588458586968597818114636637033929972299021071894938945894630547711078185076764942706200989068183139402392812727067642539967890404821424545427875747637766284569988921645899292699331550158571266654508220117074773387969498339055111891193635223139850818682056761080286150043742221618198446276941243591585508281964046014746995971680287381119567632443122864922345623921408512101522039264579443992107437770578148926527921614982424327266070020149617153178352371489416063263696637719162257761840347414691957350033835379182375542458138271411285020474422090297723552390380421363531537886262034673399180572635117944820751785561831793845111671973756132733030190720538874580464197778376552381925908953931834822926653767543874814173425282820457856235780368598866872978655098839682836961407534834374805911013267022427665006531340635940887620904151189053362786364355697419559497084471652083101129907613850777490421701543725222543627512723202421328781258322536277440904294216752083336075099917552537402345576834952387365761587814833994642635746806559980588668858238718542356790249764702199303746481555517246271675700530112834597795833699035025788086344270975020223936103557454128713304810348626056101912773324997785725484973234539363509708668476089890335011982733754079520183857475155483039527116957759899779134258281363899379924750896202657850151831982363779346839768185533975643358752434807597415704907222073050313616646526084610675557655516540509436452861967899605674691934280001012071110329167574686779590151938533308810902221046010488592632279320408659180656176256006071159392929980737464315529609068689683841416992836101642952914490479554344125885365691861845917663542216982634330845770821788649271127689160283690994258238163475575732129636610409918898870573555371787738604716764402564975388356437257271170029916509132498956471023891227689261280019815527283484411568327065033637761120214425535326081308440294657471810462750231775961427348947133290283457780664431796238282982936161374417080051265548228699010848031901523891941664123450072760975599948826862307192945890765151721726415143393333284199665388587669860613144873247679270722074512996056259132966077999951692952694073695548450809482629931059209086543648835030064232853415518193602829725290838133554039368861323901760680441930116797430199554268257142376144957598801470453594900754821673498502400554491041037095364515085800202469856321609008823207900304954335434091067489249676058295546130540019073277934023667887406097400269276985632534484481343419871235781343147647496422478151681336596134672873902656758863545459735323003467289806126521288445189257907760471326102494651728283332218432678921752770875592467257319908538868565129108990298621178278707313971137766477971058470244691141718249091906299962313486007343757429926470388454890966772857346038680246637891248989113536972005824527127955893791451668304080747856649817430097872383128427967679374972069340740754256936682877742700557168313635278233995580685388519870934179354591575428675345680433016597622012153168220216159079887819844981631991073876343700842140684028119877131695650082102221632103418681380767119829855289887715419067374537911298613930757146075103117052678398796168403913831355284479089730081851487211667541726276123194302012318382663975447347836574686866459963514929416726012163700232320979681988489677324481308215311974056338866386899708062922551708465679826773205867391926476109215529848295349124191205457803267388300438960918778357112715132710009513173754023140693056477344396137504139411918584310399664804360391895504713029815383616549003388329014292818993745935872111090626832858302407314705359191886199813425018805212119154699201512067154331445056640853037345744602809132444177683279963015249834292175562952216091268469316620646598157305444766518949653910402783021833503613843076084861554237647271108603206912788731741290867311784976256192686840180389395380114010942057472047955716666427101157928493816929929056925577890810644843580203625385206855227035910857866032062547432942640321962502721010842410665155409203516200698686765179922300526947678029427502691669742314087387542007598105945912276674991098220820029751656211285287024194707994481606467248766770744199519393718346394287697461792289614421751914878701000838593480003973205209244778618294027847630444792296844334137270860628608038531727337718445104548046144566026979687416378177745218529846503923166859773286470621925217596423666514952858132348390924867676977332497438119726057364771661975139544308634569485572425774207636101930186923999650224946950448162428845015958561673317183099874869472039276315230131690642874185430212801506186764765239328104590028525709616745897233850180706289027717231727876427621204690140297816191264812735519987153581687047082744632422571190210873885091838154328453089451986823504399436243150105669441100672387950134548340366725113062256002939975390045143530286311492462751838229118155611595829428905957092849458354436574359723759715978562788404807727665175990497332773020134428132816983824005027646446785244082914439243430221554953228158525767563543509869516648079557617787277153445834326536135324795204917834943106144789473759010244331023281886047778293551748319962669143022970483217658240461230490800692353117818917767587172710248657350238010038542236745568109979698697298602364256026845943492502905594856376334759788521959651853257290017668147888713874626341717737621263257329386158164427090585879798922033021552025747716661108135040564475845437467634441655173999574305499325363824041384506053316609531408257621198131936089587776523348224101004603361261396006912799509958514386967455625617721047702909308243883660161597569846299910386126390987459172681034312097303464353594475798695952037420133249963016099160053953826531905988151158429181275105116365288201271629809903663581574192205524126652058796895395722197974931524442435643849899026433025769271854193763998813285699488494383330941547842690961837201885537488298477650725622005785489102264008120723293182173677281298362916293549806298692493574081823723802902099479382565855214778848328400544389227946753715199191221392617891813196525915327160194178643565341732440841035122980100083501791033005380904501750995692737433199076053544682737698084409450326143915496887969524757233460240836821789299250768507353817937774725591977070287387703503399090299477193247793476283278887721152898189013961664821738886404125209743283701609277440308115246480448403161004287623128690103846572992417797594691776086522724188571386309147223561513637850349368284167481859989814657018250897280251705879058117608241672571822006818746631980087980847150034829153278633480305360746035030464881394810218835695869446511060711998267855602454240595237806698536331222509944525770780583390223428729281208315554347348595597307266586401551903180734745804357090351774745245004219059030182060591995010090708363560251051513699150267997403918356321254545319658757147082919755647310206779511035681999951883159385605848925964833871665598954669255168405085527418980186404846750234435694164197579539487786317009895118874421951327903329221792404116477413875974300922406555517338030564937962362399389371435904220801838745492358177876601651763462010200426588557781823878210433825719268810901696855363820350619163751955814906034214295466377593824511466786512525050954979163952177702755247333102575343531204268761540551737256285393410832866400911825962879543741163991991930074784506045474954240338596655690045991890396885677270763658824185271625669138440464396936498952455534745318799994076821384678018038675265252603489811854396592162433253578535886172734991152074030578297724110174256630377040851036662609712256812787826664716443203639601379346866586403574907655104222156905739678737791371300554349277488816298858220961401244124614963123379726041759810513546935723332829102875454609523895934416545224733255804545164006201266948237008794189115765152909601770747083777547793116625882480207348923966928934297075804646631964910301248630158153890237127610950929678199585689326797142086918565364039170118956037507059269920883584450289484662636251989567067625656206341979893178659136927741365106288551851060572064366020202304214968734244241879350704767649764980300027333875621762961288825265988147016515344867486910443751677585338353810505486917955894913216750960202272060473059637921434812662369159440225991624729771087827464125546950596909068926541146199281507622690868398740779731122034177631407634817688589135212956644311350438746714042559144587782376213488747773836748255457566797152416981086859961706132358107470424436071330809858087362534196113279549484328491796604906700277491648198881261747982877348662109646191374831402220379347449157639926887818311964580872109776725785044574188791673953654679931433169113068968403627629753033725343856610575204741286288647101634894347007285867967055136503422430710033317695667426440974191319411370278918792105265371452573984811981342596144773964388519606189670475333158677174215303967800724983049089235035297124570495527190130793219810276757012422747184074319891819905293708923656327521586704728661751920657283168615425219667632533819503399188846907891663734277866518505786964374756746345062682237852603330778079862626624488497493467652315028573043686751441918171910204067881848486426460970761085837800472584474548240633824853140682213052251244779953954833684823019342636140674228746597688745036163981759423800581073678649499576793771325139437848236637648291774247091239210047311132446834347716527387257173348510145910666865941661049942896801426600252154155617327594021222010762735191788364154699503156448365007493102026939174330110561601862904242092495800771884157497893836367155665206840136632925480561956608355798480025514283914409506030464327528224633899782228197561689652680357358497381379879263833181573360333532578503383334745390482508856531383298046276349137292215786921758192268604581169158369914243758857221060383829499087803689928770796968005541614289747586180301593336028695665091368076713727100739376929033188973128270502538588014971680876289267498172517218564579719937289092708025868960749618249761826238794355640807985844722844549353168854014966198158600235960197794634271670547032362785051540638652914189840039435652424189754116582849782485772504572221692709320145319268835483336307711753596829244395607611565950663383113761813296984397679098325160150401243496687818808795903278832828363703499548220327509694827419279225322077879523249396889700182441588263210195191622172865017319542651920187344817782909452709081625339485656818282351383341232879250211112581452312563496161115115260666963548392809028273375532062382218345858221076712591168481886767930039259478945724612073025849350780840356898073170491791952983122017155873792114278957994113058641908626587222998844172983524584793646707589317275156642442595432296102915565404079774091843745203167390219697674031645268317884391037339583832749086386720077779219597445357814196366726611763180045449910352489712219328630174522650479604252702554546920717686259545735746939903530431044552541270897669143781310744179061319876449650864008870088376285305589861118506301760515553284653834405715043820164193338603615725190718238108716808710527313621522718749412861248159550483995642256008724213043262489559277190656570234314171510218565957300481712901251576014391457534124330706066462991629491944558056303335664392227094286796427266499900457356670456634684777843680497921160873685119521261067223635722944983297130076015977431229792777759560136653458740037681417582378942894919930447817726113416099238694112181466001268237194309680664553243010939257302791096224510026638165218214768052663595200827107570520642106316020778310707658270908188747969615863827318834380186062339324771551580925370473112593477324085606231130679451178711430490239410152936285270065716892459580153704663261437478660073017111121279851772657901053642122735057499727520000831065634776831358089450235928102860414601552057405429749208291425613369690759149189528718910430672399449505154096807865047378196533277145196319889363751284653532152265977794788112742409839414190002870797814048384466099864706406067981163114807860980396143121452711940963522401839987796358249093557525227728233672547405783633702519548204209304712292700999365102049071937692967310341650740514534324404427272191774894663060152063404080636163607014197396813851985387880428563520645069600891397154405934609994269867051015202035361879280489273422523388913203593802457210823596358703347413121139693095918299898553568357970339498497575203149471167421462491781510637876919751685705406117673132446368874369852406448348741268818330808352101708649969574903820741463100196914483183297009798741986270895095107305594118745567824944083341970448767117656668943582478379841980501732238509633983737775798941881498472463015917516084183968029929554004679127149096812949244875914356310331231789013867558459322234900767251462378047886263915006383682876461250072675555147271764925710657794711926719356466870483089127002400910766157578463591804311826464411011692723601813984573404327750903753487835065854687862924586361137881222426591170489348326696818209253773295282158834422077268840315296165897868285791981615408731671533318009800467213117076070975687163391918727501390578248392167290316793826239647652807874488398051739756805680854049907823784640458401149107335249575174629331231026599291437950147701580735159967562600302277187406840675228820714985001851367270020962428749514143496946860178300586724319415206936637089668698008406128592166605213382266404738523554985137212599946244966827294612324072829279440329218410993699086441311031590822051222388032964332502613227505322872206705915535160502580695335904839256944472498626153565528763621511244913636618844290489549986952206482299836356140127167455005215100868631697425989159746034977599029611919017940234423189513280566859821732161777470027034186773227449726399794941141548847843818183976803622967678314395964253335139600203475218426837954581996796376633942574799768219748211924609951234114860456275924510401029249478649433737190492198387925393552884496652839360086318210201457585736321267368570711009040056848397774925591609537618143544650511918973549779768335063504716043680677358292664699032205550728315701877007858972332703201332293916411053724561205882236463102103625523684292338031619495734558128830989545090141027788693877101875725428797104066170203120386530623626733447248512112743911559236715425047915701107484904620769588454371603961556450837663969530105252040970834504687259924916684819965091142227688403046499378916882386915226147346544670552061349580346888862849827766544654659776990076545985012046518444334438070644315342216786584335755301411096573093114909823022511190986324433316545574884470382472238354767179833522318501424908905086069659921292597229721170417716538180643451633111513073721149710021931042505004734350794357786590561311434866003681454041653783426120004929259395618874666758650600974029502899385492704479102727287636806914620293684902290182461834065001195933474371445496528977938091289128353379727909753461327026724216230719312297597391517400318745377623067256520920276219304939130424270848184140393306886608000096692725646572961373098677147306344751840314878910930546924675577541022734544359376490904923076430563309566319008153590821685617794085008769935210674350745434364997916768846094457924847144174307038971738795892782906052557068373484585017005314241801693224836905737930115540391925669369902782335671548802814585343162080237230873421274388294246812319399672706100193069302102813690034438923583971306923509090482316575073088894821443762122534097588466125731696417376895012125923598279348364943871319351930586376036136500251145899054884916126480843576326746097878049912483837341360291694185063887844389489601512264833990166535728610013288371535565940113575182848189942682498618711821080472926090333505645609472304583538392300987155603898905712418878208191956820794943663936261436444905991654310359211953423104662539155705417455931188170540711811058473982438580224568539342381610028530872380166570530684544241567579821010422481001596506948183111495667788944346466685242278207228030729724955747364162239619152366121118529558772736118341275011464732416345813734995582332006738421455600697539638996231269388164521564782048423785159516332879073663334365829964658144115008800509898792080005620492147049041455815764302370040204207564709197545529227315468071394707701123350173351275613096748270116594296305158915622475898103041445200005653161078636040416603076332204744784819143077312124435849442611201106695384164227056362739205365427600887191184881568199258329921874101024767288934576605792899529089587583265750102692966178758946896485939986593262657225356450016394681581569109501872262357180311356934610134958628181791508608192025713653547728562461956901400768530182867181988903637301209439915944798857082769150503670247037517316190372215893315463630201591215193322747197035458214593216092176676438888653869553734055092609154149174940904383387533928364457692451187595558808410236915794757541017396788309564834581416844697391983070146876387996357383587620775268791399656976775716929634171922474943918628819000461894813821425550297602679170732991212117892806018100438750102026661954341828516518118880889636373684902397787634076629379853700281046942079357071482691909461177808321734568817244624379426538585919752693770253242602194733498078536810651985852111501463691787487998422377378883264323752867780998563767952309037400269982201487275423890493084634993419718234277620418750552507863806867563841527084454840125487607612810435886797106802258130497274377769419167045194191772488528426034266885192706410551507810414767592430935811792803223260736803995319442140451343679875818154573433209477301459250995042428963195704586775868341455579645291072071480154241003414703532463521177108892971157077036070575775210650149195783198121388086702081282326243309885478507113861921130758773259898573639883793777508320039637339889230122693969718423476230858839280862771674669085378053303186670663513206367153732676571640689147739750885769750390821846456304486919729917150269956130559889968035170416637021744437230180046175258467036822057002242751849470446918913814822079384310299998332801402226589141969742605527305735036928108331797329665104237711919781537673169942327319993794330823440825365866122313204793191212757293278168525870059423839328697378886736144781266224833272913481295224072370453530895032626591961273609854975121516820668021381781914844947905143137246715976232092687074353804333281364742364170820692808599004743000319051545026750815077128955153113948041692703606070867940095091092231626651456770488453155641818256294628874290062546721602796109407675123527803699725374486435567489301666937701857504307747652552744145406603484899678325499377113508665344443485634713046548100409877842567419137473852757900152659482444553604641090515347655884881261445372889193329067204851896277123378674872179496016187055735143205307257294201350751925252050276239614817885336946491732212176419220918029775772966509967246405674541648416969002489482037767823351391204916594941526890559267339852734431200395373571046038768833162880060192127638517542186663042810469019413786487842031788601346405735525345530290622174197626302861227606039976055587036068483548305353046778095372608959980411675451245286253565550603143689497076142424726726381502329039364990772772206012251397004045433667897709632748276157230646120983991583814935203534434879335511416198889216324202933480199046205887906384478622505284715981846303270598214014660550100256426863238838119324889326994069541712307482228567658426387623173282744269933270134093195531738355730215374403129359725649385903049278238066361379170508746649261452008216214785727549849766029797799400790933266956522267129157445845508771820934275614682587077309975268214326922114959850488336430593534817376398766077978505638373369211067677992836881570961957657688259476293815417436555050709048238325891269484032060024585058990451795316078184880680775804353700991067602608237957501267218312917994030988751539113482900206777734559136487312319218065352839076378236730755411561747551669303377162685681850462766225976077587026046586120845177862358807642624880348425093212497512615288564300710409092389921662848773458430027736824684592038217981988026182943680253056121440003005012071926735155178236906200554447875599419685170480702847235604718499328248634004264310252720061955626722915110719441494648996483856816272890821204910491841178154002277013466818323395613684629145710692917843470035429854810282122116413305185944857283523606340151131194502988868087964506484423089659686460515706210253017282919690847648548904225847885493071475433027248637642629343039977456937277308021147499405249696289047666509683404383954988547043965717560052163400752750601033360181717891571992257981246484794308610446290618611101194645926926892217682322160806908941817951329845119329325097842717289923139910365143421154170594373231208239741340618856274860447678392236235351052451593010016118990240152196456010062081194677369834989051019874058514625689397174968865801033213521685632548850949008276359105874037884149176264234152449062407970273239482016354322148175341586112133892629011172990810211479290264010363113628900120168153149392146829557238845039261624908400951298302489861437689692760686971809992828543144353905740849468597915103284102376007175879555911967268403075215436513541482228639802863113407201876656977347379613828457918476497389244537734943523586883325810971690637866507450685894302055300026794151093765814648788082578561880612642932167822967034363853206001541818285260161097451008142289780742141330303197074489634865325094081439826905941022135392794816632774626877335508601673943985839375121203153576069033745959437040720520812662079551291002582824412372511625951620442630173782138771435521267991050586895477397029339536988183193566582208852104669933286197432004187702955391438803194856000234653962294639377499038303981916292045349888247186635428073954726408286822945917598284836473240299844749291306972143411784229866835033434470625885587130676412034883738256367807345538906989493335133551777854903077009659623696300272040071244609330690246179413191703941110512745158708089084844070744372060216329160587398543904246228670456161468699131512945135761457701227695225983580820139170831981645138166636711951219083216413135658304102237346669897993649339522697552609966038673437952630269430878636365405235663192700527796277476426698895117248838360714675459327139181501737267041561583223550165042666670082398015246316812974855499374109781018644985560172593015970457282320215290393523950423004631944266781761086443969616418758071877891457923502194644257210003810827216299919074125576643569497970570624068229845278220435574229628557268077795915879754587594176150024070191013438567633262135212229228721242058531271814787867478624449530338660768573523551027765973445933814741721498866347674615826690938824588711919451096891205314429701828731427902243832639757791396191685495441995964368609412370131448076503452666851470466535198981126743528886992595803752493913898720791924429525672845592334777683076671380946574898249606488987890265256216420627207799450596791898696001322218903443927448641413887470546925027725144466317816306874665785296187616572224732645229415428354264914157291771296654791142687837918457478481190261424935961041081878064603894019983955882782290604363430338725025915324921309013955113961840018242322411490004820549127859525494452700509651803486718879030621028606215271145154694336315022168928298202118236556248393603808283881078932377079544365242538900101470086150251835619694285059118524295837242169703527501702863928269766286925724287599920358545120989938990484124626880305681089036651258360460427746429290199660569316081133054080399062167007281445919579796269974469901106116022364652097641947325327758291344544942005428651383232831298205266196409619715428464321706664529011187095213740563200950441499118616447407459468142322143854181444315621149436603707265374376819388899119340266822786186345856902597186113058266974748553494403090126617350205312524761610376848411335361524577552706845180305918985324154387976009356694010490964729004813546063306909697343041558956596972114481272737788779221828095828763133510377872756371308887890837149151894986984998799642667027106266332761402208734576890240768932937759372687509636702806510997571765779011129659648394248912901877420031906104870432129175935954503354048371745592725603694488381581962149524857912652290651399073369229550839931558417751296841786590830272030895096173051417133147207893622120043649008997026667308467993670665024039979728279594570376410164846761320682754386153820712569509450725725054671789416193549898784331529130511897640609368637507011274863422084347978641123261037589518881072383406313678602225500335199951592798678930482975164358764414139887187448877842732038447107160470932753772074167710444954898794837478992271017625389866610135458546951548152586693548299765025775568220489685632437872764596975247996369247606145340867630877578550275395391792067351072727348945877742961908451227918843884868059826061936465056159347151023989875335727160525970982422293612865824529132527716475341943541676163515211119257667819766463953544615900183742529124471055414219163301131522286281142054226590144854536513384491555015574157897409504658291409964074094275877710408000094512409354551081561707816863945741911995766804729089907254860867516008491765182726953337415388508016440864752674956128500901115885009455755281855618047270644013105385448429478279047122010309783349202277777916004138807742026429106917994244668516931784668951885931700068613448276827164919388322106583136414747765082295130374932704753141441853918468924582160380436590442444362917028485317866329906115714697404244894630059302555707380959482414813886221367061612766827784969363386171133201123387658328061397937086311097360540230301505224822826443091312954667046993314029836428964468852529451856322795484787163459494753410355476542453125097125737770282981945756250601524137545238066025505417896263859633161184320239940313259178093568499541120686586972476355947376567059285505003048856007562676381848514653049207628955103364152328538853054283772731178895980564389429916314932534226496543178578880684069730990700915449318064512358714922219508448927459434830999056882411097760519353908854746889426801461543580007175671767245747163922208575830578628233084384178851226485174447456169359891790147879287929043725992380739300857201519187964508245496627280530411195998022017754669866251937761416191140226988567212292317590420723190319048590634564933332194020292625508286741730024374363978653667111025709034342305981468544414548896448975632968347780327345473612645059726890722486121021573909721119607042723709637595444999740626726984216022876267708247801819972588870193976795982372879204023828595914250911079193074999428021481452979282650335158087105047458588630631742821847655884319447295732476654302106623062750388122780685304423902966469851014652484133389980345363997417997456298846917361934936353435059425394748679730153268081433736891145273518825470628822661172900504986248710512633095037513146650941891377791739241892238107170776358816146886024639887518091881691223170190944856023620588193381168247282766891128690131036668649739537862274559844651792008793354853676930042028475267191301566008953627088076639093901912041206950206547316277306752023119765028604835621204543960390566210632892284461238153187074740463027855861843230827433992083616390046707799776768692715302153513179948813490658340185019603377906188170199712553787516997025164669191865092960180703279395432431323791220630168563687848360417790753954496829368924786879834569649946462038794630019161154392882880021216766812007187563817630177720096581665196489127284023412405432851549825790958138150661708415428600873354788576915008494737532777520496930164959634394225127752358722733652396919601452777840700586387502079460617568834659400322516554034323358127728529009544727850133353091942270107613626897656027992565261929031408135514552369578969572999815335192225617493988040615593732261088813022740097908301005310445070531353309216911200549761632411437683307230401251086555991242062272255802528800376205903098594286939613393958660455869650941120185165214532786619304688065517934545817698714681466706107106404558723133719841222938370579371393336888131448854284143146928387566876453148447261185707074257882674153628085241922874547681167396364079581253203215763322108504674744471516635418329197565059690982760520971299713844803489294394576763901552947055210118338213557859478684953104293266556404615408395182600820019083334764644718019350256122690032546214951550454414872304028778679486219352714912043430983738882892732824670237363884717558030402172766571685128995790078557304319956652846310894063784968234489222031816022321135681671685589286459043302701872294887616501021551010702529749555414216823476110445220930716738285177089603052772482522315075608949695841690550915152540994060933630613457895615053722503703018837300200744843542057433327063006022454251310196609317918603492108576822257980599449492583425774315673778273186356596863868874389931961327782016397086511333268728109256919217863306989436585488244973400889439444868411129214881391300421517220536939121615193917972557461271636946383383020734693911614147336968353071468774394727535135504038006503701022871678002860566840598496264333154810352740315617834642693544517692545028745500570505981714051206187645444092322223465788193958105025126147704634699790132368720777428809398406231602797192569435069670640154446530566296521821646343887065258167513036663335492290393422337408228171260453800069721205487881889622116666476189398855744914750491036165997781595598827495873996507955748787754347303166468465118925504674433126546469187810371132391104247221933736886805845691617496591053766427858891466523418863262887826719608989494222650054187621581926962330009249822127378286285553527371420684651470506776988790715970375113461991617182624820596935272425628101747424561765000319577271264175594855061896503338605444246104184903639280705346849248180908811555808021749593725306425888033990776001262181830775145263686581532931959797715164879350384301102818968174102380474658729115232345782752804898777104913083049698225693918472079938888072989746291900965460331627572414379748634090881338140689407218763236460981433378539654409439623389980384260577654365477680886860691340333320801670446232552691196144298244805273292167283291907809936295556488168441505679350341804874267012466087944343780912425123008287561966458026166416451073542720637471921963279271291709368923196765956152968843796474593642541276882414582223902464601169271904637591221411546515472639238123525664328326146478944738024048999532031371192206839141206158806805487949275574016275831392004441384968416825187955865356317222226340114303506772295864675750036823509545065684055105933065010681831813703986880802464953314468475891699169294492895024183950752202837261745353266678686443799390385569521392221598482094060706162873756867892762459216107242923415345251075483587810068138964882785381678302686104629225333872968238437129764408546546228052777058541100192045103081913101285093429947229953313347669376384657840625438669070646405908087914893898154698289991674244802845772216791758257586673184403525454094117370347683533154886856666581522255625943969125114765558281458478605841513773800517769352147885536623353161990394335979808330359065835980934607346727408439114005625960429728706816637153455267372664269030403848970393742605069497013570332124917257222242219143764629516575262276343988699917894632407125327151256451834666618878454673332869638148703743576318790676166455243760190010442964875458854064731291705263130122912081879731136676982765967963544365700180615528443168360648518307410451842843119992473422472823919712911516940234136744493703854596666422601082133902652957088467678565853741588986722640415747663692242000406479450369245276886029766158907525718413167003425556498676896665228690474170355212433881414403786675372090688759692607966999424261438646681959517789945278693484676693940693523504669953800934023940054767868340982486066730045677107996167683239837131633322114987037395296440853612474641767795073404449853308526052193630552051991714468257767976020034273004441268256715520739848939948349576795109523585107813961857989507810780656845362052802338230577642384991794004250649434336511724768086512075851095778602291876656155544766653881564109047924035282533646022548633695215448643136404445854966653310922804200615600553996017395349868232584149371920579518972201127635804581736503358616687866685674136626520572107816578991987546185257185043991318746293714260554118595494275275056636156356545605745896028130608661642734752626883250840234676350585013698162026100053162102613293195556208839929944094322911600433061673272982182427308797910818573432138705574932909261125810775314783473014168832859523289870327639339164132479291520710633670583202814436309555606463004632481369383838566216604174803260920517060701550305435784812739700964770669702341774262055150299518647876064220645860524840113935912724757487110495647226568204329827191631118726484219356477320005654526407029003747236769334512433403675993290113515998424184955423806326410172797477358866031575060908244790423142565556614569947118216974438123400447111711883794171838172872268727666094973438620239344906661752383834869530125045327765825494627531342047627068237239805640616415873579849298459629414650563113191405588399889797043110242706640913070131008272155143357443073302751406777305462116054396071426629553018433144651248544652767772323695814784487440949837088379844837591048881469112813796554342952147262084694506216686906802515214949830161940798884064419189245925886619765734980035903986982607413342492216290376467172564578667412241325991453148887643397187776567586731831126953156429842478499590744767307858817048541330394376798713882612677429452368226203199051823592548044841757468361666390190343127336990045146431202075464791949884206418976695863568335554768902911103664186365643658598925930641487688641521128625142283370056376945588191283012638318368543486264768364494752899348231740198693471688004171896981734292504643436430832830587271451702715562325436419619870535371506324922123195088964711468912809060566810144989140237830066777888603891296651824565214390300472536728369017050294775522903759773964800423081004524726112836137672053246666747232380343624696609102270316771933798183559145972097662641819001951227039434907569067030966024508996141062262015165673247593670328799622874729759687085501579176694073181066837704867272160444489106691551291075598833070006493240284558998349470998272921361665038572694646565740962334450486735045159002332212735983539835699830767070819839177009281507107469108607613089785703060465808518479024385077744180156996327467754649550822029355853047562921535957722807221906749088790180094241301362469131721181641698245636511401980881952945126654183532722647187629503902010697691419920973798444699460971226742014639516296108587427133200529947128091994626560236718619803239040562969341361019184989129757383061586268536397719800468422724259785660651388555670553407631360816900630841240081195652210525060306895139277798923032726065184635947932113988596280438494232745874292127455859839067355459882152182760787462424148235123033948301735121306228690987636429177674619401614932731124078010037948658298831499897851082480075095813463572284053292331842371120428632698108049414855665834995928274246584184110564865247191084472777252507121328954823679753206876965943850532958455380064920832881147107246825544572807889148593132397848362432874638321077323435154294519317069809747918590543074787315553429814143825213245953402291222682567466442441338812162460145314993364113579793589870443016644340165666366728994652729692479563934508860701145647599988574153409443757520077321169041729190098249473796108942728832262928988208402575387024458825151352848918291576308131131063708979631247223889389274548598626126682116653454771213271012178828722861358357647634839928134912569449965303065645199776049094043337230585479318789346102418007012107006842684879009051146074445518546621218295610355280985934999418055784877354751783741187506566949993739401498240848889169518253167099400941080305865575847370562629116022272501106262103607805052030082154069892217041662505324949433882992117612752961746174982619070496020579899658324985152834362032991046847686873461396023732171044915676627482372767324959831437474555722348071787536042659760658513450726717859612757504195101103422326206411100737735254193869343235219992411839618623021645041442701448437587323920842917247983779064184415940331713047848601520680807875263128744147597570039157300072592392819331447931106065028859645434067706475198417977004025762186933200299278235313265971543545688990498644279528878257189339963510414417480151104329632933846317395972942612406541262482667673209286160606736434533544289237470463244233270415338071381223582274025942976483038162463430570521831282140535824039595071288953538629282402896399816061962093064668186839225579940540950197511928920483082230182207720892149192325643415236535889780852099417906278889062207459547549494252135990807283939562989034856736273837076940121997010949016626091733957217321382411310011197549733798816496963371223824810958821090771013159995206162666122344250333595584166660828401123841098016706792262849574867758583673901306900151256885984867533931059495801527340708790396682335182593743502005022440269990684976792332171371742212510837876498354035736032351078877486053353479476884695146353207432698072674433812084636847506593506563202389455142689627368709768699979359885493088494887864862001755773047654346200568248435748465246736673141199963505924652209971694128636781226406198388829504141580985808147306651911992134214149402574011823915850763846627652540569464106338397270376965641770541779919009274070125777242943408574737170773344627808829058553774119522461720613933027027336073935128675181377285688528830176891616004656717557567416399035253722165289636906321440259711409254117430006800449252022397229861974093169073031269973288760786705304857074293835258093039053142875572570856113918484453743632966567957607331576117390255237489489782936165464621834050562459145362489629098395846874758449173542482669047105827647799514381338652314166730172094172409785202903847262648863063308593214810664530851315346364293675658192067618661183393120532466543889137207968397421813540536015585426755546381469358659724163728451686717291108907343985084945466126238828527840246179878737113890991485752705251887048885924490174834624746057440571983109512439864265686276635022283608678226060440143934716983255161734309123971381272346469173102899080894439832022986243239574501613385505004559437299044080674468834966344805557865125499139015494927291545577640936194991743101548665607767104163338165790651298126761120927595546066847202148065368969920272380963507240816110818317541547298092679062489467087122006506323243751770919711847262871856510474062457710029022912191518436621752093629760239115380573559035578690887612144293244250315670936635504388268150937132091558817922375400630932402786243374606917872435845848428147391742103583361304712152113405719475644881482528164107863120753454681255931776490914326487943380115142144724144037251121670749508706993882141621913911825260346868494596307702435080096110055750961377147899847157752184825265066133910716588648957240072961348694440318317067748400200081463478687057167420080898238210316304104065589201615945368212425899558737959192784227888954931531684850593108228114273651092893984090112850620874985262645757649154646028828973696001172341960536571359312642995639998848662545384018628917320511237824991909186224038021848970223110249939562633918230524647840105142829790053295031939335815629424074356185761421668081953592118088799083302081799728480004333868382867779233955301451408264891041841023597787934664307238731656079359986221559501349247054833195001437071480646019144005030064857972571469208641102510578809013983013772682147070102639524739836627686604982372289190859873722244096655271250624643028681795740664842361853047643992679893437556241867478433754578865646523022423375608581684221320061284903761089192315987602565570591303802370128228509030558323835742204760429513933394409017287205518256929463491556162114394636735243372401405495409984814355271750768684427648264028491385680216214516290552498634083956042033002100261702501654708294740090138986816444425455981522460115761820328776333082691675193869459392546567504450230138866944733335100489220895338974919296875381532137578564753942039823453743218096287115924125822532492697188707834808116014188472213638131593086672127334899078042201126828411763430913412880141605736475649014261257027017414982961042075428865489503197960811123030659240073566381674043329769168547745670436940868341259530481128532136296899258733081448446795271972117727995427476106767380813783036429697905339537128849025848284501139291267681844833505952975662141258933099506337119181958128837379575817526273983114849833533532218439927075012098530241636039271827542660078583610980559172886287705501621963592440933975850852886597059039595097951410677224208487312054655090381090919471932966126349316602176307305896385353583466667943389009888410399316328894393821544145528486433236506672858425271408309047387067495486280678559127151862733236550088309258142414294060736463435855238638716343840003632046427024348888781190333299739906169974225007267144591477413373651231024261138786719429322807508391328842829912260648174494796103965127064846192407343541800521126952135724208316055017588594335280944025932984503358643208982116752031150702343213148734004725729758231937551302789089488637910514376620629255859884755451124321623057540940086311793337845330980436504650094785758364289024975945248986700991006869355371929299718141382345811526649197308350195903852815166046994577352666623008085213087060974869698870533403678011971236238328309295302467547558936202421664200424307976907143044295404786014589126301656687311832412821554799688185426722812587883086747746018106984585329199696120551774787559490303035266379833360414712141141336806574066635495707631936770210642134934373124465162913077616217245075917366569804298691334166610701478080174950821355299988914228392744654784710796781840479243817475654689426455085269151885779375347958943832480157659215005798358201854701750999214140461194494957502540374177942990265828081564275008823756650788567784094623489134525527378634633244286114436262213278441790941230373259527958680634024812735611201355863400836328852574826683007139145851782600960122653172088419150326469832587763422876906701178159712761612528585658410856038910552418682385652079244672632605822166826247839385624030252316472178793258594382494925517539133273698036623455102211419283483823218409514901745527449363696248588172338221641738709947842935487939615063929067323217446635246330100552139616098171606107790759905848044067819031454168464186554004805203294078515100538918233442333032111118012920850056789568084923044673467020085912197486603924357397603586774176480384911562706887248250536447965211694870195143563353384111287971000124318551146363977094132703937062458001976933217231992883668375323122721879589090283538150691065017188358711495596823995392467061034117460827552479483849602850751832145018356467223654671859875574384243692882679241509490583863547104081594110110533378935224311760312773518826505109359866893625282495494827989405580117679008299326095894332095048541170143340005549470711654612544571378869520476324094176790398539941920532723789804650881060416579843745629401329017731153921
 

aaronb

Member
Joined
Apr 23, 2011
Messages
424
Location
Maine, USA
"How many times a day does a clock’s hands overlap?"

Earlier today I saw the question "How many times a day does a clock’s hands overlap?". I thought this included the second hand. So I went and calculated a result. Apparently, just about everyone else on the internet took this question to mean "How many times a day does a clock’s minute and hour hands overlap?". I was correct in that the minute and hour hand overlap 22 times in one day. However, I could not find anyone who calculated the result when the second hand was included. So I am looking to see if some of you math geniuses could confirm or debunk my result on the how many times a day ANY of the hands on a clock (Second, minute, and hour) overlap.

My result:
2872

How I got my result:
How many times the second and hour hand overlap:
[(60*12)-1]*2
=1438
Reasoning:
The second hand crosses the hour hand once a minute. So 60 times and hour. Multiply that by 12, half a day. Every 12 hours, the hour hand completes one full revolution, which means the second hand overlaps it one less time. Multiply that by 2. (A day is 24 hours, not 12)

How many times the second and minute hand overlap:
59*24
=1416
Reasoning:
The second hand overlaps the minute once a minute. However, the minute hand completes a revolution once an hour, thus, one less overlap. That makes 59 an hour, multiplied by 24 hours in a day.

How many times the minute and hour hand over lap:
11*2
=22
Reasoning:
The minute hand overlaps the hour hand once an hour. However, the hour hand completes a revolution once every 12 hours, making only 11 overlaps. Multiplied by 2, for there are 24 hours, not 12, in a day.

1438+1416+22
=2876

However, at noon and midnight, all 3 hands align. In my calculations, I counted all the times the minute and hour hands overlap, second and minute hand overlap, and second and hour hand overlap. That means noon and midnight counted as 3 overlaps each in my calculations. I would consider these to be only one overlap each. So I subtract 4 from the last sum I calculated. I suppose you could consider 2876 the answer, but I think midnight and noon are only one overlap.

2876-4
=2872
 

cmhardw

Premium Member
Joined
Apr 5, 2006
Messages
4,115
Location
Orlando, Florida
WCA
2003HARD01
YouTube
Visit Channel
I had a fun challenge for myself to come up with a function to model days of the week. The situation is that you know the day of the week today is, now given n days from today what day of the week will that day fall on?

For example if today is Wednesday, and I want to know what day of the week 20 days from now will be I would say that 20 days is 1 day shy of 3 weeks. So that means that 20 days from now will be, in terms of days of the week, one day before Wednesday, so it must fall on a Tuesday.

Now, my challenege to myself was to write a function that would do this for any integer n. I was really baffled as to how to do this if I start with the following pattern.

Take any ordered pair (n,d)
Let n represent the number of days from today
Let d represent the number of days of the week from today.

Further I restricted d to only take values in the set {-3,-2,-1,0,1,2,3} since I like it better to say that Tuesday is one day before Wednesday than to say that Tuesday is 6 days after Wednesday.

So an (n,d) of (4,-3) means that 4 days from today is 3 days behind the day of the week today is. Today is Wednesday, so 4 days from today is Sunday. Sunday is 3 days of the week before Wednesday.

An (n,d) of (20,-1) we already saw above. 20 days from today is really 1 day of the week before today. If today is Wednesday, then 20 days from today is 1 day behind Wednesday, or a Tuesday.

Yesterday I had a breakthrough moment and, for those who are interested, here is my function for all integer n:
\( f(n)=(n\mbox{ }mod\mbox{ }7)-7\lceil\frac{(n\mbox{ }mod\mbox{ }7)}{7}-\frac{1}{2}\rceil \)

Where \( \lceil n \rceil \) is the ceiling function of n, also called the least integer function.
 
Last edited:
Top