# Approximate $\pi$

Greetings for $\pi$ day!

I have made a program which gives fantastic approximations of $\pi$:

  1 2 3 4 5 6 7 8 9 10 11 12 def approx(f):#more larger the f is, more accurate the approximation will be s=0 n=0 k=5 from math import factorial as eq while k!=0: k=(f*2**(n+1)*eq(n)**2)//(eq(2*n+1)) s+=k n+=1 if n%10**5==0: print('reached',n) print(s) 

The output $s$ can be divided by $f$ to get the approximation. For $f=10^{1000}$ the approximation was: $\pi\approx\red{3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420}0336997...$

I shall also share some of the rational approximations!

$\dfrac{ 22 }{ 7 }\approx\pi$ $\dfrac{ 333 }{ 106 }\approx\pi$ $\dfrac{ 355 }{ 113 }\approx\pi$ $\dfrac{ 103993 }{ 33102 }\approx\pi$ $\dfrac{ 104348 }{ 33215 }\approx\pi$ $\dfrac{ 208341 }{ 66317 }\approx\pi$ $\dfrac{ 312689 }{ 99532 }\approx\pi$ $\dfrac{ 833719 }{ 265381 }\approx\pi$ $\dfrac{ 1146408 }{ 364913 }\approx\pi$ $\dfrac{ 4272943 }{ 1360120 }\approx\pi$ $\dfrac{ 5419351 }{ 1725033 }\approx\pi$ $\dfrac{ 80143857 }{ 25510582 }\approx\pi$ $\dfrac{ 165707065 }{ 52746197 }\approx\pi$ $\dfrac{ 245850922 }{ 78256779 }\approx\pi$ $\dfrac{ 411557987 }{ 131002976 }\approx\pi$ $\dfrac{ 657408909 }{ 209259755 }\approx\pi$ $\dfrac{ 1068966896 }{ 340262731 }\approx\pi$ $\dfrac{ 2549491779 }{ 811528438 }\approx\pi$ $\dfrac{ 3618458675 }{ 1151791169 }\approx\pi$ $\dfrac{ 6167950454 }{ 1963319607 }\approx\pi$ $\dfrac{ 14885392687 }{ 4738167652 }\approx\pi$ $\dfrac{ 21053343141 }{ 6701487259 }\approx\pi$

These I found using the following program :

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 r=open('save.txt','r') with r as fo:qwert=eval(fo.read()) pie=3141592653589793238462643383279502884197169399375105820974944592307816406286208998628 f=10**(len(str(pie))-1) def check(f,p,q,pie): z=abs(p*f // q - pie) y=f//(q**2) if z>> ') if wq=='Quit': qwert=q r=open('save.txt','w') with r as fo:fo.write(str(qwert)) quit() if q%10**6==0: qwert=q r=open('save.txt','w') with r as fo:fo.write(str(qwert)) print('reached',q) 

For those of you who want to try this :

• A file named "save.txt" should also be there in the same folder else it will give an error.

• Last time I ran the program (above) I was at $q=101315000000$ from which anyone of you can continue by just pasting this number in "save.txt"

Note :

• If you get any new rational approximations better then please comment!

Note by Zakir Husain
4 months, 2 weeks ago

This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.

When posting on Brilliant:

• Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
• Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
• Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
• Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold
- bulleted- list
• bulleted
• list
1. numbered2. list
1. numbered
2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in $$ ... $$ or $ ... $ to ensure proper formatting.
2 \times 3 $2 \times 3$
2^{34} $2^{34}$
a_{i-1} $a_{i-1}$
\frac{2}{3} $\frac{2}{3}$
\sqrt{2} $\sqrt{2}$
\sum_{i=1}^3 $\sum_{i=1}^3$
\sin \theta $\sin \theta$
\boxed{123} $\boxed{123}$

## Comments

Sort by:

Top Newest
- 4 months, 2 weeks ago

Log in to reply

Found a new approximation! using $f=10^{5000}$: $\pi\approx\red{3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931257058635662018558100729360659876486117910453348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800700237877659134401712749470420562230538994561314071127000407854733269939081454664645880797270826683063432858785698305235808933065757406795457163775254202114955761581400250126228594130216471550979259230990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901938971311179042978285647503203198691514028708085990480109412147221317947647772622414254854540332157185306142288137585043063321751829798662237172159160771669254748738986654949450114654062843366393790039769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296617119637792133757511495950156604963186294726547364252308177036751590673502350728354056704038674351362222477158915049530984448933309634087807693259939780541934144737744184263129860809988868741325}96458...$

- 4 months, 2 weeks ago

Log in to reply

Happy $\pi$ Day! Isn't there any PI function in Python? In Java, there is a function "Math.PI", but we can only store a limited no of digits in output :(

- 4 months, 2 weeks ago

Log in to reply

In python :

 1 2 from math import pi as pi print(pi)#approximate value but not much accurate as given above :( 

- 4 months, 2 weeks ago

Log in to reply

Yeah, all pi functions are useless lol, your program's output is better but I can't understand it as I don't know Python. I will search for more approximations.

- 4 months, 2 weeks ago

Log in to reply

Will this work?

- 4 months, 2 weeks ago

Log in to reply

The link isn't working, you can exchange the infinite sum with any infinite sum you desire to approximate any irrational number :)

- 4 months, 2 weeks ago

Log in to reply

Now it's working, yes it will work too

- 4 months, 2 weeks ago

Log in to reply

What I used was : $\sum_{n=0}^\infty \dfrac{2^{n+1}n!^2}{(2n+1)!}=\pi$

- 4 months, 2 weeks ago

Log in to reply

Ohk, its wonderful to see so many infinite series of $\pi$, just makes me feel happy. :)

- 4 months, 2 weeks ago

Log in to reply

for more series you can see this

- 4 months, 2 weeks ago

Log in to reply

Were some of them derived, or all of them were just coincidences?

- 4 months, 2 weeks ago

Log in to reply

As far as I think all of them shall be derived...

- 4 months, 2 weeks ago

Log in to reply

Sir can you make a quiz like that on e?

- 4 months, 2 weeks ago

Log in to reply

I tried at first, but I didn't got much questions to form a quiz

- 4 months, 2 weeks ago

Log in to reply

No problem! I need to study Geography now, so this will be my last reply for now. Thanks for the list!

- 4 months, 2 weeks ago

Log in to reply

@Zakir Husain - Happy PI Day! You should include this rational approximation as well - $\dfrac{314159265358979}{100000000000000} \approx \pi$

- 4 months, 2 weeks ago

Log in to reply

You used $30$ digits and just have an accuracy of 15 digits :( That's why these types of approximations are just not good !

- 4 months, 2 weeks ago

Log in to reply

...I was joking :P

- 4 months, 2 weeks ago

Log in to reply

Another method: use continued fractions. Let $\pi=3+\frac{1}{a_1+\frac{1}{a_2+…}}$ Then since $\dfrac{1}{\pi-3}=7.06...$ and $\lfloor 7.06... \rfloor =7$, $a_1=7$ and so on :)

- 4 months, 2 weeks ago

Log in to reply

But to find the continued fraction itself, you need to approximate pi :)

- 4 months, 2 weeks ago

Log in to reply

Or I can just import pi from maths :) I think you can do that in python?

- 4 months, 2 weeks ago

Log in to reply

But that pi will only be accurate about 18 digits, above that floats are generally not supported. That is the reason I used integer division in all my programs

- 4 months, 2 weeks ago

Log in to reply

Pi is

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858900971490967598526136554978189312978482168299894872265880485756401427047755513237964145152374623436454285844479526586782105114135473573952311342716610213596953623144295248493718711014576540359027993440374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927819119793995206141966342875444064374512371819217999839101591956181467514269123974894090718649423196156794520809514655022523160388193014209376213785595663893778708303906979207734672218256259966150142150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706414011097120628043903975951567715770042033786993600723055876317635942187312514712053292819182618612586732157919841484882916447060957527069572209175671167229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412671113699086585163983150197016515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985706420467525907091548141654985946163718027098199430992448895757128289059232332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656180937734440307074692112019130203303801976211011004492932151608424448596376698389522868478312355265821314495768572624334418930396864262434107732269780280731891544110104468232527162010526522721116603966655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045334885034611365768675324944166803962657978771855608455296541266540853061434443185867697514566140680070023787765913440171274947042056223053899456131407112700040785473326993908145466464588079727082668306343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923099079654737612551765675135751782966645477917450112996148903046399471329621073404375189573596145890193897131117904297828564750320319869151402870808599048010941214722131794764777262241425485454033215718530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003976926567214638530673609657120918076383271664162748888007869256029022847210403172118608204190004229661711963779213375751149595015660496318629472654736425230817703675159067350235072835405670403867435136222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721569516239658645730216315981931951673538129741677294786724229246543668009806769282382806899640048243540370141631496589794092432378969070697794223625082216889573837986230015937764716512289357860158816175578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628049092636019759882816133231666365286193266863360627356763035447762803504507772355471058595487027908143562401451718062464362679456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594704745878477872019277152807317679077071572134447306057007334924369311383504931631284042512192565179806941135280131470130478164378851852909285452011658393419656213491434159562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773480304802900587607582510474709164396136267604492562742042083208566119062545433721315359584506877246029016187667952406163425225771954291629919306455377991403734043287526288896399587947572917464263574552540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737278476847268608490033770242429165130050051683233643503895170298939223345172201381280696501178440874519601212285993716231301711444846409038906449544400619869075485160263275052983491874078668088183385102283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384205685338621867252334028308711232827892125077126294632295639898989358211674562701021835646220134967151881909730381198004973407239610368540664319395097901906996395524530054505806855019567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617271117236434354394782218185286240851400666044332588856986705431547069657474585503323233421073015459405165537906866273337995851156257843229882737231989875714159578111963583300594087306812160287649628674460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834363465537949864192705638729317487233208376011230299113679386270894387993620162951541337142489283072201269014754668476535761647737946752004907571555278196536213239264061601363581559074220202031872776052772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348227693062474353632569160781547818115284366795706110861533150445212747392454494542368288606134084148637767009612071512491404302725386076482363414334623518975766452164137679690314950191085759844239198629164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570126683024029295252201187267675622041542051618416348475651699981161410100299607838690929160302884002691041407928862150784245167090870006992821206604183718065355672525325675328612910424877618258297651579598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127577102840279980663658254889264880254566101729670266407655904290994568150652653053718294127033693137851786090407086671149655834343476933857817113864558736781230145876871266034891390956200993936103102916161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066920376719220332290943346768514221447737939375170344366199104033751117354719185504644902636551281622882446257591633303910722538374218214088350865739177150968288747826569959957449066175834413752239709683408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296404352311760066510124120065975585127617858382920419748442360800719304576189323492292796501987518721272675079812554709589045563579212210333466974992356302549478024901141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017928964766975831832713142517029692348896276684403232609275249603579964692565049368183609003238092934595889706953653494060340216654437558900456328822505452556405644824651518754711962184439658253375438856909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628692221032748892186543648022967807057656151446320469279068212073883778142335628236089632080682224680122482611771858963814091839036736722208883215137556003727983940041529700287830766709444745601345564172543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734551050080190869960330276347870810817545011930714122339086639383395294257869050764310063835198343893415961318543475464955697810382930971646514384070070736041123735998434522516105070270562352660127648483084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973502014102067235850200724522563265134105592401902742162484391403599895353945909440704691209140938700126456001623742880210927645793106579229552498872758461012648369998922569596881592056001016552563756785667227966198857827948488558343975187445455129656344348039664205579829368043522027709842942325330225763418070394769941597915945300697521482933665556615678736400536665641654732170439035213295435291694145990416087532018683793702348886894791510716378529023452924407736594956305100742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723300487647652413390759204340196340391147320233807150952220106825634274716460243354400515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551909866653935494810688732068599075407923424023009259007017319603622547564789406475483466477604114632339056513433068449539790709030234604614709616968868850140834704054607429586991382966824681857103188790652870366508324319744047718556789348230894310682870272280973624809399627060747264553992539944280811373694338872940630792615959954626246297070625948455690347119729964090894180595343932512362355081349490043642785271383159125689892951964272875739469142725343669415323610045373048819855170659412173524625895487301676002988659257866285612496655235338294287854253404830833070165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449008777697763127957226726555625962825427653183001340709223343657791601280931794017185985999338492354956400570995585611349802524990669842330173503580440811685526531170995708994273287092584878944364600504108922669178352587078595129834417295351953788553457374260859029081765155780390594640873506123226112009373108048548526357228257682034160504846627750450031262008007998049254853469414697751649327095049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725502633290449762778944236216741191862694396506715157795867564823993917604260176338704549901761436412046921823707648878341968968611815581587360629386038101712158552726683008238340465647588040513808016336388742163714064354955618689641122821407533026551004241048967835285882902436709048871181909094945331442182876618103100735477054981596807720094746961343609286148494178501718077930681085469000944589952794243981392135055864221964834915126390128038320010977386806628779239718014613432445726400973742570073592100315415089367930081699805365202760072774967458400283624053460372634165542590276018348403068113818551059797056640075094260878857357960373245141467867036880988060971642584975951380693094494015154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291011290355218157628232831823425483261119128009282525619020526301639114772473314857391077758744253876117465786711694147764214411112635835538713610110232679877564102468240322648346417663698066378576813492045302240819727856471983963087815432211669122464159117767322532643356861461865452226812688726844596844241610785401676814208088502800541436131462308210259417375623899420757136275167457318918945628352570441335437585753426986994725470316566139919996826282472706413362221789239031760854289437339356188916512504244040089527198378738648058472689546243882343751788520143956005710481194988423906061369573423155907967034614914344788636041031823507365027785908975782727313050488939890099239135033732508559826558670892426124294736701939077271307068691709264625484232407485503660801360466895118400936686095463250021458529309500009071510582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652209357016263846485285149036293201991996882851718395366913452224447080459239660281715655156566611135982311225062890585491450971575539002439315351909021071194573002438801766150352708626025378817975194780610137150044899172100222013350131060163915415895780371177927752259787428919179155224171895853616805947412341933984202187456492564434623925319531351033114763949119950728584306583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341003583854238973542439564755568409522484455413923941000162076936368467764130178196593799715574685419463348937484391297423914336593604100352343777065888677811394986164787471407932638587386247328896456435987746676384794665040741118256583788784548581489629612739984134427260860618724554523606431537101127468097787044640947582803487697589483282412392929605829486191966709189580898332012103184303401284951162035342801441276172858302435598300320420245120728725355811958401491809692533950757784000674655260314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557030726190095020764334933591060245450864536289354568629585313153371838682656178622736371697577418302398600659148161640494496501173213138957470620884748023653710311508984279927544268532779743113951435741722197597993596852522857452637962896126915723579866205734083757668738842664059909935050008133754324546359675048442352848747014435454195762584735642161981340734685411176688311865448937769795665172796623267148103386439137518659467300244345005449953997423723287124948347060440634716063258306498297955101095418362350303094530973358344628394763047756450150085075789495489313939448992161255255977014368589435858775263796255970816776438001254365023714127834679261019955852247172201777237004178084194239487254068015560359983905489857235467456423905858502167190313952629445543913166313453089390620467843877850542393905247313620129476918749751910114723152893267725339181466073000890277689631148109022097245207591672970078505807171863810549679731001678708506942070922329080703832634534520380278609905569001341371823683709919495164896007550493412678764367463849020639640197666855923356546391383631857456981471962108410809618846054560390384553437291414465134749407848844237721751543342603066988317683310011331086904219390310801437843341513709243530136776310849135161564226984750743032971674696406665315270353254671126675224605511995818319637637076179919192035795820075956053023462677579439363074630569010801149427141009391369138107258137813578940055995001835425118417213605572752210352680373572652792241737360575112788721819084490061780138897107708229310027976659358387589093956881485602632243937265624727760378908144588378550197028437793624078250527048758164703245812908783952324532378960298416692254896497156069811921865849267704039564812781021799132174163058105545988013004845629976511212415363745150056350701278159267142413421033015661653560247338078430286552572227530499988370153487930080626018096238151613669033411113865385109193673938352293458883225508870645075394739520439680790670868064450969865488016828743437861264538158342807530618454859037982179945996811544197425363443996029025100158882721647450068207041937615845471231834600726293395505482395571372568402322682130124767945226448209102356477527230820810635188991526928891084555711266039650343978962782500161101532351605196559042118449499077899920073294769058685778787209829013529566139788848605097860859570177312981553149516814671769597609942100361835591387778176984587581044662839988060061622984861693533738657877359833616133841338536842119789389001852956919678045544828584837011709672125353387586215823101331038776682721157269495181795897546939926421979155233857662316762754757035469941489290413018638611943919628388705436777432242768091323654494853667680000010652624854730558615989991401707698385483188750142938908995068545307651168033373222651756622075269517914422528081651716677667279303548515420402381746089232839170327542575086765511785939500279338959205766827896776445318404041855401043513483895312013263783692835808271937831265496174599705674507183320650345566440344904536275600112501843356073612227659492783937064784264567633881880756561216896050416113903906396016202215368494109260538768871483798955999911209916464644119185682770045742434340216722764455893301277815868695250694993646101756850601671453543158148010545886056455013320375864548584032402987170934809105562116715468484778039447569798042631809917564228098739987669732376957370158080682290459921236616890259627304306793165311494017647376938735140933618332161428021497633991898354848756252987524238730775595559554651963944018218409984124898262367377146722606163364329640633572810707887581640438148501884114318859882769449011932129682715888413386943468285900666408063140777577257056307294004929403024204984165654797367054855804458657202276378404668233798528271057843197535417950113472736257740802134768260450228515797957976474670228409995616015691089038458245026792659420555039587922981852648007068376504183656209455543461351341525700659748819163413595567196496540321872716026485930490397874895890661272507948282769389535217536218507962977851461884327192232238101587444505286652380225328438913752738458923844225354726530981715784478342158223270206902872323300538621634798850946954720047952311201504329322662827276321779088400878614802214753765781058197022263097174950721272484794781695729614236585957820908307332335603484653187302930266596450137183754288975579714499246540386817992138934692447419850973346267933210726868707680626399193619650440995421676278409146698569257150743157407938053239252394775574415918458215625181921552337096074833292349210345146264374498055961033079941453477845746999921285999993996122816152193148887693880222810830019860165494165426169685867883726095877456761825072759929508931805218729246108676399589161458550583972742098090978172932393010676638682404011130402470073508578287246271349463685318154696904669686939254725194139929146524238577625500474852954768147954670070503479995888676950161249722820403039954632788306959762493615101024365553522306906129493885990157346610237122354789112925476961760050479749280607212680392269110277722610254414922157650450812067717357120271802429681062037765788371669091094180744878140490755178203856539099104775941413215432844062503018027571696508209642734841469572639788425600845312140659358090412711359200419759851362547961606322887361813673732445060792441176399759746193835845749159880976674470930065463424234606342374746660804317012600520559284936959414340814685298150539471789004518357551541252235905906872648786357525419112888773717663748602766063496035367947026923229718683277173932361920077745221262475186983349515101986426988784717193966497690708252174233656627259284406204302141137199227852699846988477023238238400556555178890876613601304770984386116870523105531491625172837327286760072481729876375698163354150746088386636406934704372066886512756882661497307886570156850169186474885416791545965072342877306998537139043002665307839877638503238182155355973235306860430106757608389086270498418885951380910304235957824951439885901131858358406674723702971497850841458530857813391562707603563907639473114554958322669457024941398316343323789759556808568362972538679132750555425244919435891284050452269538121791319145135009938463117740179715122837854601160359554028644059024964669307077690554810288502080858008781157738171917417760173307385547580060560143377432990127286772530431825197579167929699650414607066457125888346979796429316229655201687973000356463045793088403274807718115553309098870255052076804630346086581653948769519600440848206596737947316808641564565053004988161649057883115434548505266006982309315777650037807046612647060214575057932709620478256152471459189652236083966456241051955105223572397395128818164059785914279148165426328920042816091369377737222999833270820829699557377273756676155271139225880552018988762011416800546873655806334716037342917039079863965229613128017826797172898229360702880690877686605932527463784053976918480820410219447197138692560841624511239806201131845412447820501107987607171556831540788654390412108730324020106853419472304766667217498698685470767812051247367924791931508564447753798537997322344561227858432968466475133365736923872014647236794278700425032555899268843495928761240075587569464137056251400117971331662071537154360068764773186755871487839890810742953094106059694431584775397009439883949144323536685392099468796450665339857388878661476294434140104988899316005120767810358861166020296119363968213496075011164983278563531614516845769568710900299976984126326650234771672865737857908574664607722834154031144152941880478254387617707904300015669867767957609099669360755949651527363498118964130433116627747123388174060373174397054067031096767657486953587896700319258662594105105335843846560233917967492678447637084749783336555790073841914731988627135259546251816043422537299628632674968240580602964211463864368642247248872834341704415734824818333016405669596688667695634914163284264149745333499994800026699875888159350735781519588990053951208535103572613736403436753471410483601754648830040784641674521673719048310967671134434948192626811107399482506073949507350316901973185211955263563258433909982249862406703107683184466072912487475403161796994113973877658998685541703188477886759290260700432126661791922352093822787888098863359911608192353555704646349113208591897961327913197564909760001399623444553501434642686046449586247690943470482932941404111465409239883444351591332010773944111840741076849810663472410482393582740194493566516108846312567852977697346843030614624180358529331597345830384554103370109167677637427621021370135485445092630719011473184857492331816720721372793556795284439254815609137281284063330393735624200160456645574145881660521666087387480472433912129558777639069690370788285277538940524607584962315743691711317613478388271941686066257210368513215664780014767523103935786068961112599602818393095487090590738613519145918195102973278755710497290114871718971800469616977700179139196137914171627070189584692143436967629274591099400600849835684252019155937037010110497473394938778859894174330317853487076032219829705797511914405109942358830345463534923498268836240433272674155403016195056806541809394099820206099941402168909007082133072308966211977553066591881411915778362729274615618571037217247100952142369648308641025928874579993223749551912219519034244523075351338068568073544649951272031744871954039761073080602699062580760202927314552520780799141842906388443734996814582733720726639176702011830046481900024130835088465841521489912761065137415394356572113903285749187690944137020905170314877734616528798482353382972601361109845148418238081205409961252745808810994869722161285248974255555160763716750548961730168096138038119143611439921063800508321409876045993093248510251682944672606661381517457125597549535802399831469822036133808284993567055755247129027453977621404931820146580080215665360677655087838043041343105918046068008345911366408348874080057412725867047922583191274157390809143831384564241509408491339180968402511639919368532255573389669537490266209232613188558915808324555719484538756287861288590041060060737465014026278240273469625282171749415823317492396835301361786536737606421667781377399510065895288774276626368418306801908046098498094697636673356622829151323527888061577682781595886691802389403330764419124034120223163685778603572769415417788264352381319050280870185750470463129333537572853866058889045831114507739429352019943219711716422350056440429798920815943071670198574692738486538334361457946341759225738985880016980147574205429958012429581054565108310462972829375841611625325625165724980784920998979906200359365099347215829651741357984910471116607915874369865412223483418877229294463351786538567319625598520260729476740726167671455736498121056777168934849176607717052771876011999081441130586455779105256843048114402619384023224709392498029335507318458903553971330884461741079591625117148648744686112476054286734367090466784686702740918810142497111496578177242793470702166882956108777944050484375284433751088282647719785400065097040330218625561473321177711744133502816088403517814525419643203095760186946490886815452856213469883554445602495566684366029221951248309106053772019802183101032704178386654471812603971906884623708575180800353270471856594994761242481109992886791589690495639476246084240659309486215076903149870206735338483495508363660178487710608098042692471324100094640143736032656451845667924566695510015022983307984960799498824970617236744936122622296179081431141466094123415935930958540791390872083227335495720807571651718765994498569379562387555161757543809178052802946420044721539628074636021132942559160025707356281263873310600589106524570802447493754318414940148211999627645310680066311838237616396631809314446712986155275982014514102756006892975024630401735148919457636078935285550531733141645705049964438909363084387448478396168405184527328840323452024705685164657164771393237755172947951261323982296023945485797545865174587877133181387529598094121742273003522965080891777050682592488223221549380483714547816472139768209633205083056479204820859204754998573203888763916019952409189389455767687497308569559580106595265030362661597506622250840674288982659075106375635699682115109496697445805472886936310203678232501823237084597901115484720876182124778132663304120762165873129708112307581598212486398072124078688781145016558251361789030708608701989758898074566439551574153631931919810705753366337380382721527988493503974800158905194208797113080512339332219034662499171691509485414018710603546037946433790058909577211808044657439628061867178610171567409676620802957665770512912099079443046328929473061595104309022214393718495606340561893425130572682914657832933405246350289291754708725648426003496296116541382300773133272983050016025672401418515204189070115428857992081219844931569990591820118197335001261877280368124819958770702075324063612593134385955425477819611429351635612234966615226147353996740515849986035529533292457523888101362023476246690558164389678630976273655047243486430712184943734853006063876445662721866617012381277156213797461498613287441177145524447089971445228856629424402301847912054784985745216346964489738920624019435183100882834802492490854030778638751659113028739587870981007727182718745290139728366148421428717055317965430765045343246005363614726181809699769334862640774351999286863238350887566835950972655748154319401955768504372480010204137498318722596773871549583997184449072791419658459300839426370208756353982169620553248032122674989114026785285996734052420310917978999057188219493913207534317079800237365909853755202389116434671855829068537118979526262344924833924963424497146568465912489185566295893299090352392333336474352037077010108438800329075983421701855422838616172104176030116459187805393674474720599850235828918336929223373239994804371084196594731626548257480994825099918330069765693671596893644933488647442135008407006608835972350395323401795825570360169369909886711321097988970705172807558551912699306730992507040702455685077867906947661262980822516331363995211709845280926303759224267425755998928927837047444521893632034894155210445972618838003006776179313813991620580627016510244588692476492468919246121253102757313908404700071435613623169923716948481325542009145304103713545329662063921054798243921251725401323149027405858920632175894943454890684639931375709103463327141531622328055229729795380188016285907357295541627886764982741861642187898857410716490691918511628152854867941736389066538857642291583425006736124538491606741373401735727799563410433268835695078149313780073623541800706191802673285511919426760912210359874692411728374931261633950012395992405084543756985079570462226646190001035004901830341535458428337643781119885563187777925372011667185395418359844383052037628194407615941068207169703022851522505731260930468984234331527321313612165828080752126315477306044237747535059522871744026663891488171730864361113890694202790881431194487994171540421034121908470940802540239329429454938786402305129271190975135360009219711054120966831115163287054230284700731206580326264171161659576132723515666625366727189985341998952368848309993027574199164638414270779887088742292770538912271724863220288984251252872178260305009945108247835729056919885554678860794628053712270424665431921452817607414824038278358297193010178883456741678113989547504483393146896307633966572267270433932167454218245570625247972199786685427989779923395790575818906225254735822052364248507834071101449804787266919901864388229323053823185597328697809222535295910173414073348847610055640182423921926950620831838145469839236646136398910121021770959767049083050818547041946643713122996923588953849301363565761861060622287055994233716310212784574464639897381885667462608794820186474876727272220626764653380998019668836809941590757768526398651462533363124505364026105696055131838131742611844201890888531963569869627950367384243130113317533053298020166888174813429886815855778103432317530647849832106297184251843855344276201282345707169885305183261796411785796088881503296022907056144762209150947390359466469162353968092013945781758910889319921122600739281491694816152738427362642980982340632002440244958944561291670495082358124873917996486411334803247577752197089327722623494860150466526814398770516153170266969297049283162855042128981467061953319702695072143782304768752802873541261663917082459251700107141808548006369232594620190022780874098597719218051585321473926532515590354102092846659252999143537918253145452905984158176370589279069098969111643811878094353715213322614436253144901274547726957393934815469163116249288735747188240715039950094467319543161938554852076657388251396391635767231510055560372633948672082078086537349424401157996675073607111593513319591971209489647175530245313647709420946356969822266737752099451684506436238242118535348879893956731878066061078854400055082765703055874485418057788917192078814233511386629296671796434687600770479995378833878703487180218424373421122739402557176908196030920182401884270570460926225641783752652633583242406612533115294234579655695025068100183109004112453790153329661569705223792103257069370510908307894799990049993953221536227484766036136776979785673865846709366795885837887956259464648913766521995882869338018360119323685785585581955560421562508836502033220245137621582046181067051953306530606065010548871672453779428313388716313955969058320834168984760656071183471362181232462272588419902861420872849568796393254642853430753011052857138296437099903569488852851904029560473461311382638788975517885604249987483163828040468486189381895905420398898726506976202019955484126500053944282039301274816381585303964399254702016727593285743666616441109625663373054092195196751483287348089574777752783442210910731113518280460363471981856555729571447476825528578633493428584231187494400032296906977583159038580393535213588600796003420975473922967333106493956018122378128545843176055617338611267347807458506760630482294096530411183066710818930311088717281675195796753471885372293096161432040063813224658411111577583585811350185690478153689381377184728147519983505047812977185990847076219746058874232569958288925350419379582606162118423687685114183160683158679946016520577405294230536017803133572632670547903384012573059123396018801378254219270947673371919872873852480574212489211834708766296672072723256505651293331260595057777275424712416483128329820723617505746738701282095755443059683955556868611883971355220844528526400812520276655576774959696266126045652456840861392382657685833846984997787267065551918544686984694784957346226062942196245570853712727765230989554501930377321666491825781546772920052126671434632096378918523232150189761260343736840671941930377468809992968775824410478781232662531818459604538535438391144967753128642609252115376732588667226040425234910870269580996475958057946639734190640100363619040420331135793365424263035614570090112448008900208014780566037101541223288914657223931450760716706435568274377439657890679726874384730763464516775621030986040927170909512808630902973850445271828927496892121066700816485833955377359191369501531620189088874842107987068991148046692706509407620465027725286507289053285485614331608126930056937854178610969692025388650345771831766868859236814884752764984688219497397297077371871884004143231276365048145311228509900207424092558592529261030210673681543470152523487863516439762358604191941296976904052648323470099111542426012734380220893310966863678986949779940012601642276092608234930411806438291383473546797253992623387915829984864592717340592256207491053085315371829116816372193951887009577881815868504645076993439409874335144316263303172477474868979182092394808331439708406730840795893581089665647758599055637695252326536144247802308268118310377358870892406130313364773710116282146146616794040905186152603600925219472188909181073358719641421444786548995285823439470500798303885388608310357193060027711945580219119428999227223534587075662469261776631788551443502182870266856106650035310502163182060176092179846849368631612937279518730789726373537171502563787335797718081848784588665043358243770041477104149349274384575871071597315594394264125702709651251081155482479394035976811881172824721582501094960966253933953809221955919181885526780621499231727631632183398969380756168559117529984501320671293924041445938623988093812404521914848316462101473891825101090967738690664041589736104764365000680771056567184862814963711188321924456639458144914861655004956769826903089111856879869294705135248160917432430153836847072928989828460222373014526556798986277679680914697983782687643115988321090437156112997665215396354644208691975673700057387649784376862876817924974694384274652563163230055513041742273416464551278127845777724575203865437542828256714128858345444351325620544642410110379554641905811686230596447695870540721419852121067343324107567675758184569906930460475227701670056845439692340417110898889934163505851578873534308155208117720718803791040469830695786854739376564336319797868036718730796939242363214484503547763156702553900654231179201534649779290662415083288583952905426376876689688050333172278001858850697362324038947004718976193473443084374437599250341788079722358591342458131440498477017323616947197657153531977549971627856631190469126091825912498903676541769799036237552865263757337635269693443544004730671988689019681474287677908669796885225016369498567302175231325292653758964151714795595387842784998664563028788319620998304945198743963690706827626574858104391122326187940599415540632701319898957037611053236062986748037791537675115830432084987209202809297526498125691634250005229088726469252846661046653921714820801305022980526378364269597337070539227891535105688839381132497570713310295044303467159894487868471164383280506925077662745001220035262037094660234146489983902525888301486781621967751945831677187627572005054397944124599007711520515461993050983869825428464072555409274031325716326407929341833421470904125425335232480219322770753555467958716383587501815933871742360615511710131235256334858203651461418700492057043720182617331947157008675785393360786227395581857975872587441025420771054753612940474601000940954449596628814869159038990718659805636171376922272907641977551777201042764969496110562205925024202177042696221549587264539892276976603105249808557594716310758701332088614632664125911486338812202844406941694882615295776253250198703598706743804698219420563812558334364219492322759372212890564209430823525440841108645453694049692714940033197828613181861888111184082578659287574263844500599442295685864604810330153889114994869354360302218109434667640000223625505736312946262960961987605642599639461386923308371962659547392346241345977957485246478379807956931986508159776753505539189911513352522987361127791827485420086895396583594219633315028695611920122988898870060799927954111882690230789131076036176347794894320321027733594169086500719328040171638406449878717537567811853213284082165711075495282949749362146082155832056872321855740651610962748743750980922302116099826330339154694946444910045152809250897450748967603240907689836529406579201983152654106581368237919840906457124689484702093577611931399802468134052003947819498662026240089021501661638135383815150377350229660746279529103840686855690701575166241929872444827194293310048548244545807188976330032325258215812803274679620028147624318286221710543528983482082734516801861317195933247110746622285087106661177034653528395776259977446721857158161264111432717943478859908928084866949141390977167369002777585026866465405659503948678411107901161040085727445629384254941675946054871172359464291058509099502149587931121961359083158826206823321561530868337308381732793281969838750870834838804638847844188400318471269745437093732983624028751979208023218787448828728437273780178270080587824107493575148899789117397461293203510814327032514090304874622629423443275712600866425083331876886507564292716055252895449215376517514921963671810494353178583834538652556566406572513635750643532365089367904317025978781771903148679638408288102094614900797151377170990619549696400708676671023300486726314755105372317571143223174114116806228642063889062101923552235467116621374996932693217370431059872250394565749246169782609702533594750209138366737728944386964000281103440260847128990007468077648440887113413525033678773167977093727786821661178653442317322646378476978751443320953400016506921305464768909850502030150448808342618452087305309731894929164253229336124315143065782640702838984098416029503092418971209716016492656134134334222988279099217860426798124572853458013382609958771781131021673402565627440072968340661984806766158050216918337236803990279316064204368120799003162644491461902194582296909921227885539487835383056468648816555622943156731282743908264506116289428035016613366978240517701552196265227254558507386405852998303791803504328767038092521679075712040612375963276856748450791511473134400018325703449209097124358094479004624943134550289006806487042935340374360326258205357901183956490893543451013429696175452495739606214902887289327925206965353863964432253883275224996059869747598823299162635459733244451637553343774929289905811757863555556269374269109471170021654117182197505198317871371060510637955585889055688528879890847509157646390746936198815078146852621332524738376511929901561091897779220087057933964638274906806987691681974923656242260871541761004306089043779766785196618914041449252704808819714988015420577870065215940092897776013307568479669929554336561398477380603943688958876460549838714789684828053847017308711177611596635050399793438693391197898871091565417091330826076474063057114110988393880954814378284745288383680794188843426662220704387228874139478010177213922819119923654055163958934742639538248296090369002883593277458550608013179884071624465639979482757836501955142215513392819782269842786383916797150912624105487257009240700454884856929504481107380879965474815689139353809434745569721289198271770207666136024895814681191336141212587838955773571949863172108443989014239484966592517313881716026632619310653665350414730708044149391693632623737677770958503132559900957627319573086480424677012123270205337426670531424482081681303063973787366424836725398374876909806021827857862165127385635132901489035098832706172589325753639939790557291751600976154590447716922658063151110280384360173747421524760851520990161585823125715907334217365762671423904782795872815050956330928026684589376496497702329736413190609827406335310897924642421345837409011693919642504591288134034988106354008875968200544083643865166178805576089568967275315380819420773325979172784376256611843198910250074918290864751497940031607038455494653859460274524474668123146879434416109933389089926384118474252570445725174593257389895651857165759614812660203107976282541655905060424791140169579003383565748692528007430256234194982864679144763227740055294609039401775363356554719310001754300475047191448998410400158679461792416100164547165513370740739502604427695385538343975505488710997852054011751697475813449260794336895437832211724506873442319898788441285420647428097356258070669831069799352606933921356858813912148073547284632277849080870024677763036055512323866562951788537196730346347012229395816067925091532174890308408865160611190114984434123501246469280288059961342835118847154497712784733617662850621697787177438243625657117794500644777183702219991066950216567576440449979407650379999548450027106659878136038023141268369057831904607927652972776940436130230517870805465115424693952651271010529270703066730244471259739399505146284047674313637399782591845411764133279064606365841529270190302760173394748669603486949765417524293060407270050590395031485229213925755948450788679779252539317651564161971684435243697944473559642606333910551268260615957262170366985064732812667245219890605498802807828814297963366967441248059821921463395657457221022986775997467381260693670691340815594120161159601902377535255563006062479832612498812881929373434768626892192397778339107331065882568137771723283153290825250927330478507249771394483338925520811756084529665905539409655685417060011798572938139982583192936791003918440992865756059935989100029698644609747147184701015312837626311467742091455740418159088000649432378558393085308283054760767995243573916312218860575496738322431956506554608528812019023636447127037486344217272578795034284863129449163184753475314350413920961087960577309872013524840750576371992536504709085825139368634638633680428917671076021111598288755399401200760139470336617937153963061398636554922137415979051190835882900976566473007338793146789131814651093167615758213514248604422924453041131606527009743300884990346754055186406773426035834096086055337473627609356588531097609942383473822220872924644976845605795625167655740884103217313456277358560523582363895320385340248422733716391239732159954408284216666360232965456947035771848734420342277066538373875061692127680157661810954200977083636043611105924091178895403380214265239489296864398089261146354145715351943428507213534530183158756282757338982688985235577992957276452293915674775666760510878876484534936360682780505646228135988858792599409464460417052044700463151379754317371877560398159626475014109066588661621800382669899619655805872086397211769952194667898570117983324406018115756580742841829106151939176300591943144346051540477105700543390001824531177337189558576036071828605063564799790041397618089553636696031621931132502238517916720551806592635180362512145759262383693482226658955769946604919381124866090997981285718234940066155521961122072030922776462009993152442735894887105766238946938894464950939603304543408421024624010487233287500817491798755438793873814398942380117627008371960530943839400637561164585609431295175977139353960743227924892212670458081833137641658182695621058728924477400359470092686626596514220506300785920024882918608397437323538490839643261470005324235406470420894992102504047267810590836440074663800208701266642094571817029467522785400745085523777208905816839184465928294170182882330149715542352359117748186285929676050482038643431087795628929254056389466219482687110428281638939757117577869154301650586029652174595819888786804081103284327398671986213062055598552660364050462821523061545944744899088390819997387474529698107762014871340001225355222466954093152131153379157980269795557105085074738747507580687653764457825244326380461430428892359348529610582693821034980004052484070844035611678171705128133788057056434506161193304244407982603779511985486945591520519600930412710072778493015550388953603382619293437970818743209499141595933963681106275572952780042548630600545238391510689989135788200194117865356821491185282078521301255185184937115034221595422445119002073935396274002081104655302079328672547405436527175958935007163360763216147258154076420530200453401835723382926619153083540951202263291650544261236191970516138393573266937601569144299449437448568097756963031295887191611292946818849363386473927476012269641588489009657170861605981472044674286642087653347998582220906198021732116142304194777549907387385679411898246609130916917722742072333676350326783405863019301932429963972044451792881228544782119535308989101253429755247276357302262813820918074397486714535907786335301608215599113141442050914472935350222308171936635093468658586563148555758624478186201087118897606529698992693281787055764351433820601410773292610634315253371822433852635202177354407152818981376987551575745469397271504884697936195004777209705617939138289898453274262272886471088832701737232588182446584362495805925603381052156062061557132991560848920643403033952622634514542836786982880742514225674518061841495646861116354049718976821542277224794740335715274368194098920501136534001238467142965518673441537416150425632567134302476551252192180357801692403266995417460875924092070046693403965101781348578356944407604702325407555577647284507518268904182939661133101601311190773986324627782190236506603740416067249624901374332172464540974129955705291424382080760983648234659738866913499197840131080155813439791948528304367390124820824448141280954437738983200598649091595053228579145768849625786658859991798675205545580990045564611787552493701245532171701942828846174027366499784755082942280202329012216301023097721515694464279098021908266898688342630716092079140851976952355534886577434252775311972474308730436195113961190800302558783876442060850447306312992778889427291897271698905759252446796601897074829609491906487646937027507738664323919190422542902353189233772931667360869962280325571853089192844038050710300647768478632431910002239297852553723755662136447400967605394398382357646069924652600890906241059042154539279044115295803453345002562441010063595300395988644661695956263518780606885137234627079973272331346939714562855426154676506324656766202792452085813477176085216913409465203076733918411475041401689241213198268815686645614853802875393311602322925556189410429953356400957864953409351152664540244187759493169305604486864208627572011723195264050230997745676478384889734643172159806267876718380052476968840849891850861490034324034767426862459523958903585821350064509981782446360873177543788596776729195261112138591947254514003011805034378752776644027626189410175768726804281766238606804778852428874302591452470739505465251353394595987896197789110418902929438185672050709646062635417329446495766126519534957018600154126239622864138977967333290705673769621564981845068422636903678495559700260798679962610190393312637685569687670292953711625280055431007864087289392257145124811357786276649024251619902774710903359333093049483805978566288447874414698414990671237647895822632949046798120899848571635710878311918486302545016209298058292083348136384054217200561219893536693713367333924644161252231969434712064173754912163570085736943973059797097197266666422674311177621764030686813103518991122713397240368870009968629225464650063852886203938005047782769128356033725482557939129852515068299691077542576474883253414121328006267170940090982235296579579978030182824284902214707481111240186076134151503875698309186527806588966823625239378452726345304204188025084423631903833183845505223679923577529291069250432614469501098610888999146585518818735825281643025209392852580779697376208456374821144339881627100317031513344023095263519295886806908213558536801610002137408511544849126858412686958991741491338205784928006982551957402018181056412972508360703568510553317878408290000415525118657794539633175385320921497205266078312602819611648580986845875251299974040927976831766399146553861089375879522149717317281315179329044311218158710235187407572221001237687219447472093493123241070650806185623725267325407333248757544829675734500193219021991199607979893733836732425761039389853492787774739805080800155447640610535222023254094435677187945654304067358964910176107759483645408234861302547184764851895758366743997915085128580206078205544629917232020282229148869593997299742974711553718589242384938558585954074381048826246487880533042714630119415898963287926783273224561038521970111304665871005000832851773117764897352309266612345888731028835156264460236719966445547276083101187883891511493409393447500730258558147561908813987523578123313422798665035227253671712307568610450045489703600795698276263923441071465848957802414081584052295369374997106655948944592462866199635563506526234053394391421112718106910522900246574236041300936918892558657846684612156795542566054160050712766417660568742742003295771606434486062012398216982717231978268166282499387149954491373020518436690767235774000539326626227603236597517189259018011042903842741855078948874388327030632832799630072006980122443651163940869222207453202446241211558043545420642151215850568961573564143130688834431852808539759277344336553841883403035178229462537020157821573732655231857635540989540332363823192198921711774494694036782961859208034038675758341115188241774391450773663840718804893582568685420116450313576333555094403192367203486510105610498727264721319865434354504091318595131451812764373104389725070049819870521762724940652146199592321423144397765467083517147493679861865527917158240806510637995001842959387991583501715807598837849622573985121298103263793762183224565942366853767991131401080431397323354490908249104991433258432988210339846981417157560108297065830652113470768036806953229719905999044512090872757762253510409023928887794246304832803191327104954785991801969678353214644411892606315266181674431935508170818754770508026540252941092182648582138575266881555841131985600221351588872103656960875150631875330029421186822218937755460272272912905042922597877106678738400006167721546384412923711935218284998243509208918016855727981564218581911974909857305703326676464607287574305653726027689823732597450844796495456480307715981539558277791393736017174229960273531027687194494449179397851446315973144353518504914139415573293820485421235081739125497498193087143966151329420459193801062314217741991840601803479498876910515579055548069538785400664533759818628464199052204528033062636956264909108276271159038569950512465299960628554438383303276385998007929228466595035512112452840875162290602620118577753137479493620554964010730013488531507354873539056029089335264007132747326219603117734339436733857591245081493357369116645412817881714540230547506671365182582848980995121391939956332413365567770980030819102720409971486874181346670060940510214626902804491596465453301077546954130887141653125448130611924078211886900560277818242350226961893443525476335735364856193632544177566139817039306328721669057222597452091929172621998444096461582694563802395028371216864465617852355651641277128269186886155727162014749340522769465957121983149433816221140069363074304441732847861017777438379770372317952554341072234455125555899986461838767649039724611679590181000350989286412041951635511087632042676129798265294258829511412758412627327907988075597518515768412647422094797218433093529726652100156625145529947451276315509176367302594621329301904028379542463232585503010967069227202270748634190054383026506812141421350571541750575086399076739463351462090828889349383764393992569006040673114220933121959362029829723511632593867722414779116295727807523950562515816031333593823115005186268905306583681299881086632632719806112715488587980934879129137074982305759290918629391950147211975860672700925477180257503377307993971345395326461952699965963856549175904583335857991020127132045839032008538788816336376851820837278851311752277696097879621423721625452145912818317982160441113116714069148271709810154577819392023115638719508050246797257924976057726259133285597263712112019057207714091486450740949267180358151575715140503976109638467555692989703835473141002238025834687673501297754132795320609711545064842121859364909979177668747744818828706323155158650328981642282882327468661065927321979071623846421534898524762167890502609980452664839295423572873439776804957740914495383915755654854590589764951985138010079580107837599457752991967005476022525520344539887125387801719607181640781248478472579124078245443616823452395706895142722697504318736332630111030534233358216093331912188066082683414289104151732472160533558499932245487307788229052523242348615315209769384610425828497149634753418375620030149157032796853018686315724884015266398356895636346574353217834931998255421173084677452970858395076164582296303244243282377374505170285606980678895217681981567107816334052667595394249262807569683261074953233905362230908070814559198373553777487420290390181429373115293346444681512129450975965343062842153194457271186149000176505581770953024688752632501197052094761594167687277844720001927891372518416228577837922844390843011811214963664246590336341945406571835447719124466212593926566203068885200555991212353637182269225317814587925937504414489339816086579008761650246351970458288954817937566810464746141051424988702521399368705093723054477341126413548928068410591077166778212383328102621855877513127211793444482014404257450830639447383637939062830089733062413806145894142276947479316657176231824721683506780764875734204915576282175839729751344789906965895325489403356156131674032764724692125057591162515296545685446334981143176702572956618447754874693784642337372389819206620485118943788682248072793520225017965453437572741639107919729529508129429222053477173041844779156739917384183117103625243957161527146690058147000026330104526435478659032907332054683388720787354447626479252976901709120078741837367350877133769776834963442524199499513883150748775374338494582597655609965559543180409201784971846854973706962120885243770138537576814166327224126344239821529416453780004925072627651507890850712659970367087266927643083772296859851691223050374627443108529343052730788652839773352460174635277032059381791253969156210636376258829375713738407544064689647831007045806134467312715911946084359358259877828352665311510650416232953290477721740835593497237585521380483050900096466760883015406128243087406455944318534137552201663058121110334531207450868243394321590435944303124312274713858420303901060709403152355561727679941600203939750998976293353258555756248089966918298642226775023601932579747267425782111197347094023574572222712125268523842958742735015636600931880454933389897415714905441825597380808715652814301026704602843168192303925352977957658624143927015497408792731310516361191375770089295648233236482982630246079758757677453771601024908046243018565241617566556001608591215345562676021926899828553778725831451440826545834844094784631787773747946535801699607794055687011923286080411309046293508718271259346687127666948738998245985277864995691654640294589350649643358098247659651651420909867552038083092032304873427034682887516040715466538346196112230137594515792526967436425319273900360386082364507626988274976187235754767628899507521148048525279508450339585708381304769378813211236742813194879502280663201700224603319896719706491637411758548518784840120548446725888514015627250198217190669608126277854859648183696214107217142149863619187747545096503089570994709343378569816744658282679119406119560378453978558392407612763441057667510243075598145527861678159496570625597550743065210853015979080733437360794328667578905334836695554868039134337201564988342208933999716414797469386969054800891930671380571715058573071488156499207140867582596028760564597824237702424698053280566327870419267684671162668794634869504645074202193739452592626686135529406247813612062026364981999994984051438682852589563422643287076632993048917234007254717641886853513723326678779217383475414800228033929973579361524127558295692768372312347989894462743304545667900620324205163962825884430854383072014956721064605332385372031432421126074244858450945804940818209276391400085404220235562602185643489941454399504109805918179488826280520664410863190016885681551692294862030107388971810077092905904807490924271410189335428184299959881696609938369616443815288772140852680887574882932587358099056707558170179491619061140019085537448827262009366856044755965574764856740081773817033073803054769736097865438593821872205839023444435088674998665060406458743460053318274362961778625180818931443632512051070946908135864405192295129324500788333987884293393424351263433652043858129128343452973086529097833006712617981303167943855357262969987403595704584522308563900989131794759487521263970783759448611394519602867512105616389760088800927461158608002078033415914517970730368351969777660763737853330120241201120469886092093390853657732223924124490515327809509558664594776344822699860748132973026309750288121035177231244650953496536930900186377640940943498373132513218620802148099226855029484546618147155574447096695301776904342720318927706047177845279391604722815343798035396798614243709566832214914654380145938292773933960327540480095522318166673803571839327570771420467238386246178039762923771312095807893638414479298025880655221292620936239306373134966401866195108115834711733120258058667276399927635790780638188130691563662741254312595899361196476261014055635033995231403231138196562363271989618372548453337020625634642239527669435683767613687119629218187545760816170530315907288287007123136663087227549186613957737305460659974378109876498024140112421427736680827513909593134041558262667895108467761186659576601659981780894149857549762843878561002637965431783136340251358141611519020964991335487331311150227006819301359295959716401971960536250335584799809634887180391116128135959685654788683258564378961731597620024196215528962979048198221994622694871374624447290934564700285376949588595916067892824910544125159963007813683674902093749157328962700286568293444313423473512392982591667395034259958689706972673325827359031212887466604514614878503461428277659916080903986525757172630818334944418201935333850712923457743755793440621787113300631060033240539916936826037461766385657588775802012293663532702671006812618251729146082025418928859352444910701382062115538277935652969145765020486432828655579347072096348073726921411868954673227677513356901901537236690368653891612916888878764075254934942497334271811788927599315967193547589880979245252623636590363200708544407845447973482918020820449266706344204375553250505275228337788870408040335319234076856301093477721256390886404131010738178533383160381352808281190408325644018420537467929926220376987180180611226244909092426419858208617511771137890516091403815750033664241560952163281971223350231674226005679412814062172196418427057843289598028823350598282081966662490358577899403331522748177769528436816300885317696947836905806710648280835980466988410981351586549069333195223943632879239905348109878302745001720654336990661177845543646877236318444647680691428280045510746866453928053994091087549391660957316197150331669683099294663491427987808422572206971488755806374803088629951184731871247772919100702275888934869394562895158029653721504096031077612898312635899648934102470360366450586872875890514068412381242473863854279082827338279733268855049358743031602747490631295723497426112215174171531336186224109138695006888358989623492763173164783400774608866555987333821138299287769114954921841920877716060684728746736818861675072210172611038306717878566948129487850489430630861699487987031605158841082823512741535385133658953329486294944950618685147791058046960390693726626703865129052011378108586161888869479576074135855345851517680519733344334952301203957707396237713160302428872005373209982530089776189731298178819446717311606472314762484575519287327828251271824468078242152164695678192940982389262849437602488522790036202193866964822156280936053731780408637272684266964219299468192149087017075333610947913818040632873875938482695355830773957614479972700034728801827852813895032179863452161110666088393140532269449054555278678944175792024400214507801920998044613825478058580484424164047750315360549065914300781583724301231375115622840158386442708907182848167575271238467824595343344496220100960710513706084618011875431207254913349942476171156333214089346091565615506003173842187015702261031019166038870646614388977363187809407115275281746895764015810470169652475577408916445686777171585005832699434016772021567677240681283665652641229824394651331973591997094032759385026695574702318132032437164205861410336065245369391600506449530601612678226489424373971667176612310489750318857321655549883421218028469125290861014855278152776256237504563757694977343368460156077270355096290493924870884062810679436224187047470083688426710225583024035998416459511224852726336326451140173952480861946358407837535568856223171155209472230654370926067973510005655493812245754837285457117973936157561676416928958052572975223385586113883221711073622658162188424431788574887981090266537934266642169909140565364322493013348679881548866286650523469972355747384248305904236771432787923164224038777643301926001922847783138376325361210253369358126240868666997382759773656822279072158324788886423693463961643633087301398142114303060087306661648036789840913359262934023043249749268878316436026810113095707161419128306865773235326396536773903176613613159655535849993986005651559219367599777179330197446881483711032065036931928945214026509154651843099365534933371834252984336799159394174662239003895276738133306177476295749438687169784537672194935065908757119177208754771071899379608947745126547575018711948707387367858902006173733210756933022163206284320656711920969505857611739616323262177089454262146098584102378132158177276022227381334954104810030732751077999489919779638835307344434575329759142637684054422647842160631227696469671564739990437159033239065607266441164386054048388471619121090087010191307260710441141432419767968285478855247794764818029597360494397004795960402927462992035720997619501403483153809477146010563334469988208221205872815107291829712119178764248803546723169165418522567292344291871281632325969654135485895771332083399112887759172261152733790103413620856145779923987783250835507301998184590259583559892605532996737704917224549353296833000022301815172265757875240588322490858212800897479093261007625787704286560069961762121768454789964407050662417102133274867962374302291553582007801411653480656474882306150033920689837947662550365498228053296628621179306284301704924023019857199789488368971830438051821744191476604297524372516834354112170386313794114220952958857980601529387527537990309388716835720957607152219002793792927863036372687658226812419933848081660216037221547101430073775377926990695871212892880190520316012858618254944133538207848834653116326504076424283908701210151942319616522684220037112304643006734420647477180213530701240988603533991526679238711017062218658835737812109351797756044256346949997872511254408545222748109148743072598696020402759411789425812818821599523596589791811440776533543217575952555361581280011638467203193465072968079907939637149617743121194020212975731251652537680173591015573381537720019524445436200718484756634154074423286210609976132434875488474345396659813387174660930205350702719529839432714253711557666000257844230310734295515339450604862227649666876240793243531929926392537310768921353525723210808898193391686682789482811704726245019484097009757609209837240900747179733407881418251958425980962417476101382526439551352593118850456362641883003385396524359974169313228947198783084276004013680747039040972384739458348961865397905941185993103561684368692194853820557803957738813606795499000851232594425297244866667668346414021899159445653094234406506678519484177667794704720419588220432953803263105374948831221803912796784461001397267538921951191178365876625280836900532490045974109470687729123282143046353372835199536482743258331191444590178096077828835837301118575436599589827245319253105881150263075425714939430244539318701799236081666113054262539958338979429716020703387678150330102801200959972522222808014235710947603519255444349299867678178910455590630159538097618759203589373419789623589311259839025983102671933041892151096891562250696591198283234555030590817307351955037216658702880539921385760370353771051780212801295668419841403628727256232144287543022109094727210734741349755141907370433182766261772759968888260272252471336833534528166927795913288613817663498577289369009657495622871030243625907724122190943008717556926257580657099120166596224360802428700245473620363948412559548817272724736534677836472019183039987176270375157246499222894679323226936191776416146187956139566995677830682903165896994307673335082349907906241002025061340573443006957454746821756904416515406365846804636926212742110753990421887161276177870142588648257752238891845995233762923779155857445494773612955259522265786364621183775984737003479714082069941455807190802135907322692331008317595106590191212947954086036407573587502058902087045796700070552625058114206639074592152733094068236494415908910092202966805233252661989113118420162916310768940847235643668081821686572196882683584027855007828040434537101836510969517823357430305048526537380735310741859177056103973950626403554422751561011072617793706347238049906669221619711942591204450846417463835899382399465173955090008594799901360266742614942900664671150671754221770387745076735637421547829059110126191575558702389570014051178226469899449179083017954758767601680941001358376135785913569244556477644641786671153919513576961048649224900834467154863830544779143300976804868783481846727337584368927243104474068076852786255851650920882638132336231487333367147645204508766276149503899495048095604609896043291233583488599902945264002849942808786240398118148847673012167541611066299955536681931232874257020637383520200868636913117334697317412191536332467453256308713473027921749562270146873258678917345583799643513588009593508775563562488104938529990076751355135277924124292774885658885665132473025147102105753525165118148509027504768455182520963318990685276144351382136621523688905787866994322888160283774820355060160298940091197138501798716836337441392759736440170070147637066557035043381211135764150184518214136198234951596010647527125759351853043328755377830575095674254426847122196187091785607839361445113833356491032564057338986671781239722375193164306170138595394743678433926709867124522111896908402363274114966012434830989299417380305884171666130730400675883804321115553794406054977217059428215148861656727712409033877277456290971101348851843741186956554497457368452180669829110450580042998879538990278043835962824094218605562877884288021275538848037286400194416142574999042720095952046541705981049899675045119364711727722204361026140797508096869751766002371877483480161203102346805671126447661237476278521902412025699435347162266608936752198331118135111465038548950251206557726361454736044268594980743969323312971273771573470997139522911826534851555871373366291202427143025037632695013509116129529937858646813072264860082708813335381937036825988678933212383270532976258573827900978264605455985551318366888446282651337984916678394097613537662517982582496634587719501243840403591408492097337546424744881761840700235695801774101776969250778148933866725578985645898510568919609243988415692806969833522402256345704973122452693541938370048431833571965166267215755241934019330990183193091965829209696562476676836596470195957547393455143374137087615173236772042273856742791706982045499530959188724349395240944416789988463198455048523936629720797774528143994182567894577957125524268260899408633173715388962628896294021121088844273765686245276121303710173007851357154045330415079594477761435974378037424366469732471384104921243141389035790924160364063140381498314819052517209371039640268089948325722979545640427017577229041732347960736187878899133183058430693948259613187138164234672187308451338772190869751049428437693250249816566738162606159417682525099937416728839517440669325496534031014522253161890092353764863784828813442098700480962271712264074895719390029185733074601043607291909457679946149292904279816877294264877299528584346477753869069501489841339245403941446802636254021186143170312511175776428299146445334089209769616990983726523617687456058947049681701369749095230720826828878907301900182534258053434217059287139317379931424108526473909482845964180936141384758311361305761084623668372376959134926158245162215521348792441450417568480641206365201703863301295327776990231186480200675569056822950163549319923059142463962170253297475731140942201801993680350264956369558664259067626856873721103391567938398957655651931778830002416135395624377778408017488193730950206999008908993280883974303677365955248913001566332940779071396154645340887915103006513219344866732482759079468078798194250195826223203951312520141099605312606965554042486705499867869230217469890095478507256729787947698888310934874644264007181831603316555115342761556224054744733780492462149521332585276988473362691826491743389878247892784689188280546699823036899397834137475870258057163494135684339293960681920617733317917382085624364336353598634944968907810640196740744365836670715869245211829978938040771375012908586465789057714268335827689785547176871844277261205092664861020515356428406323684818072879407171279668200607275595559040402331787494473464547606281895415121391629184442976510669479693540168660100551960776873353965116149309375709685545593815137895690392510149532656281470119983269922000663928753747131352364215892651262040728877165783584052196460541054354436421665622445650429990102565869272791427529311720827939377513261060528812353734510683729398935808712438693859343891757133763007203197608166044646839377258069092372975234867029169104263692620901996052041210240776481903160140858635584276095370865581642739953493465463145040401995285372520049578052546562511541092524379913262627136090994029022620628367521323050651839340574501120993414649184333236465693717259144893241590062420206128857329261335968087265000456282845575745965921205303413101118275013069615098355156320043107846019065654938065425252291619918199596027523277022498557388248998827074659363557685825605180689642853768507720122203479209939361792682065901421656159253067379445689490708532635681968318617722682499114726157320358076462981162440133167378927886892290325933498617970219949819257396176730758344170985592221701718257127775344915082052784309046194608352174020058386728497094110232669539214454610662150064106747402070091899119513764669044812672536915371622907913854039375600778351533741677479421003840023089518509945487790393461222208650601605003517762648316111533255877050735412792499098593734737870811942530551214369797499149518605359204038302357163527276308746932196221900642608861836761033460022554774778136410126919065696864950126883762969072339612762872230411418136100602640440300359969889199458273976241146137448040596970625767647237660655416185746905272292382282751867991569833907476711461030227766060200612468764777288190967916133540198814027579921741676787992316039635694928515136336472195406111717673873725557285229400543617851765023075446938693078734991103521825329297260445532107978877114498988709115112372506042387537348412570860640690520584521227545338480082053024504565176695185769132000428167580549248117805198326460324457928297301291053183856368212062155312886685649565126138922613670640939533345705269869596923503530942245438652786776730275404027022463844835532399147513634410440500923303612714960813554905315390210022995957565837053812619656831442860579566966221547216956208700137277685369608407048333251327931122325071486302069512453950037357233468070946564830892098015348787056334910923660575540508641115214414814346304372732710450277686619531078583233348578402971609252153260925589326556006721243594642550659967717703884453961816328796144608177892721718369088801267782074301064225246348074543004764928855534090621851536543554741254761527697726677697727770583158014121856880117050283652755432148034880044429799980621579045641619572127845089284898064264974270905791290692178072987694779751124473059914060506299468942809310342164166299356148281309988707452927160484336308184041264696379258430941854422163590845761460785585624738149314270782662151855416038702068769804617474008083243436653823545551094494984310934947599446726736653525176627067721941831919771963780157021699336750837600571634546436717767233875886434056448715669643210412825956453498413884128904206820470076155969168430389993483667935425492103281133631847225923055543830582069416756299920133731754891220372303490726810685344540359935618235763128377676406310131253352121419946118693508331765878520471123643312267651299641713252175135532618676819423387903654689080018271352835848884441117612341011799187092365071848578562210211040097769944531217950224795780695065329659403839873699072407976790408267940076187295478359634927939045769736616434053597922192858705749574816966940623342726197335181366260637359825755524965098072601236682836059283418558480269584137725589708837899429105498003311138846034019391661221866960584915714857335682861495000190975911252188003964197621635593757437180114805594422987304181968080856472657135476128316292004498803154021055305970766663627493283089168809323592900817874119857383171926167288349184024297212904349655269427264025596414635259143484006758676903503823205729341329815935330444464968294413673234421583807616948312193331198190610961429522015361702985751055943264614685054526849757648078080092213358113781977492717685450755383287688744745915937311624706010912446098294248412875202244625944776387494919978404468292573609685345498432665368628444893657041118177938064416165312236002149187687694673984075171763075168498563592014868929431059402024579696229245666448819675762943495353263821716133957577907663707645695702597388004384158058943361371065518599876007549241872117148892952217377211460811543449826654798725800566747240511220073834592715757277152185899469481179406444663994323700442911407472181802248258377360173466853007449855647154200361235933973129144585915228874087195087086322188372882628228846318437172619033057771476515641438223067918473860391476831081413582757558536435977216500282778037134228696887873497950960311088991961433866640684506974207877002805093672033872326296378560386532164323488155575570184690890746478791224363755566686780676105449550172607911429308312857612544819444494732448190937953690082063846316782250648095318104065702543276043857035059228189198780658654121842992172737209551032422510797180778330426090867942734289557355592527238055114404380012390416877164451802264916816419274011064516224311017000566911217331894234005479596846698042980173625704067332821299621536848814041021944634246462207455756439604529853130714090846084996537678037932018991408658146621753193376659701143306086250098295669176388460567629729314649114937046244693519840395344491351411936679333019366176636525551491749823079870722808608596261126605042892969665356525166888855721122768027727437089173896397722575648905334010388559311256799915165890250164869614272070059160561661597024519890518329692789355503039346812197615821839804839605625230914626384473862960398489243861872985077759287927220685548072104978176532862101874767668972488411395603494803767270363169210073508340738652616845074824964485974281349364803724261167042668708319250409976153190768557703274217850100064419841242073964001396036015838105659284136845741191027364202741637234882145241013477165296031284086584197879511165115298278146203791398550063999603265912485253084936903131301007999771913622308660110999291428712493885416120380204113401888872196934779044975274542880728035093058287544207551348166609278793535665212556201399882496284787262144323628536765025914504683776352825876521391564809721419296755493843755826002531685363567313792624758780494459441834291727569883762262618463654527434976624111384513054814498363117897844897320767195087841586188796929558197332506999514026015116755297505754378102422389579257865621284327312022007167305740692868693639301867659582513264991459502609170693475194089753574640168308117988464524736189560564794263580705625632811892696630264795359510971276591362331808669215357886078127599105371714022045061860753748663063505914839164676567232057145168861707909846959322367249467375830996070425892204815507991327520885837811176852142693347869218952406226579210436203488529262679840139532164587911515790504605797108389833718640380244175113472264725470107947939969535546696197267632552299146549334996632341859514503609803440922122067125676987234279407088570704742931733291885238967219713539244924261786411886377909628144869178694681775917171506691114800207594320120619696377951032270890295660855622254526026104607361313688690092817210681986185537809820184711541636303262656992834241550236009780464171085255376127289053350455061356841437758544296779770146602943876872251153638011917581540281208182556064854107879335989210644272448986189616294134180012951306836386092941000831366733721530083526962357371753307386533382048421903081864491840937239440334052449095545580164064607615810103017674884750176619086929460987692016912021816882910408707095609514704169211470274133900522533408348128703530310239196999785974139085936054335996970756044601342424536824960987725813110247327985620721265724990034682938868723048955622532044636026398542252584164643242716114198178024825955635449072192265838636626637508359443148776351561457107455280161596770484427141944351832756984075526779264112617652506159652354571879566731709133193587616282559207830801852068901515047133403861003100559148178521103847545429333891884441205179439699701941126951195265649195941899754183932346474242907027188752235343936736336632003072327470374071239825620246626519740901997624520561985576257600087081730832883443818310700545144935458854226785785519153722923795554943334101744201696000906964156127322977702212179518683763590822551288164700219923488640439591530184640047143211863606225270115411222838027785389110984902013427410141215597699654388771974853764311582298385331230717511329619045590079380642766958190148426279912217929479873489018684716765038273285520590829845298062592503521284519259279865935061329619467962523739725655841578537445675589980324054921869628884903325608514553443916602262577755129162007727968526293879375304541810807292858919897153817973434961872329276147478501926114504132748732429705834084711123337462746172746265824153242710593225062553023147387592517247873228814914559156050363345754242337791603749525024930223514819613811625639114156103268449580725082734317659440540982697652693445798634797097431244982719331138638731596363612186234972614095560799206283169994200720548115253533939460768500199098865538614334957816500899616490796781429011483876456821749140756237676184537751440314754112067601607264605568592577993220703373333989163695043466906948284366299800374145276277165476238255461708831898108688068478537055364804693509588180253605297407935386765111950793732820831462689600710751755206144337841145499501364324463281933463890509365457145069008644834401804283633905135781572739733345372842633721740657757710798305175557210367959769018899584941301959995730179012401939086813565855396619413717944876320798688003716073032205474235722668968018821234243918859841689722776521940324932273147936692340048489760590379580946960417542796137825537812239476461478329269765451622902817011004378460387565441517394339600489153188175766505009516974024156447712936566142539493688842305174001299205568542898538979426699567770270891465137368922061044154816621568042198384767308717875902792091759006952734566820265133731115180001814341209626016586298210766635233617740078377834237091526440630540718078433580610729611055500204151316963730468492133568372654003075098290893646120478911147530370498939528334578240828173864413227100029683119402033234564208264732762338302946393789983758365545599193408662350909679611340048670271231765266637107787251118603540375544874186935197336566217723592293967764632515620234875701137957120962377234313702120310049651521119760131764194082034373485128526029133349151250831198028501778557107253731491392157091051309650598859999315608636554774035518981667335358800482146650997414337611827777233519107412175728415925808725913150746060256349037772633739144613770380213183474473011130326702969173350477016321066162278300272692833655840117914194478087482533607144032962522857750098085996090409363126356213281620714534061042241120830100085872642521122624801426475194261843258533867538740547434910727100497542811594660171361225904401589916002298278017960351940800465135347526987776095278399843680869089891978396935321799801391354425527179102253970108106321430485113782914985113819691430434975001899806816444121232733283071928243624067331965546926778511931527751134464689055042481133614349846048490512583456832664415284897139723760403282126602535166939140820499473204860216277597917712347510975024030789357599377150950217516935558270725339118923340702238320775858021371747783787783910152341320984894234596136923404979982793041444631627072147961174569757196812392919137409829258055619552074342432959828989805292333664154192563673806894942014712413405250722040617943552525552250087487900865683145428351677505422948032747830440564385815919526667582829297052261276287110401348017872248017896840524079243605827424674430767216452703134513541676496689012747868010102951338626986497482121186290403376915685762406992963724930972016287072001898354236903641492702369619385473724803298550451120891928798298744678641291594175316756025334353106267452545071141814832398806072971402347255207134907983989823552687239509093656678789923837125789762487559904432288953883773173489411227570714109597900479193010467407504114353817824646307959895556389918847737813413470702467473621120489862269918885174562517325193413520381158633501239130544419100736284475675141610504109735058527620444891909789019843154852805339857778443139338839943104444656692445508859463140817512203313906815965925105468580131338381521764182104334297888261196304431113887962587460902261309008499754303957712432306169062629194039214397402708947776637024881554993224588259790206312574369109463932528062416424768684954553249380176393716156368478598237159023854212658406153672286071317026747401311452610637653833903159219434698176053583803106128878520515469336392410884676320095670897183674905781630851581381619668822220475704375906143380407258538620835651769984267745231958241826836982701602374149383634966293515768540613973427464708996856181701605511048809715548591186171896680259735417054239851355600187203350790609464212711439931960465274240508822253597734815191354385712532585404939460108657937980586201433660788252197178090258173708709164604527279771535099103407364250203863867182205228796944583876529479510486607173902293274554267856697768659399234168341222746630150621553205026553414609952493560508549217565491348309589065361756938176374736441833789742297007035452066631709296075919896277324230902523974438610142630986877339138825186843165010279649114977375828889134503411488659486702154921010843280807834280894172980089832975369406449699031253998639195816014689952208806622854084148642747862819755466292788146216071713818801808405720847158689068369193933818642784545379567192723979723646516675920110579956639625985355127635587681402134098290162968734298507924718460568748283313812591619624761569028759010727331032991406238646083333786382579263023915900035576090324772813388873391780969666014696150317542267511259933155296742133363002229649064809345820081810618021002276645804002782133367585730190113717546727630590443531313190360924890972464279284555499134900051802957070829190525567818899138996251386623193800536113462242946102489540724048571232566288889317221164329478161905548680549434410340906807160880282279596869501336438142682521704728708630101373011552368614169083756757476372397631857570381094433905645644685241830281481079983769185121272019350440418046047216269394457883770901059746932197205581140787759897720720096893822493032368305158626572811146379969831375179376232151112523497343052406221052442343537329056551634066695061658928782187077567941760807129737813351871179316500331555238224877306534441794534153952024244497034101208740721881093882681675120422994049481794494727328947701115741394412284555218284249222406587526891722727806071167540469730080370396187877966948825556146743843925701158295466613586786718976612973112672000729715536130275035561678177654422874421147298816148027052438068176535732755786025058470840132088379328160087690813004924914736825170353822196190390149995234953871059973511434782923394991879366086923013755963685323738067035911442432685615121094042595826393016780171286692392832310576588517140202111969570647998140315056330451415644146231637638099044028162569175764891425697141635984393174332702378123369380430128926263753826677950341693343236075002481757418087503884750949394548962097404854426356371649959499209808842947903636662975260032438563529458447289445471662092974954966168774141208821304770228161164560440072363515811497297392189667373826472047226422212420165601502849713063327958143025160136948255670147809357908896571349261581613469018069650895563101212184918058479227206918716963163300448580201028606578585912699746376617414639341595695395542033146280265189511679380745733157598460861737026878676029436777805002446733913324316698803540732323882818475010516413311895370364884226902704780527424906034920829547550540034571601840725745369381455311753542107265578356154998744474804273234578800618731493415660463529797794550753593047956872093167245365472083816858556060438019770307642460834898761013457093948770029461757920619525492557571090385251714885252656710453498134198033906415298763436954202560802776144219143189213939088345431317696851018401038444723489488695209819435319065065553546173358140455448378847525262539496658699920584176527801253410338964698186424300341467913806190280596078548880107897055169462152287730901044674624979799926271209516847795684825833414022664772108433624375937416105367340419547389641978954253350363018614009515347669614762556518738232924685473569358028960115367917873035531593783630822486151777705415775765617593585120166929431111388635821596676188303261041646517148469793854226216871614001223782137797741312689772667129920259220174087700769562834739322010881593562862819285635718933849588506038531581797606794798408783609759601497334205727046035217906056476032855692762734951822032361441125841824262477120120357763888959743182328278713146080535335744942976217967890345681698895535185044783256163807094769516990862471000197488092050095219436323787197648703392238115403634754886268459561597551937654101150140670012269274743938885899438597302454148010612359080362745852884935632515853843832424932526660875889083187007091002373771065769850564339288543376583425967506537150053335144899082938877373520514593330496265314151413861244379358850709446880454869753581702129084907873478068143663233228194158273456713564431715379678180581958524648400840329099819437817181773023170039897330504953873561162610239994332597801268934326055847102787649010709234438846340117355568659035852449193701810416262085042992586974358170981338940459344719374938776242324098528327622666049423851297094532455862521036008292866497241749191419889661295580767709795947953060131191590117739431042090490794244488685130868444937059090260061206494257447103535476578592427081304106185462198818300906345881870387558562749115873754210646679513464875867715438380185213482819158124625993351601989355951679689328522058247994210345127158771633452229954188396804488355297533612868372259353900792016669413390911687588039888288692160023732573615882071635162713328105181876021048521806755266486739089009071951380586267351243122156916379022773287054108420378415256832887180469879525130732663402785190594173389203585403956770356113293544825856282876106106982297214209619935093313121711878910787668720445488760894101747986471378824621539559333332755620094395804345379197822805903959599274369137937786649409640487778417483364326840262829324062600819080818043909145563519368560630450891422896452199877988493474777291327972660276584016678901364905087411421268619698620441269652829810870454798615595453380212011556469799767857389201862435993267776894540605082188382279098336271671244900267611784982643770330020818445900097172352043319947082420987715144497510170556430295428218196700092025156158441742059336581481349026931115170938722600264586305613256057925609273322655793462808056834439213736884056504343073965740610177793701414246154930707413608054421002956000956635889778992676305177187819437067614982175641865901161608654086353915130392013168057690341725964536923508064174465623515239290504094799531840748621512105618338545661766526063937136588025216662235761322019417013726649660732520107719479312652827633024138051649071745659648537483546691945235803153019691604809946068149040378198297323609300871357607986214254220964190043679054790499300783724215819545354183711293686584305538427176280352791288211293083515756565999447417884383815651484342298587042455924346932952328218035083337262837918302165918361815542171574484657784201343299825945668845582661719790121808494803324487872581837748055222681510113717453684178702802744524429054745182346749195641885512444213377835214238659799259882032870851093383868299065719946149062902574276860388505110326385445404191849588665385450405713236296810691468148478696591668618427567984600418687622980555629630459532279230516167215919686758495236352989357885077460815373214546429847923105116763577494946229525694976603594739624309953433104049942096778838270027144784940690370732491064441516960532565605867787574174721108274357743151940607579835636291433263978122189462874477981198072256467146640548501310096567863148800903037493388753641831651349825466946733161181233648543976493250261795493572043054021829748712511074040116114058999110930624923128131163405492625713567218186289327861388337180285350565035919527414008695109261675414767926680321092374670872136062783329223864136195941213392780361182763241060047409711110481400036233427145144833346416754663546997314947566434236594934968458845515241507563766050866328274247941360628760412906449138285194564026431532258586240431418386695906332450630003922131926476259626915109044576953014440546180378575030366862124622786397527466678701210033929848733750144756003221006223580293437749550320370127384681630610265703008722754629667968808905871276763610662257223522297392064430935243272281008599730951325286306011054979156447918450046180467624089289256809129305929606423570210615246462050232489665939873249339673769520239917608984745718435319366465291258480644801965201628387951894993367592414856261369959453072872545324632915291101287637706055706095313775277518679232921349552451330898679691651290738413021675732386375758200803635757280027544903279530799007994425411087256931880146679355958346764328688769666100973957499678365933978463469599489506104903836474095046952260638580467580730699122904740898791668721171475276447116044019527181695082897335371485309289370463844208932997711258568408466083399340456890267875160087754612679880154658565220612109534907967073655397025761994313766399606060611064069593308281718764260435734253617569437848484952501082664883951597004905983808121052211110919433239511360514464598342107990580820937164645231277040231600721385437234612672609978703856570919985075956346132484601884098501942876879022687345565005191215465440638292538512763176639220509383452043007730170299403626154340013227639109129883278639204123004455516840548898090807791746360924393349126411642400938807463566072623366958427645836982687348158819610585718357674620096505260659292635482914990457683072108932458570737016607173981944850288426039636607460311847862258310565808708703055675958613417007454029656876347741764310517510367328692455585820823720386017817394051751304379948688223200443780431031709210342616749980000730160948145863744887785222730763304953839443453827706087607635420984450083062476302535727810327834617669705442871553153400164970766571959850417481990872014908756860377835919947193433527729472855379257876848323011018593658007172911869676176550537750302930338307064489128114120255061508964110076238245744886551825810581403453201247547232690875475070785776597325428444593530449920700145387489482265564422236963655441942254413382122254774975354946248276805333369832841561386923634433585538684711114304982483989918031654586382893537991305352228334301379533729540162576232280811384994918761441413229337671065634925288145282395062090223578766846501166600973827536604054469416534222390521083145858470355293522199282727605748212660652913855303455497445514703449394868634294596584310241907859236802245607639367841662705185551787029040735573046206396924533077957822459497104201880430001838814290081730394505073427870131244668600927785818110409115117293748736278878749074652855654347488868310641100510230208751077689187815256227352515503795324448577872776170019648537035551676552091193393437628662846198440262952521836785223674751088097815070989784130862458815226609635514018744958369269177990471207264949057372642860052114035812310760066995185361248627467563758962252991164960668765082617341784847893372950567390078786179253514406210453662506404637288156982323175005962610809219552111508593029556549675388626129723399146283584760486276270273097392020014322487075823373549152460856082103288829741839064788699232736913600488374366152235170584377055452108155133612621429118156153017588825735948925071088792621286413924433093837973338678061317952373152667738208580247014335270092438032669517421195076708843263464427491275589077468635821621660427413151702124585860562336314931646469139465624974717419583542186077487110573384584336899396459137406033821593522435947516262391886853078228217639832373061802042465604775279431047961897242995330297924974816840528937910449470045908649918727273454135081019838818646736093925719305119686456018557824502182310658894379865224320506773799661969554724405859224179530068204517953700434724517628935667705084902131077366257516973355274623029430312035962609534235743972496592110106578178261087453188748031874308235736991951563409571627009924449297491054898515196586647401482251063353679497371425102293418825851173719944991150975837461301055050641977215319293548753711916302620303285886585284801935092258757755974252765840117213423236480840271433563675420463751825525249443296570438613878659019657388028684018940876728167141370336617326501205786539157807030887142615190750014925761129276751930967284539711602136063030905422439663206743235827978893323244057791992784846333397777376559018705748068286783479656241461028995084873996929707504327530299728722973279344429886464127253481606037797072982991730292963086958019963124133049393504933254123550710544611825911411164545347103298810478440677801380771314654000993863064812666143308582068113958383191695455582594268957698414288937434670841079463189325391069639557807060212459748982935646135607889834724199794785643620420946134123876131988653523583129968622689486084084566556068769545012744866314050547353517468730098063227804689122468214608067276277084024022661554850240089528916571176174390203375848778429112896232470591918746910420058483261406773337510271956539946971625172483122306339193287079838007484857265161234349332733566644733585564302352808839243482787608861649432893991663992104883078477770480457284914563033532650700295889062659154985094079727675671297950100982294762289618915914415200322838787734851309790810191292672271037788980539641563623641691549857684083984688616843754070651210390625061281076637990479088796747780697384731704752534421563903872012388063236880370179493089549007763315230635483742568166533616066419800301882871237674818983302468363714883092592833759022789425880600872860388591688497306939480205112217663591382515242786700944069423551202015683777788518246700256517085092496237477268136942843500629388144299879053010562173754591826799732177350293689280652100253962688074980926434580116557158867004435039765053234782873273688408635400027406767838219635222265392909398073673913640828987220177767471681181958561337215831190546829360832369761134502817578302029348459829250008956826302712632958662921476531422333517930933879513570953463771836840924444220963193312956203055755173400679737406141621079236334238056468500920371671526425563718538895714164197723874226105966673969971731681694154350952831935564177056686222152179911513556397071433128936575538446483262012064243380169558626985610224606460693307938478588143674070005997697036490192733288261353293631124036506986521606389872502672380874033967443978302582968942568967418643361349794752455262914265228424192430833881035800537870239995421721136865502753413622116931406946695131869281025747959856051450050217159133177516099578655519818861932112821107094422872404424811534060558959583558152320121846058205635926993034788511320686266275887714460359966561084307256965005630644891875994665967728471715395736121081808415472731426617489331341746326623542220726001460127012069346395205644455432916629866607830890681187900908152950636267820756143888157813511346953663038784120923469428687308393204323338727754968052103028215443247233888452153437272501285897476914608083144041258681815400491877722878698018534545370065266556491709154295227567092222174741120627206566229898060328916720687436549482461086973672255474048128892424718543236057534116728507575520571311566979545848873987422281358879858407831350605482905514827852948911219053831956242287194847594078593980479010941940706717644390327307121358873850499936388382055016834027774960702768448802819122206368886368110435695293006521955282615269912716372773884189932871305634646882273982887631986457098363089177864870866761854856800476725526754147428510281458074031529921978145577568436811101853174981670164266478840902626828244482580275320945499151045185177165463118049045679857132575281179136562781581112888165622858760308759749638494352756766121689592614850307853620452745077529506310124803418045840594329260798544356200937080918215239203717906781219922804960697382387433126267303067959439609549571895772179155973005886936468455766760924509060882022122357192545367151918348725874239194108904441159599327600445065562064611646556654875942473692523369559930303550958176261762318495619064948396730020377638743693439998294302091470736189479326927624451865602395590537051289781634554233201149759948962784243274837880327014186769526211809750064051497558896502930048676052080104915378854139094245316917199876289412772211294645682948602814931815602496778879498137772162293594378110044480607976724292762495107841534464291508427645200020427694706980417758322090970202916573472515829046309103590378429775726517208772447409522671663060054697163879431711968734846887381866567512792985750163634113146275304990191356468238043299706957701507893377286580357127909137674208056554936246464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035440282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389998219926725708695732606877497422480202330752518765025596842076069322998858757989889646074438178817008154889522651672283404527721910699141576463948523112679473086580319507645519767562895742888179681209002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550394237209878466804913947344653071407962259728713050307725871487557050258257346686661380235142605611619740554343654869800544487929597028759035225840978268359866644658604569424139072909526624993290297344056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221439000299298160821171704791761450519100813267037521493074056785331110605835291278100739174994919784511291591368110739405517520801963053935074024850955377250036705466516233043042508744232426240463211507899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901923596480704892363697986019828308728422856475235316288279132429552481444750552190967204608068954518171220493032185374062724742151974030576904360268636078079200477623242955182947352202724437633902772139208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284543425785038300009537451829295844046491883868579348396115129716058166574509670367749583666669312188176367964494361713041603724305065848513174926405585519401800518090847521186822461697614924323831948643441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315438958901530382714300192958907414994359289408309707707836287591448403704503861896697581120185231923186865996803858381237032915620757883594878094168820553160512819015264759280757495815456422134145937816705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037214566964440146954517385743415781015861878383927855260939913057025557555906094705149809348777332007279757303824598946680968082222134848587382299928179409082566520958165547247524456674369759447468637633242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931170243712828588263048629888449220741564060714705913740552466575697187021735528724543942771480917936443765063786186132434863579741125852086345992780368879249835436329845768765016506511534500869572123950754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106917187133573168548563128085783443562367095965094994696882066118511808603420282133180124941099150260143545001743273079362511307029825049941799428445114647932915459955590958780762163666859179106543596606525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984076094729838954243393262315323991898185226418083129633354635687482886346561850481063228880559673784456200094146560349928087940511531005758712955257196411150685034077371060438037125957559698594936205847751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862648634368915321809557220445677713736831045807558452961283283260631962972852796667436297480082131862792186904428434263073576070399966943078950814726973025381737569492275179535432615691204059483286094999236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327420558396977382315073499610875876370425556496408685507194225634496673243065625925047458176273328181601701969816654242637876360145303594653845032547667499973734083566513818602515652028363738917101654541488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678644498319642013456683390877594300644248562301212461451169792193963440950808322928129427043659914648274998437594211302041829730841717881309037955854560324717081919530277146579455547554475428443440813938890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536534959479906333454075437181269939983371921848541873597984534893459226851506818266249007802933501265882497422624188535252663670282766249934982948874833106176420842901692305289960897860413006510902817980504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657576558158661140919939486159920915991755334178303334764313163501270539069707932656781241590643428472136023521823674121473312449994433415591527431593168747788253315509277033620290122259779480985539220006452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818363510062146681858509634888708145697672202016799119946241777668890791713686594596072646853881077878300216136827669702622345941873747673353799888440342704680304255169412715873932039844437460454781611305662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045868030090424286168202556214094608790006519109949557081581650582898334073946608445756578063669027284346201858732825292479650528668140850353851983752363745192562279549029055790703028395010485483592983454281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496359420165433309409417719632623411938710516157010179805355167937086029136675698609712412036858381295769530779814136570017476135696698614606849143969957383763169582460251334210807262171360194301808720988855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783454674925830872998544742120644509523324505087743149616655525179716802099172002640937492190756993689633028139164720896358177173555584859270652450486251641954055080134351032338981337830249770182275490638149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850649124350526476606760034444161818640367008377411410109432058895559865867007786367189694408962232137403411359719913313594655368544669236765258901210841377743248219181274784789228726489297003237187345615798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619709831126596014747372533052685371774214655400587392462372761736490519871336806772395257078136068668326139501432950947485159472466752720168431658660880751276858475554118438116901162200555211348448896066825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054253143981845737944948678013461821787593907699960202908396567728784690573640156401504769644899394754147460833991869688927115694234549265124664550779255402810503762203596753055860185649205606287909076945333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085964985796715261701003947549453991769879132354655010640735581699940975624814996744327842920276264418979391815839456270817330158216022551965989876937616401986120746675504886111085572676450705262244613022233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413435543197372985621775307202262947555248304444534043488887858117034134534252235431940787797284676018158322709774518092934219318981581248283265895004070485520609989378390034191416304463916388054965878650137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288559553092555863605215895737511408956490584415677493710585964801431587461449125054925319116465382158519737009328019453032057262845265804604633781663142993307664664653076059054896288872418971606022588261757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117691922085001511673567010195897100179701957812089291096941775436990436820256302405482262540190569650771058157424072149633956036527028333440730575007367456226058464988611510168961218111905847171446106871976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196620168762219134623389376259952702567213862211245898021213050140728890430032253550409586681872413936993819306914874471718664618311194260316166407037731648700186479960024304400324224180940227853330901150988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766768828757868868309297600101197453389833195258861963013291709438581661537417179449631917715431250695985348128568461937766989427745917091880252001274990555940728969659479333167224362156789677696670803522903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375700498853730459639615273462939697495174806269645179301871998678853758141597579931480660855723256837430528276417567005028804048942989958094810353483393414492788592526219241554723199714338508663732092663272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248042288399029787992541851749912963028399072963558857989059331779590876907390564602562353356722155225946883829845288292296627513716242217295467867071584092418408414755758253938524096330205134970474069539956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724819511611987725034456471073851343592735553871246237559819381321423844158192907004638977168388720791636174143249707910965816274642971707287172514274589835689709553462682016908535610894489840710058192030217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993367091210839445350624592243231234827854966037465718801489293794514787054060792457590060121962212392872001721558866634573497140953372115165598575794172441988902616701610161155783431502546032878119842402748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851524488384751361818066710831616556420936927052061189851729261714171443465550870630606355101294940030975916779915842604919712095432270267843265429657240327208871432199964531320258710967716512854966996255269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124144162995126594563979275938038380478262316042432539913285112303224703756194232173304785407857624401329171799297924078339071575798142681686465538294684739920588863165593491986789696284044734496802407709283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445119035099497449397361718157527709378020923666813584163626831926340671418279742134254622070541560005095967404561684045177174795279035325493258912048338574659009678173041600052108893461076875400424197780308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293512392555251021118278857369606027693130146966143344964230211438248370563353279385889526767207668897127443581563208810665014956814355879657690985776590276870745365927636497555344961730807816098710324801379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446898788941882075129222575650914355282887461419509786242752788157156640076372103780319404309584427254926998716923433189002214150311399876526068876156674021019720171960239086108297492763956954115303227546017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765149561444710597196288988815710941517170151811474351364385400511624620213117480079198374970010047136343252328157891135545045337190527506822915618500332846956792622620819044247334036250389279207158596003936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482717601187433564369024350308563130955905525039049273161331173492258464460902453507919018441129932169977045183285358648042855682220873721361649058630325636891308410376021567992702000532235543980465311933977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828581747969417287299031101319267557389798409136425347969494348037770336463495847686298259010347072786121862300198660798778268424593383563891957020685352160321163523006498874460020017041305698536515466875202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135985425357768877493274363451475448864086881803036965243175568830020586077325695971608648541583446843248996307701137134467515693024488548207712413355773230694945806726784523594363150787272815790157307003317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042225953924288816455979657003095714138910693684503626823105398674375324005270153474589332567951494185453780882706345729596216908538353537038141811557381637820903256151986974535764641212549807600515614170729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988286306428544812827513928069470275014816328972731434734852852950460488327167397898156367880478044360210900732072736974934463049973144257156043313369038761810094887312071348271081588985748326585420751007795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451648289675569835893552202017367954807578190950269798127114870343119036311224612829530382051287043092947197459469082102563478899543177152437969621128122450342606639926885213307919637027778044885792057304699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257669507854726034938298133582528178670608512656002268871781125359782933734779141273628418865617592083287944741096970387985473698402545806329483502235939354358748022398976091629625011047393116944910066690723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982872781230113980809386701547488580344563187131960267854879389331620500767526411204439023758334272429869965478636853410284885737025472550236566341868091903838867078790720840361940216467012153483797815183282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211990540758187739439752836414395304424591390317881300418879188711455314826746998705558793104024038888408385068734162507165727418513495208496367095554245043948394804597915622828248378793415272036226336956180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231986802435171993786810036110231256836425607959741057415362829718004649774857371837863903703901539737491165468549971645394161121641761071714540176519056505252066227788312904571969320599024137539598386198260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716793229601564862280851840335235017060858951291222324611783025316362894394607365277133651163164644619909902122492241231516899276785586373631552600250348848781323300191018939961670273141699962651194574263676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515255614118743401804194614139451471287252759239125596443735683397289633126767823491035633296129471910151571431157954909339032614119186547523762472153110207936911584874220582274734320173558507712243796985796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245169998546856221570241759471176995291655021168550010898576193463945590882627077531146577522388463435193765397349848024549760760244030808448901068387869726123709783578245166801171485983679405529046198262165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282960969397681373419770427812130014732867760571940596997927551246171843495698564171287248118346542064231871455182415286763056751311626771773506175112454633879942652912701057899567180572143655791835069177793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515221996582075735131570759236153986394592111558640009880975526105383825689927215847850417460651615113378833609760121148487005560165812492470682568442720454728963094203066504452986462235942260085549915891499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390742309737209162853371768062164469354323179178553058331714208479886303408465726426939557002685760575393478885870946005827232305191081175142349126873365859607998917329289158960018150918163374008060354752000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557821019357136624359908836138598085161564174769460547855400819535306708030896976304529468682332105328782374389441156851762717116363094014799096494563545929501307390036268210073263700823561506912696431833517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772251343193737344123661858694458806401858407314763379294038634043591941987235526301565460805186867606804316084512845916042441326987912538560299159967278766195195053176488313469325736689464438255813910848620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664312235643262628601147489086817159281066872708400820337718692153523526926347226809082598988984002620815217828261122931311820866007099686036540981832680755824776706950410997586143624355216194535302920025466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011255021003884531192365296559946190047484662064234794232967006052900370917557818870819352214687142723527763255989808694872111384598001412384216382782441273654244674883338167971620112886191415401936712909478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065077260250951829536765181182368616944724360783764294762469226319498921964644068316928766161506050813846319415116202577907863071801231159458603896562526554223346234454507394788690268159497513116885143694521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586661022855156485990882095868944436254698679523822686115969910056366082926791533753816066112247869531326158531871763885989377929188902998793879810003697307848959270625410484859315854323395683104239029907026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753374958970107287350127078898048163504567666769320755305184043244610074032167647183608370847506512693070766084982529900031785030585368213951273503863824605642510337775580986464339801718620814266307417259222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738204774162657106574082164996062622749618795334790706598897487177956433406484174564574790692517014949981009535341354890875483632757952240720698629102467170357925144176670388660990698572626058124082533622521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196532038619900511617817133400107057665268991970816920221946470432379535641186606392055860903445706415179778214505472227885298721019785884607004742002846887379584422894997433365627187799172113791616449254132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580502576754040178579585244883117210508927708922727343197382388468730716823024878868858551010807352278140537140652075810727084816726397709873145516264691142328610303693298433030032367616271426406758780673188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642020288573400911495523886510791137149533463976398818394880453007507474037228093682053543049495194833283347007516197900868728543996298157560589163762472306916287111113767608648032375245966493041175394613646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688862972175795173243380278061747049630204249291661917188624335559928209324391944571188632155632016165424705537593869662465633412154101403228699093015913288580883124124288287637387274283803859071029274863335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764145722078592171559140103783202013213383309638077890409572381055882939279637438166068683519505927701951536160172215890428785678482068291944169871819286273082704441630396254713053284388337913374768735826122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979242772181990855627984860561745368447892379690797559455515464685316302446232567403489584546225674485820204245739199425309426422450420268903815015268360241255980759752364816280930489127461511962315461140082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296678632462137991922296145867142248249288064768032108647799410041006003390679275237362546027742960073478803835668752200348245769490845686269605771570191917489226063520812973879744383548328613693956245039297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904558336007973927741092665573923314702590923389065438842235132411538801855923495613993022391964505045036935292701156630515335191864186482344249991927202729534595990630487236080415957600296681211168317236603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014084805435874252617101768185388355755871741542477544977222141926131552526910917556333193232224321852542218272914915981058368970250352281300214119248601424806807975369964777193949068046835528083473276103060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796392228411269794513477300492498786496563679490992913271252897765191817542796280608493237552081536111324033971316550439188796019838213858500077324246177884918758145964264233788979333081948816004011312652563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854360515778716004955788656579706658855104288246636305720777890226677704251268157197953322510763890368197628440286102588053923393294746720240885412764923864476021611626208242129916603622991849237822363009834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007409797210232785395756151283458061654111179267104279905793944971349463289504565128688478418717580205045832838748531373691135102550620102775345809439105001021833973245650472889476879298925945019875076712236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551872080937469424597311728117210519289038963703942357768621276682109318276366498404212493814409795986311422543648396549998347908430702176438555435125743682822815303222238083476795111355701480631820045322072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373010955164150331762820019691641154602682072366925527514184299699205398534330730680573723805041671972211273740507892726634063885068673445856077326664838457802771891147580132310551987841336521851907146068138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458776608807784535718393293719373932364083563375766884682111179935055410208556188490102016005056395416874510822060355541081766646052412496622442280454524321603203601946413560979200195902404979292367329892455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636015761361007722863196388526462351255380773194595635679653823624999265518043307963596211067455285214290262949826567553352731004687886573104724664933265679273313451229550591862329373933260860774513507753090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650517171150827820093278835872259839404630683763181180890442362621998812368268078579526219721668720174551747262781803268305854880397097704793483103543985590784355277667603313988460527150313885633246768892710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649359149783803779649600052124458347790017560424658666519980770288394385163809550430492196032443609034008517466042962743097683871519459826447359402342482110447572911177795877313415536095275957089861258677145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532057540308210145123820902174669757976534751725014658374788480805377351504222240429576036137543248619965589193922050469998210629316096756517907513229607778575533102658584257608668676453552092774827556754517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792327185395398097640485278467438723164329100290654953086128333026640075801296184992070220025559721569575883761687843643467927558635739722535648841330601192895746428093578580811323314331152874821797660397125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496964821331144731667650419767811084909664694257170694570078712640144865224284694889761725674653522050616210730010192624831468212035516995015220073163840041320303332423121670826854689317584366304307843507859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941266795136740458774169455961407626566250299006922672678760365871379327960418488393933934692635434154809518362332331752293703521029146413312752037117166754872063473892329378510729029514462927415467619479427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188064629374835443961440035352331030404117845722890295818058103212374382589870274737040106837777159251264535706508300921479258349892475127453622006105854575997369313529707814374284134055195444672148941505745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631688258105785074635656204791466768055698438455202770996971988980723371486956356703177687763789743273492829343905145567060744607970476931646278121417138182743785614621970880870210642110573778514713588373773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613228576602639388492849598982365657272042635720263748256494949126291419171306462805956698254936032613201925280434617043902892602799314043613702658201213128514881585731117821041310335728887181729526271120008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331099709283155468165639527101046113762540664495861838546389822089967783295501114314995936803982223037136329574232173574464734210974149174364199473195884005263872695923183642325491845595504534377846709470450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531270930795272952211247953149896990808946657476955651243605611420086639905609900038030250612423607750329341347289050131677280971316268349596340929224303119508487886710353352002371273020291659297525265703921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922773853477041779407644100130104859609270721132052318538222744487024332710398781147912754608083611568779215131131045008366363100751751102590028086427715020962713662397401075288445468331618211502789264307297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375873273148909109455374027048118555719905168393874535206797085921189640785489504109405699659887159886336207795504521932156336124685303174705443940294182926355240155452316098682553138970188015397045962501691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763452302986481495441009078835298012070126541095251846066620176742045257367994690771908453787482060802904825167017661982073061833123921935356900407052154989390344659388090475077241695436518580750664904594431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209571888632002475020791023790730729637463263366745942755637845356913673455240148971259094803685662823210050039400731066320752572831471151926332892852069672393471750982952602125494764330195357438350925828311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694828140330839164342486509396354589091328059511163345503656348245191505831794980831827281347950507727173359496633718821491928378711646390356692577994245739435547304493555939684803279020861419681508260648109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457694597535966732006038982629300007612514947980089567124525695598275854857690124636865949422422772717715184964175107159841635720724122437196806720392706478942789421712842641334271183184794413346064724314115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012020538073295825004974459308097824095299129654233184987988007716816319860865120883158672565065944140618446837496318929137459934216034848228831582897309421614736892558516992715531155888876007217034102445874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180313981020762788985174353478225120846759497430024437895842895680752663203627696299460180834941994912706559130840005862656399639110406851041282007153246256426371456355757694528492711263557719632506589654553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439977593853981121332181032819896994579261764935829748373387752352859464035138238230626945363458100319367250206982807384333411752831573143426398964163471270530347756991558003118159180911378802688385475769729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564404065594623837087236888125489491487948734808614168105521140018455170084444842948475507327366428272220633658240174549880829130188391401568090500008495465737300032747797209917507461785951579953202237285235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560035403827828184576694782337457113822121932616729501042706940952026502805228985909350023944908745626205345221731194095778301953605185038549614062182530618203651827337062111989390244889753863581809944918157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126487716059592097445811462955422310022008512052258976477811482703942677666427827462593951174380719861872226558650403002846914692786468003183603463817264057027074226203429718755580993868712404656223338914646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421512791591014606569795333133774095936749326441463702427524539335030130992833648540706984034399121245249275580299798824092066446404258596620088874191649877302754037292042158109378147131362262886666945474212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315215231788501452131321491469868548359447068658501098131420589267641611516210940535678073681008973424587293270521085357267638056422884092966588447779527954671073519329547471301507922084032823220442894467821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141493474043649800024739833209241183866742960926946070141838817811071428243965779638843986478231371542498947258304114514952687242361899676305881682084632743744121039055276521871073556452571336011455804558568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746032824231733853376529898104423224046772463204795179809715760258008857689751340594805482687728847762938464549604027037050853941909276993706680455171941604037635118018551365754510952470346022600207417428238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605949872117634151914882251867043955731001793710004665729218037284879797156922788883970419825456570642890898582795862565990137596875007856985342094439959715236676735599115570900614130188539560069330508261157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537774687098568014236137076370467423618029218679592476977765292629290417983927505343294338447653339850122828362798515026374542796671771484197573390657287154305432157523544932053465375423820484485088463459085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446762529322640845330844938647151561813941363435036481779475509763392559882786903696323863303425794452922923775203287448902004053266813935475285501746453171721459950814556136469252665022711533738181759785579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810392343723135368988915337494937863249849417642814170452840829693991724323286772564150483765773114493352155385230017811082761636303709020525950377909253411047057004656525197792567933141088663264059262317889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677586869202760143980501638714352047767388090057892836338177973884573441001499664332358222579253517110594856078918240152199828522694650958763149247127952016446764740270468954543510306982617999140223407285489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496381502797217307126592057826600278471814003420926569307030904457024596467576490185278139314813150920364104984596906022531447482294570702527043630406111445514222766936650125425237207439401827752508941432915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290527628876878250048505480059732307532652277925524199131596179115220694196854791873415669978109670256299399320816450717417349056433986521998663905570935211985243906798615021448623928438739820187602285471230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174536954301471914199373197227971690211613572625243116472289366644142621243854981362369496357128211603685441607108231775107801298304253814190892249208595364610821395648113205316073707772076055993498150342406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928218161152050464381405120101763279790269327122270125927081630457940869593885030885857777676988057712027746185837281858599701772111603710982739324147197937663864843160008415792725306116408501515001652030020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065817482730718247418272636272404623994402844447364245864447510469029976526749734435698570853905781915995859960967506128309101947488656507512613971363292764158349130420830095085110041407455744378492789857607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663549325311393625597895430009119142674075385925496901579734191837104016999179009456783596285732244714790732045696471978631549086284123332517481278482880984876102210097427834751646279055393851966889569651087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690318955552061127114631467170389157733900654528692327208081115787573749910353244466936165351752212468866080593973805468948675560258870687103081189892202421749529345821953530099156135536073159095673469906992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176423302799589268727305311835580568752761240919742444763356809568748444104546702835236514152765627008043630974774537678098208734980384982599248810670297754949535228299516546559850687428317628520857196139379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886485629471439877956655928074916489625621859267154146921767683960545008216421626056106423144435798230691965780470574714846007296818237228797756049608915817868672936323790241579204728364697021031397518009784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968549119454119347026896505991986041099765321119658106296655005116183651706202928808776091498461673164426864197089230648463056754573887202476016525776085293772109335844538710740272925919152462676235381797869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240048508393702558385910122669483580683915454791660164569148630523935977932446725588671741604855038711490317607553732194472830582219155807880752453696932744601747360524205864696869757706121867761972058749104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357025370064940926380803173746348540361146600048468762423108947237916500745179705248628467276633755173036873683856440370498066179092008317107882104981833155261485053735407503510822393924744563010969204227884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913893213809286961195312209050380181076587488368317882781425278626187966760682197703909326006729615127557125278643706989835444409613917379035454851804039733313748052358791095558304048153480453918785403824323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499458222499419419547256410317502114422808652302802213424093193932727678195990608112598623967339458989619071679777780259511631477576264028588262514815821643994413506196081175890461951158539082613354960388032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746375739464609840856589301848223416149865831503466082186223605801948114554903515474266266061295026878409754779814072682395693147248760982803450811893834040961534314863011248676465315478758454946522227531877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141668619124852526949334829785101811147232987404539612754022221909584405087230662326888849704223456700011949751859796494099148971385362279458874076099043285422812773058183040249451087063369869468674008948109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447239660235477481274941606983510131476402364194914610598055637570446515566712365256828270157445284760220781753972337164096986264920557668761564457744644664925477346729725557053882859078923175970676863982496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225371558783580701611560271775414247233315278135669400989800444582389984200640748958923892389275228914732945531240424775520838052379510123938435858775454999001272068286659998579098429303846007329623842629079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978954642745928669621641542751907207896576567620470876291025929888771283405806131718206887950962735523080228036658853093027046194006144644918627856642449420816210203832761116962244213863973115713011899185316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986281137459279032257848909339768816086708570029953457215794209809972205321457514271541122093988698745628011653320792545519698519103842815726835120109236799524290686799545683083885930136672185211353641724422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408615618924659308440274701471016725471601668601739769199766201111998930155354062817781328238679873988318548093651417526904050273992326953229393103604569842520594710877602232101677467927935625307683377220692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582704745219185656561730561853216604259464553856168837599345327673827887812223153728111341735545170735532082760440774525442307854537481125966546355745960432703685421573869622444796092593675008309891400068538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476349839175392445932931291380807387650050522006666627273438445404989680118343255349997625011921767875580980672332416782617825708911630179808819558379107540118050962160109308042257018054929764678411538769143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228713650729810644525201655173386046865040621292457892714722742676386142682367640851641194766265143710139385568064270077829659680486077517949221215629173867163546498898538357515324974315835413991322136505155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669328386683660726916383696779320102142029046813370491534380592465471149708354012272410065039497421641886692274473689950625289450277718989469132963467585879264235211633546474686426054856131577840361143149026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493371767383523709308856526434484194677345382413296885430630247782554350281959571754332687358317282793377410102634717252580005510899808792042744778385364274972065430922479605721400330661597939815697061366098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301111141092801541228066667058785550927033385009831156762851616492425509292830390877098893494607234902865856020542206703715680463500382605276371082398659793184830936764165636079070660523343411137793121612020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837360845127671800567875423588719510589565279780453783448465046814695167753813695184510308323903749657162143307963860154481614495523935111212189443023826954057860116467373664795652065872508159275305713134383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616265020814903557861244051834404038159913582717384337340452974499964059918656664153561242430800162617933750921429658088283221957057843171697946284551330968382460003698996180592987950660376071243272559753650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369583943808509128411041629096637012742498817616344101667423400506836167648232710388942239482025308696722292524340750602651298857635878137500851005688687432827471873232428984773354258150416258955023854489068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044369735340166287645320637188693821897801573219076299810361256838764838726985360129448160731761865806680596837338941198265008732624266960024090883207622611783999157440210584278984506303601419933928362455402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866123505834896282128608208403497311998810772590454586337661085050958238503075128425964285974947159675425924034955860979643401966466721757237237070785184646638370671702995416983298869124728187680273812549629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800068725136597857958599478019949652342728688988717813516171550577839158713864040578956591823213708140058713808836523047167127182200601860881125726033986240354206752127690892108155226032930044410189063723659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531897521523610342040845076413767423473005882203432316047463304350628142321082948724090259476441189103223374049794740857827762204826182195142821798112437267662584689519510699867374022732300260261505970642152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504139753620550910521974909579986059572694138402426755596748637742930858314066480318445315329081532154943458288044293735568005276670180009478873358860913649494583852689279136559434288174186455594102961792995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077201170421405751029551149137025545335020681411652447691784586943540341187913507194728683338966247610118301700497261895611839898160539092008911727724528273299586808380107378131400187606725012692645464509767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896483552427144875730583032180249452109231991204178629832110645618982345049505439716180303956851265380149225169487847955472418638278627582327821299397820742867554710924982182446861479580814083550046687559626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468531130233549462721418440056323974458753772751807146601657065035375000078000547610036786369911132398586213221822462464343501036322398596701728992842523411315434326293039073595342914413933874282187214841861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881159220534134477675212977463550655110980181145470892170124410634923949242422673834943940786546583638685970026019915416838558615578967012722002322003168619541970289247574216667668015248082402211115619098290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868313324751453159002335440951714914081359273191146192006775792158563310761254707093396116441508800727293945636849253271858915516881472096011415405664003892102811864854595041190055800792839471619967600301877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574346352684749297906578001728766596825621946854107798742184455047104825113899365427994459320244389898513442567266932786132950485170204267041681042398878776628283501931254549510108703766963812060312761799621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567927690390733624859034335147611787051779766471010750245076816165572539548200948091105863173298917531184160364021950346357321959475586008320829267512378849551667250649220720609741203129313574353745218554549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524352586080827553740999721015400800469799279434223454476897075803131490654997645727199699628033269209089155838176032139892644880237691008274209066808004373992504541223684971940977467046731673788785204941656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822955249075885258711407213414016352381199891274778913139757468280934247282311021898430070244399964290644450844788027668653946357835978633014357430738552248011805785516300305948035170230529176193766804489745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845588319718939840420585178312625560990751642566660914485766068367937448065297240370993339629283434833266104136871344725962944171536616832569298746075193490043675487124501251738822895942643220617183770595166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829239976768526059094084769255556032094730179889261822947383468868847877421474782112462900504876162420975722951786073395988696418605399569127426110537996486482728821472986544793727051143103641539950430249248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062432887305740374143132382158355626714275687557551361820191763301086283797258551156741723050471906087361627708326296442958048279756363082376436161545554061698004581964467066781024334784598806924847727489529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138528037814479461864582163474520398558975123171364079746838514559204145005217721229144669927864765201003653978899709419567795422900041438454871434885285565176308029925167644424768218649062151219172342568685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204828296777616016563789757634979554872551080910578133942034727744847487698984192182808563041649260299176230362632250441829629652154385628760703742186814004738630945015910913254210303256135110757558287347865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165945829716486863220484179521964244983279488063134646201089139328705313455615037887692114592726850514677135599589063223865076477828269016803601306170856982886336353398216641166133554804037038210034458380815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207038610563301262376287698173472822425094615318907021508205042181039774894076572149908324785285459510024679597393084110627252254156964938923682735814346077275980334626431259827888944181849173802687044960388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336078948099755916482490625516855367948247405098464960856818891720369987375796439800116529527027723722601935755572023263101476869284762636285189304849269092640985472493648181412831689383283125795662135988355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095885763219926030004685397559802876555831710706399750666047614867776356322611612715224267109673618402529108255244615388577666027796080898302837068778139849238125451717898757790676916513246031087551814796001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278214574384910806626737203981596833114583132775573719396476213947036948713448379653367208865076094944310674893862810166860809354876204062953142683679016223243442162500961919886528250184780750093092989616878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320866152431989177517561330725336906062894401403624673579168612419076797307215389609926091477800392182909660567805157424539481270515827865608617662808876754852826435345792975109103743243148049050997201340093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111791641573964151622345962414387998499723972106259104524266556282960145967901286176415352478643304785581496257111395603251503631837450619425879073297479906540337812932343549647709599415970216918103681473383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414646926617747817386015615569677680806354280813392622226805735860439573916273877143508484770186626531697488864738682430941960189287589120213872770961538488095065653207344205898497856821448109934432714379412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497649479552017171086517069812241608482170721710164948247980774918016666318076045716395251838609582718327208657052982558926649231274050673123487720349779982956094106360305165816819038480111470304239018204575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751995705545072979236662085235078168943400320475437404007621799091881351094993966943134279859921580629270421382675621435340592467202350206425854109685955128295988801679474853488276232260898821426027966949488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097832652921682584330479085478336542697584330779557195200010120787240198813494984438436763827041174210036951169011180168326999466120100860532094157901928897613978403516511159934642044414827682054550634184830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407732247725732201913504568055999785692775430546578798428594684085867841341145382412407206567559826482625761903033834174251848538540384703710069087650808535086402176210101567282914356736771103511643978363440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620787754817839108197321829047879932913960788741768330818653181999406597926782213227134596324714095294630761973967499846349363609758067253661551807859814534953582160148026023317625201506366399391351428775115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730043799349994206586637985787346060480619228119464331562925686710879697123496236406193738811218020737915981801097590801132722578430025011137880349579204391899288300516242921760033764107933719681331920675829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349438431915092146293081995018359167094253026540329803249676158439634711435324714370392214861784382826113866885521598461344505803302636914394174355991753787166688140045296893435198765272300845846550156565989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408898805679580669160658060940485139280102227697615613826083190760332454846528661464942948396677330080707320067510426251414296244714536875097068785066005939402651877861032765470280632572990619689759188738667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752725867071455651423603418198903151954572188621149171034530596578450826186807436497735831757700864758799643227445489500780966711961621513676950853089233612386662834811029398046074355342727244281049032807567670033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677542793161986045430504448510555800411679433767132055814705872720882536047310649679318479637352788447885205873182866006563349325602359088898353777250797020050541440210559461072076492440913633722789739946639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672754845459997871633253310506190240215181468100146512628510397598394128823698621131831524776496795777441913323947985528716530231998698023983984731981788171333103443398908379580000513196534523383390109097044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757766754316869888602865677013500372589696445868683417647387839066544421819235857731078700231917445428714160030268283724049464360347876903573326188114310108132188552798589730345053440330372276915140453182361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677730769946058020640723918086690020175695641759552721135933758979116047598231558725356445682571437465856688982037370549704529071584697376355587060928012017697805329357967838079502279220010520167689887325410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555926786589807098502295373949421754246962535470439547324133924764852103761177731123138500161871304710647783932487585006361991196778775326807139246898440388265936051085465236922261927240349912103831622629724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294895308547919735618116894346944344364303087144425491060982948288158115956356299337794739220978511040672166448032053106709130375948843457873439847370765374740479308090343824433970583053269585629984793830480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866262011761260953213926339182718256327583059118937210691577643838872278422852900912261251408052315081202726247737066716153729796236517171183091817152280526537593373755812823486429693226678471338695988769158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937757985524486960807267305907650248851408147618917999896292907954060691650986275070330910088661199318365347811068950055323212323104099431566975712843211058927290756266529830683461268817435027634457348731308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570605581139989607656842772395481206246549279224664410867393017052678406522475041053604323508688152543821884057815229519878956064995606982745328922732703853758452092709242946673468959337778965806769512859044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587950751036819995860092479405220515488077774998306131379026412827371575710612817362497836474502072277561952126743273581685496119698882583112616695052224021881146693062574953847086995865745998878927868473871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580449442950345318338129078508883338583786977108498206651020627957076698334451779345271803769114102075574774315429329032629532114978826203515987412546422884395277795499289564754347105898585159005508490056969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551094076846979736827481459790404552190484180115456634783353438088153414037239817881907757630647233836848076617187887525444073186583050118647563203017139833900789875424411026277749259455787263151608748702504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033443038680607516077836502789166628360931767596955301493681279793546665239389865492208212613277637898202946799581624398705936239170511750705049392442937122875207210047900369520353054174702688100313142753117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437897233361952936807116294649741746746061619442841957715064212449115406707312213842064141269671545664389159471777969493519583468433678322141303743107342917437343763544159073773807768335545452204160755832450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398368312801101752643186861118351701735867540649265791513740582162972420188375102977202769228078017323536585248661037355246360519741758718234908738197745199604135160468808608272559061048282225757674635819166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967370151347721514257148023878189727890993192321188518040030497628938731198868763397705690319074145176297505582950790551571289772603435467222518751947227775034780629888158027640883058588732114089935625654452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785225355843731269337547937659943069910056990821560314508198864943894886795977365202377638052694955587145427065851747444596468235269410568519337370049144862376065979574374294931376284954237476962984236204040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903294628692150012003317372231594599370244046654644010709546377862736676904564259977586034142337627592585363126437089730757955269968503132069091830679132654203064003148245598623926575975731775912862530894654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623816308550031265168054478855681997310896795755442683922048513091902688240337712017786398604639800256037206069295346015367351300935166490475996904153484422840649464357839627395979697011999599689705500713980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193081404706478740367155552114034070303989072232339159423512652971711214491591287469696454455709228043473384101385887428050725149320183676549865442619068767503039795693902421343747525920284449370703219824095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422170662717787522895393749739449846068819589926057904266324281818832976825708783089016435405464175367797521401491698161349930449104204274172990731837969851312455958606399199659668996108005049400729639709895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621059065843854685352265309940809550686451819643104550056985286403697227264496407220910728050656517590053633194257188261901685209110944462304938727622601300966509801815021611618931499175544866484510193964089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881504881746263214401932459126384677645387821490032187360528840161581467693409724342496695967974551295215247541300383824175967755422515486890349846758461066315941988121179713345250927530701408561426350301527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115348021065850875700255173632568820097595527487122535718255169787531509556908689854648379484303518706149231357340296313652791276152623061043140923956535229749326101802357414494002010757529248895892932458035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767835191012510994437030462907634661496449559967303212585228400681288632060138439153523932091157906047341393629732349275918089423365652609394831336481029064358631183082596587859784715023449078747678799566742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712823393286247731719643862566531455126992223677667770819864349679984152604519464045901639578960492791392910434902756838172684047052298140890671314915262504417545271011235786801298936828493391396383366078142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503174185769799799107895565679960825291655375861223383807006921957963941983742611767676910050735750147104127391778359634794411592416074096491892386416231443150984337999995741238608455687906501796604659040119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300403226370441388424564853196000910240359148604341956718891985856156554657750890144317771286164568621900128459460742160742957104583140046201246390110210193236887462318746390639051846090824746612222586831716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879788904624217590046666091040163622700645067167256329813561916957758561333390398277599652250990403870932789862215954943799706306480709649417708005812270559330916211844004635893785632435864191061540068204787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455894879852873823946192592738300586578623690127192963826592639378195968777634491927813839152734685103171283501167754128969634017633688033476132425006547944835516002423125664608010786702586037609939080045175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142830791854041696667832407095595877094232009415610955534334434913854388408610824862428985961974125657170424006787671236859353722710915670406062194347260204099413954720131755244915834594427491919291350235583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784443759903370271443232078520464193147559475831429194169719062976979044988213080192587590485875701028049890092764667431817419312738798791908667056460174141045183654736392112018312726421352990750753167418604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574664190317973325939240210741676702423535174221182857151618329768142226073090296369487133088077855566632397283342252706565073072518903090395022975145545081413444428165414364410492175062270643628610175717112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835436681313303172332381352647075257795233015289166395286543189995731745780167826728146022264038189956693799484242109824897420088233111400134104409516093083130905465503159555154739774802214624067611052716137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287895767233391108520813799484234715318952612818751089051213546549692460665576734518571774051139809005074932280070940569206554428799289768091385328823923127426496379071979978524909030460958502032813011881918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499819415997508117083997585525312534793070723771948237383367606554185021133373575357116049840886306962649890151155629827792230433349844936783915198562685043252008447985546296912629978831302936306463370450331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722655067873590934057238979378191460803198271139248049794110049229814317594991993103280897957472533768146061745433132644892480370134626426692631734244357427051774756506755634133360059178313763737592038902042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772424505908085892756556434411548443888953213270285605406006435240340117743942638314926942036676773124923344604615279222871174737320682073795040775380702487513973697487220807941836272457926715860587568437382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429923805304609792532175952943764669671785995655479752601048111609001925598770316036928905354642196936179009854720785512572597532576878034184282394193011676471278020013244905417068719406087486425099249004124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816489358140375420413163179662046260168300583584027808425084706102856321467634921644155965653995124411152722520988557631807880862837444395373363866289139439904591869356297993169132074310849123878269670817379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191964164969664205192232229332522498099068094382986082393386867739544526736321944401598659040665286702065100494097867130245089605063631147497897543186327376379320227953001087717684402618218003859090607702934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250701231645954210423036825301549927292304970650068874455290889366465514819384805637455447031971718642272096587063004983436657183030945852528562989254613260790172374623360138208947640472176710210783635306328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900606135442020790080078443591851423810954062463592880074917472326014282915066473564694914907531304041194874612758425172542299337656191322834413615968845123050979229080934778061000120243079336754606956718867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016459422968490216357698460365666770688497906149378958662389785139503019552520711594791624303805713391044123512797717425894997181320899397240945763050438176542023774937292923666640858263563047018894284713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759513255857198868415635114346544492134618362582001773911196356597362091748028951071191193121616150493566140019891540677191474060450200848900785210448984071558724913181424123745314739095859285491926195512752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705975518962282166849472155167994010237260527619206175045604966371707626384595300533444387899443285436630146414207515026765299871484148385924204684351505285892648354129599964190638362225500616202985179080799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781365580083004587905455655237596430899472829415658468980629431127259755469302188791273103530021686422763366103189051108633596398607097473741955293417850780136533786877679115147383325251300237191023587588679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762263196756598977297183942297165227761967340857344413747591477931793339892435994058139603228134659247855875655057515942861161317673955283481508085185207154795143926672875105744138676971890208777611959245935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350370590760938575244000094748229713623772159263083602213915885590946140740697630129708656969066762442186183635520472790353317530936077977879847080239021859587448789607452374905628374741893102680628048174338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098496399831811297188143863954265440828008619305729179956888798818257244092308607770862635131360946309767740997028472766829666854290845405202291900303432247189820499382480607516387279456689408497366651622813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831281254572692763105648258790106857520808063392875136481758375810969559699338484199106269224113656117112954796777812386239349341400854705378458378285151232798730884093735721100458603654544945301868107329376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689239716108751625981364642795191163033917961291900176095322165573491103747120945790041860289922155117591568303624947160865051863227974295613651983035189714287602237507160599904685227028482420257009629938279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730527049024147727564715409237680664165282261122166055190351049532169538299957017411465102998489825164390569909394598682049855258312876445683898434210936589431051140755583849278936997409501389198821247991620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709530844896580056558463095232963187124518366166304277498527362023490678591557693622053472426111253263891430252893766737392628606460991664258399987464743414163952677732246933313408989228213523671609562825134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888480132493025843817701187856663572935398781140646588369417283873657084337575104479912359736597243445574271838473362051640986039310219592121122572034365100139638906494529671420560890861769828831638828382522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689089150061861841892185304164332216949278213392118277190216752020805967262749463002805388777945962185683074384298925646302408906336676064738970496873626773471431934643782695278376028614658389278933623236160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402618390250818502039941310950397081248122107761283245956399564073037842282949417904179913536533706092953580412844901956771743632655873343028440148149907546510328181387821090721433983745415095721808723321639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516567968029585973380361344069307813757301161300265797024265591786343194362646623018687258796305755636607828996953634981452238866007301477187919864160661439080577725519244870708291097673554991120061231753618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480208158304780292913950274218678869198017655546818144544307419110229272193186444074979031725993977136218099711176146890001377240700923484996330832030429732196758278940008466523507115511183481032014483529474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250204083601834811827158553439255537458236282552372625331435969964636667825593382100917598744440271852251290642515745359479613052718959948884782435317225627541310959985044277475352638887118926497707170550220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295190449010574191419981498587900005334896120691631117546825348582900768395376626414520527393607865138057224150689718558277653895215135856589764073014881111337386924588890982276022973395124413507510038725894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574846316439689789627008337630374301756194573890788481042430928552363102983551745174544660652976708199474320599516529159600871565211546129673541395732775167844348486459833913758485625055460175079220988358771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329619640229202289514696881144705828930980357001504103694841705472869227519704469469729203495196976621766414362032109874971729908144000371573928189152840831974229437336774778258709218717225298406930555693522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354059293108901874004957513305645755468645881925344372271704841107604583450525724291768442356100139456682456604288000474072926191657544095336500054458333133334866581972749276001242323822517184689306940857232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239005173464563780362939532778780163604410427591864202516771182359108124947844895488072585512574549607995691801297131720540384249096087363621351310975286209862242624187424357837677291264179188013767520032056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086199644290736157490533034510746792139213935734146937826784053313199235443303460719515520570066100116930106114645564891680500914500556137849404543693134859106184193301895454863852198600808200402863322268577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188006133495909306114071104645992447597175424019965407306540841697352392504156355003902644002922751551910862941367236000269412071278113087636531615224433516226691901231017136295013316980770097670312259233409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054472593770645420643730283814784191021868821846656713832612826378069753098860829066330396698468396246747688511450649131518615524629479248111598731109079771152980588092092858162277065275677719539311203573194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244624556026604086161331997232849787615931712681400404505618966869098470823941370855181326199637688970212415231378187331300156011219956570354141065353563845243965564267272174345053170897086203476547586741281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600294624181015143131869024087493841124215821508373074128337310032226683957690735069881768275484817730499539131031846532783838656267174760018062788758049254008878403927985646496451552789273450200154100313190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493436827327088471684840823065106804984019899661418486821929237124322629328442483023610179839100426990407744799190837610211112396067250719299793136517706731645047986232255197970299256653151015966045966901508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629206052026876752213679668274687758745287607786344913826995634800825441441318253472049480142126543298296784668605437790613389102060765389746783799090419822642829171356980043472466696993015751149537152043740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958378742017115100574265974925332868258662570245837811521822012775760787227875362544176785168184919799494976491000369349095508194502055638112249647967662496507858023271236894462286697963197153902499010991176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163597153748490569452456053125403791760331016534775001998649580583553661420716997411733105525404205521107731858104589461046273558070947146683528783522244243951951095964801933997282254412372911975335233397882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245799131874799529518736756020672433607862783164465504713334255774562203297058370652084614814618032795565723112891379150610787823672417063157427908602758268048328204825305959448653553053355736089436683787788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226267587896126638330684384900580057761373094604324573314159787616555372263016164233534510023746353682989424782425580648076643361805237741563140378933712699900811546084081424058692844640874238912457751936646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888392795004056809668826825267833258753583516005057945853148483777029676183263606491366056471185080491635911181680573568625676757483627962595423144408426869444178084654590010983008324701273276732518629652810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447698291833644325638379834789224992424734734749255855729315186110345341373356722746257827671875512852296157193501863251721759999422779441251276949166596411764533113076783943587557015112683397880778230893276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008831066490683497676288008809713157726433416470525153647177306613927224056325710013972998990955937477305596363485600615984961253518310745042828059910113561527646137187323074054864438709510376239129317441392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301987370587173582180980066938912507662570847465950628991846834694991196205056288100623524340050240751212565976218356834552257668404916525157075841461441328952097009306872902271637056385906105921696945735131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217254044418986403975038451360611100621071808868929053885565380321231977664500797880892291390719718321553376607146881588861466593708021811848640949124415780158696473723909595858031173549396393423239812188385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825214338630608641076491303096303860615612269477567270566164198322661282955940541852670099389441814526699815121965396719051384313536550321313806824245173488947592503124192484175255740381823511390261635537093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312933338786858701558643847212190881311947133708733823275000562399237447717210347921689995870015046980589562365188542682939856667127230583317473946798938791798447572639669972565150933504944962393298941183809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237676601871908356625734394683547048362244546199371292199455216077052265379834751066676946325551156649491168070523052817308690882682380129412541814673058459343581273433407463471098101697337845113700036146661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177368411359915337237318467663405071568966819381035854807990739961345388882685756724350459189974006910447041116287865267920106161324719998448237152334997836375230143135132826955395290108649420581860439615905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268793902227820026173884246389592211392638749541141959433002708467142370681281377822984874389225801960673229557664622256072650083204373463689206974257310148877783281459700550621125297094395513482069706780920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794877109799136259366223493706483705981684191440900869283841758136960770262652637398421792751865585534001802494738842479507635936962516581598005490110797072695324488613743499388440836614685920902013874629297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910594164937166417567650944337465409728901440632813018914386339280633443494240026022881047169997255339395707641070678950590524163290221291761570720281337963064985988232242671029826426454822793271548045876499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300089475751906443642507040115738131779480959953392691557988400547828953652395636741657296488046346305736737117215809990209894453733255406649244555657047977207914581230450618880669347731611549213528598081110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040317536981729101193027421648744601861963215944684538075570987221296475842610580437101441448910748813376672138354541424787136666538718207128484761707002802307713986200152328528467498051716009417700848306078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119211999009122153965563172633298735935838666500189702103768105655391258112742565036589214291019193567740079666127138230714081882841864932545670050478902357998346296652053903452672297367971122296475763842795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078089623831168239465051168547086261364021782044527622621850946877145846667658899947937102845702785828864945578192102470884098054884049428920275863251351203276836916550933375756877423110361610668383215808025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951422463758912011361597998438034553898743686379416430030513037889583127924845498683990658600640789933528127851940984016719729727069932213390718420955178247520680268463616539771651234574340304432466147817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290354428397379232513895550640142391307665467538114524402470683765280641424872089134513796385999449351608677107460143274772385102847494666363346194172301607736297628897725128300258084687726530151682029250873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727034894392366484590024597949473948604166711335717028120922680527815688335313264331759029946538574852184710972047718248056721561923131996627637828206706279778643822558087274035538875576372258299905067359154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822025070893530843523458081507195695889241260528757183964963055076628600911167261753007281738884588123735985372692992626426660021729769040932291664578008028615731050138340599605215180202337467493294109576913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052586878544570222146208736858727966414530176263354155887940590732122253946707378265467560810746496041804339579538721133064646799286122948571393385632976161785089115582766119790233799986635770474963796822399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724179827100082933191371419288771409898637054627113614217060316038877158734107562660346260346932057574636326530612059614741096786436632812848924621727699060440035648313727017184326110762869070629628767824833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918293598889124812904849996547644596555459515319230198673421439626905245337463449860371792720542796816889295558794575534131465881283310245574792805020086669571693957780153414390677074688444371997229473142096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472417092407944822081957934969811552492557325408808831648195199484925188597971817916507188649753536943195763660262426172292425480056059572174815355934092538283243334477794234508946594682954801561640088402355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966453592077279387939270095466014610509180273269755513571365490940517098691433383437353862239566253167050813221234673687814427618547883058500581078515556788076939732421220873066182620090830504150607987867207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189308463418418513775869421385970025192357210352359781475656283700649893580619427747837673671656860440124253539425460837473462224960829827247240218753734151044388427140893032903966317059852727435757224919804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684963362317735446303933793489237958382338014835246620707688841775646825727171361914835528944036115796246825347099957785414816484667357356113380319206582213549678296294583794899259090657150858589924036877724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812657418887926717804023857800559852923256156882467651635904834058800448384582302419984176242039750282144203323781364695612918160908807052269274478502357943715614285496103309997013947721460617450078824754170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246243759854001837266087383264712072554491306433644995100194782544525542561198544468963386192334108861190236636252006167177340726844487670870786339928851878574886890695595205756080655359723625548665768065997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367659351899510821050854558659024045243950149586570975168801772980081992225972528916152832643287133019120720262250559930210552005936427206720674365808195919838946862415075380275165662282604255844872369634231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127548150940351270138170794870400279463643368842771692401282640444753830021680605559739911153275674304250791689664936534610664903033926454798262450752752970355117029389549392605026116732805080636191135041503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657568583799428685543148848459878043199371078484089337419779080033863696659632700048007534107331302869582860135928766135088569413072689527062211944465709013500028507817008173296936069944780801165089977469838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606611191124996043119748730035578467538558093194053656414387240871593070280022336202403420926692484103654139246032528151391060258069008679246947846415137742530490811333748592565903252108437870583690180305933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852444325775264579036182680360526238789966875626868457587113494826170278726420774053277917839660593024680537612528783622421631814764204764333456586924291561946174147929303267274533198796275905105825564390641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184050164998438612807378871881675478875650566319631976730470586489462404594926976645328510919874433735121566448881451325097829979985682830183029271812658757997491525942142606638449347618236694361301000778347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591191912573029628757699866983060284505512542557781304919657353708109753889805144982819585172096328879249759668785855762687283638577142823352346656795892694854891954487424195222854027581013272572588484604654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757916288363148490647791455348726575585011194226486996243910900959484219505011828545702189874103457183898179048636464908296777315083677699733551507417008122025805388524519536398345318761778123182923384516149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403239799144070248817343433029272571092865738989424064956181090979765498511842477113390072880929901630186941142126117034372249667476682598881833777489153001358002314602426047205527579931989940964316114429852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388459563596685293612599124572928376935749499600063745405102933125235371942115650133154753736280907142815773185118592763310014484781157730515727741163632176299555971064374278716404082983071046305419155993714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598915782488050412070590464407322768848308743534512264547062694097544451369757257089150573023242573567272108516847067390111372101828058046032247916600738326914541593198292432543374648604963396534224817293832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582911338815739432277101561962477635519024021712746862782472197996762662900919176955643810538569264018591476166954319407769348965559060313034157909445519756029662487545487909111753269937093712638067225675146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250616572973797480750029723392190975012204947494170065939296729602873876719522255063086438503602286418437662400917471903283390839953674746861310109327545085370103248816456357548955860367991893611297876190835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908632729003478722237659894186318952339757526448262322846781474167839417587877928413411223019880554837191966208599311296978303388651675854462279134053844760839423555344903316330001247579965276168526319453293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144729732605821321486152801009727680151040298965202063860686004598161428523749991208520934729230797735030153390597764783428907474877815173481573626882872884730960864188664530329476007533093585380277049260073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080829559047506576584568604989519869930506625060170970783298760630468160095210972977875136018632054589557818005958757171911723235091578713751539912551505260695947605933157635090917977332083361368071945515640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426072791995525107455130424433833640549397003333713488002997859465754494276518303412111970210299873361991177647930047649326491521909917772362558052712725779928418622127220259472957836424156951838904261862931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179754496131220872848373883319385740201890828176785029850526215633527508339394101455547212563763685464079094647653816550805001796737374314099089474841691430065081182103990094191714290554428743486917780828412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729595961387100715792147218370758041500544134986004929074996989379034881020827925069300574236017467712639825044479879477551383688753888207757212063531958650030083910654471490754927971155721846090155394573325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871837399996196829326612241217067713397137880925201702623014717820800639162135982052973855055582095940333264708915619555223566380626412574791346382537492599128801431261443620117181006104722585841850028634156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458174055622180102965869545542962321362680851935845002587357305866651956174463718111344775636102931642292999771284847399247914997524697574616765240133398871189935029199507259403541776788784275863173386202123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190411493162347872763662759215456841070241740529792569429819149817406395271447869051184234337195592612319193757906211785809093205884794836305795612156010565182075216489529364750499783642596878804760925999701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712137553712549498364613219105479011950805481637782317553188054048344745682348295528213063830359546479755313386037131657640783340885935945737671967408625251809781817880369860116613883471299915377112383415452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618234925304365477918872773039577291667603598906829849792753264457930205625004198215817833679758324582016703344016375194361307936066877060596155074581873007405885541857077712937653954611123552017737452675365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529608607344805531229553356882145671180576047588419420583496338454216537702022628873203281426271924191134698071535062364060488010610176139643065506664667145977479275127501313346596764639606994405703118605608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671964767833012638465080880428311109850255466129686185565035001236106852974356644656198492092110126637583119546240112661948930083828438659999992833337948765982135588393330975965394351687477025420380520337338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860389204692057392137396597629342661799387598861055713847390158695380014400337739425963524869263689609087053952625109612729088737679822241074767848829902625921417206513544327199164599833303338205097023670379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475856566862618691377693236555385533736640181142604011712634532053725124468808392504553806425476628093450603910861511948831424647739359453611346263253979030531061551540475704318358069888911685088278357540626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269701690562668719926815848335174102410950604976133322103046832009316294819666417866410892596335403862924130152476404151953276182470723527897727695774543149145720405417995318578837498108505057157671110581585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274740449837985964755841334894107426083336152120775019298015129465672084211550763881645988966176464369760328924324510530298250512242680703731212808393512202255408415132029479998057513768649336556761678499471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019656148112453886271654233428875619797920485573019299975004175881862203550843526937422418347754235756053467255495615418988381785602926769085061313659528803917355560245687971772310603217457604975950232256294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547595952532130478006326107107680832162100145794640977692680069139071937272531922852627428957389504137685477459296033592272625266668352170703189496282724565284582414254606303728040777479798854129463539799924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320471690415376867800192930506366957785508855054236989012229808779126706105235629735806022201829431580735552190937586577473626473699288881279782933393499869773523241375993155463631192982070653727478607258997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292236982590464309339788165229985971114388791916811255637498313161109319061156325528926120586515985149397612705562408767671406059062759367897286320465589407531927159129511701844375575853523697820603460308111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689463887385553138636824336997598597061645706267041304591264372849891483568904556090934810115809231807301845998408799090461574931098614313315919784060635683188419505707596210326850840753951104607136774315063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222592225911315687185512988438399771818481775752765286872747867997560955981443326979802322469251748008480437354026738684446482509456837198696619833088985878352579323281004784980000165924072903146602815056472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613489722639790211988963444866201881902957692950434647230578452652005806799064539004955427487396033311151334342323939281539285755241892542753368993670767360327076953407153977831769329985800290247380912222702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178211544073283084095822937176862803685645159152570329027569036857129883127811874734596074173100978847315628386494861931043501661812266303769593726764588538380943049453023030268014210975502503890721484246009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517074454770653839619602834310285238409133872378563979536825788370583048947266348134821317190888339633672412315363972952037995614054202652355733182260536030151610767270161366775347202108995240601901907310716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757640208556243114944537254595680970256475764244423090474070144938720093148556612673864189942549493136310475961893303490949930728432409009866042964776416063621289476951726567416922104126791976202629175585305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088099429075130067286149727378504160015538097278691011653816376029956001998756771052874341796486349487590228434508102484523242850619456464928288338024674531436007665393932531690693471534111025909155950980999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687191594786448216907197188279045374175897865653963543641749642113833239127266085382956774626422043748613750869656038144115446781746318241578012548976258024056722181651902552564665510417840313993155273497012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015604832529324660590007467538289113588769660502304327546441577272041355353431069230209904095882802842492545660922550473678663353597767011475477937895122163950391748837006069208321431310565114032165914971605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458542671276811026007996977327310910874040713888398593020568547705681283700324106099488089120372337515691677129447677010573628517526922673867332490411057618836343343739931740573619353690777058069918700110387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561280761354315839479796503645798442252939980325213460972862269536267247076289971779632763346141120704154148305304401967545816235986063466572733057403342467568253998855700384203956509771995410026837628297511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122979203137211031512057869458182420174183205651511753381284579981732961300097228591130828209090533147601196781850383675303470470005787483609975909091296303441827655051198429426117421250174531088376152772103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137185342463058517707443432161316913045445620729557791498890485478502949425186992301564204823672996782085432770817139937297136472855162369102809439490498095711147987353263361086154490921362107195786271826589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559547566993684235624999792277233328567847862452694981303829576715883682539034846167149680141385991940555979179178582819757848123724780229627342713273807017121315934540225441686146416206418549556220175802717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284222126288743972398792999872217126802442695704364082691751239472885809766317352190347740207830108250082306867481659929162142043785596907008396343174915704007049111330970230468766158574831350801444759928520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762756866162211863675611345401850612301450506414647662002547937273701691150910570058805838552877515535683461355508881431374498563637773694334730779223692023281951260198833485319308413912969210345115664615581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237805646976435268613067747611615640308898107229900613620291385538646836842458354434207249065269431319263630645579191032817462246523050868114539223790346999357618192283841178311127342660931717160547230274858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611002107616405466145328261330250989929553919275962994627826326321165658743195517335942787247995482872278107931497771103534255438166350502182004755984571947076429678271587726848362361118065924451595282915230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632172593979270182677659278790726975958652444479862784876695394914610177605776036071107508660345575557129623454066377584487731406580502181444145701216138894429425430127261439960397515488096841753887787099771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515861921683583853720551718196699002906225244297196477607657921208349979814831084253380066460564654628441059597587010538378376695134144117115765801529197239328318237419072418270556211429248125950086219348254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650133033647595971329458356905875969705836598402375264559514284152743093476002848059737445115482304008577453819441423549187838092922978318441402238443611232216885056243354185884325115447206432849620845632811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879880682998086123949763295104635913382691252518794669450894153964933273454972994489836299473991754744164719717317798726839436024010521661014981526554162540385451779521584002495879879741049524800475355816454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659777819507522588829870247890096406531852047423769523893355012184785996600740896503838595147018040723457768783856075809561645339216884897542598305991753761013232063543253442404886000030908226190037306341848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670579264414090854374014853045902503716963747745860719140542569438156117014437888441888309159229271920358412987162286685053246038943565002307341670837518645953680252758240520923744676573351270601601170349080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197363493677111426543048470811333032318663398550949431439748048407876477678327705348801596714101698443566978084548780518231995756407397883177027113564392420445203330076097643679699900409585495562013135848058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772171306420425326555361143239078820350945377075084348892301020693648517284976129383325793163280402402366224770735848850558619602148189507568896146498647108584644537329496552333726418838326212711782724069322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056421803074943611078136138968220487736518566702091978710942722765034706338508550084211709404050825699245756282826278137513327080529455232216084540576543785400717990812768836695374975228640671461534564901126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509057949181869154204951481895063313672323360017919244397594016416771983594510693427217293483713315270825228587814764495406616826606632817385906468170848098019563095401910023030383772107483227813901168208258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965727049696689190976787295678568374918266228075947073087639094291791846467289893503816657160323834130048221490735573101147560439107642307049971417179272249889362511853771844565361124353668033415834710999978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252604805038222965665856445463817257872024223930603167450160539775516554246030743256914538414066770009334817262533785783695496880181971420758304790250454493294344080654706966709208196687180957451822379033311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611160465752035096499203009430633851515570103965436156004250209175408368025107569627240540070613073914839978215497526962006777174612537517747408077042146949807246566921031380365590139144631933785249560765128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279304364168449130901482297794441453977670005047645453944199744253400902206497079506577866762562579041678795171932282160484279042228145745555525850110505111853205128248170449340850065111058596796611348054315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589338646984470972207292044160017446457448578988521913325497133025482098021992094686705513088504112321598940306060776407088621530225283963061061498449297470451281206439250952683933163016535406892928056518715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992107533852137685218992027547637515508803238203451410449033687861055113974555644534413352805893314950724154536504253686358765114645577638528618422250037354433860841945720257808362467051613544121936052124926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407409479489447795731660962302173239728840260162155089907451024629671836859160378905981635743926672782950299181795702806863651012454451544131814296541845245197887305202002880204338955209521262425068207362516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044783670045129262032590728447007071826463942993971057965049240272151309090201632257892936466206907911418909170955485858170999693984582418886230434638646853709469201908664425001423704907060547944016363622448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104122943958528812429031638189391182936404756748013200548377764224130832273379016805513456118786526378739084602983248449677767652671446090984272409221944208729050777247422712849199862752884095453612244260812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391829646892424390835898304107786122216466741392745808441093446709140768890811548042699046447661790370691318643164487293481162475314270947951218371189543080160613686742330865206856839261480478445664749457483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355136365953790577450863465841837937855021385507306606203236189202653437965542409138866780517648660235568680102444381998217408186830806326579344501366069588311635276590196371091221683021799431781781159756256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297425641352377071326558656729260935213135632697386334513923237949127274160440716533283727666360699207828988515818900740681788356003383955024910544219136949438402592897576804164798738875441907101007388250260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067710747813296611251424440942546205865605638648411769737650932223200581373898885989302233630809521934265228150675306773116834992003074978449533317392356287724988901104982913538099432346738706479293918382984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237690155181489566802645106695566763562703316375504282184693552607931286771716300815229705250139944041110995237587821689870722832415540437859493648816597106019417011177530819779600610206107580954184382263771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972911690969621167408247163145189174736006959669914230808783383786865901598670223214286915701414248070458972191054200479042072618389456591675766243374816523343101319777787506264814478962379685449183339325445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875884515562844310131560990894615878405840038361454306275028384345168367939943115519406723368803326183813019065159316862019183963643881182869704116494587694221136576981495173186043944768192239400670145512792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597311154802352914726755652853961549825173221870281189147558219251097518814749962701832012386646655447096270322119673520668256883487375964507251207969145168739639987295089292861505745093918352489864171151563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508410799564473572362115138442605911878523611115766746246167605894908847321882511881891653729413018475636508362290409687727075906307595173734465381235816720569986154493374413551158082859997972507000542569584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927635897397491510336102944854875541265945883082627308729741581359987850589708156429324159565205722438860158420781047504262811290442552635054829661343198347557885193222267186930364566727102649599400511663086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999513745019352661423522551418680551040050214387677859299011085925186749913131450008725837116693698249769940841616062428406308332897997161870505765196240492431659995151896649754750390011473989031896878326455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427044772212502661923714235626092912260182505837318119710390751753385771378077621317724528794791583171484322731473506837177881579852023035280059999869776669370082267088042043304271761036044360211957405318323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947034049890117240314562707007085891355513065947483050109267533105047676685100687279532443236896493872434914018868580217669706551588502561741520703150927265145873588577166907411895667629416813405784240677338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785735111056397494733570817580632987076680342130966827261284795060436152654421703635540658329019547411263216179414368623878244681088510060879820657196947315316887276558292548410060026288708470726414636981454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080104082416246439862858027535254054148117877257844982440121535808832631115767938834439941674255267181270687048579050017001882766115402598966456382269528408612570000031201513414621462743588188113752159623550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161006308157139473475716433100288572011561747191922667719543692831282660439606992546372196029142537779739831674438120809721881883123622660338707532678942538559169182977283327312615508417484951235989157986019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167037928656376695698547963744374046951440475248627476738025589674084963027253885817383209577772704426596764502346241958872573593386155268081204775136402786059671489936812371201186212349054817129245481543023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935003344619768841879030415959515392641119654647748208496035361889457612204857186264614323274971918808584172165024925561228486704440794528091825391444698761813663319439606463782245081613817787292827839764859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154620073250130237057212162666252200530396135167883101300856801679877138600808744144960859610304104119748536983111367107082479747419717080824301691666177077131276333136381545315891337525416839840847864317750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614974171219255019925474796004846006334598186460801159374470373166319535189087920564810728118777240203974402460212973911013499269664898978223364655365129497329341543406894694337381826637786050347493433270290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446872335724917904765480775103923736396185466753334959708917470501031396943809023634045799030707248529632851430888786688074249816358563633931419476252306615252056589630703714209157446786673768335155822444226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731613098646213937953087094716536125650803315785044573000094141394600147452544140381692099336041159658380050630368254566308062825009488020034180021455841755463480187653567764411516477104384366900853706116905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085266296774031025947302259177682013259107773158578447731207588645093398775618726625393836235757625158805620309231213866578072162611618127003756053446226349498386252566652422923443651396972082378259957626108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464051115111499664462619843390057925463539496228889243623252186402524810490595955408365028689357489054200091253386743431340734226519599814488762644831855273277494122878561306225821878120011628573521338086043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727823763964923211904205643849172556431873441622962006044719016116127860806915970507233831799024001062116474775843902375746789131695701182264621770289457119136412685871868635824932717465627067280751367431597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213270068168740231366194833250104464856464603641253174133332379607567293733052122974579333525661685589200437596251342030638342943060971584740953801974115495300102821650559592594591948533482273271554448735213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031401466774251976476204616693113326045387896451657290843861519443114016151423070224716393990100437906864103416236790741850646376825660389550334773489673113343136294285431488760312473133541967098000845264274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455207287218738180679105816290748701076736965216687344878743827719973271864925542480668423833027410696091855007115354892417444079433704231825456068386702420523393305803173064778859332292996554662168705712818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871715385266941479317328935458449531502185930086689117971366494924105395301740136078588915471340850039768036453811115720861295639470964557427082387312687498873097059005337318346168969341709300000861680278005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946674448852792346410372473341353383902594807739551764067414764658014533037551258783915206002730545980582800834158675087820218298029124179773152353857706406771166845213368665010906443991846647291438415228435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300292126234234712852108395421664911751887684890160163507949908725145944284090769519699618037712827929233063139463215096579366488528671853658985428232404638733828178481530209203088315697267343925583364321632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219665499051404499949051322758329020397338902854257513664074283771983895137584603568593319676365422978795979675682839983101815254236665985727858888680648518945970716203467370351680456789741083210206877691531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678565179494942531798989854558463511016629241506701611762219757292557732222995795702695142731341258703602132593747642947677233855393949608034943296308145907993381594311461023743648260905274892609114997817599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389990509144288059316961768257728559277785548891224880886696290222200907105319867273320350125608327618654686069004612176551141034532831271204435229510016794790313350534253556783869192234312490521332794361256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498646907616443895752343566506497982594152503242632552944116596940559895866507612153399297486410528083098879197123728761697290730295301586338095431940182026691046931393035266362835832196293419502205582156281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251894677691474206491390247315240473922375703568331255397444736369775913101672485564252270498558713299184758438211851524915321086608709389477465558909768150090915524531843711016797043942272006065934727864923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735536565531782787898770454849256568315404843368663589348279115378499601462943301785359189222687135602115638066888736024524286151770771110671285143971739462566840777072585891951865720028302687827488064624862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905100821796236567014770564590274789801810063095188896213790376936533729872681282088478870106308255415850421334101495828542771806949463381388168245190344480504922435510003314142920894225768313480195104195395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866447118087603253007087453508535754908948331667080132534824971180676522815802360708233390414281170229413525360033063302611245516864922753389765333275088373087354659141118979834197708121109080471374423563241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083076212995729056463332797905608736019668380684152160053409822871768205430304948296407143779589677891785265134420901479656996958603321761028398322325242090918749756952825023624449423568735010347018741990530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455688966949036381979374684658665340679559719446297756316458243438624037934898047300575709839515821613921444041889422681665534895414328206155392681993338132341431398790872065564411761005197910307921159446412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375865331093474102684608835101765523297927925886429690577225713908291190907196417085384594544335991896296182581379576619525337770939593093755869597915058546959060081600343557079220572841848585599616477156190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368235759477584893907965398613200977738878389002306649650673186526505682839582196258033807020970898871414621585654426237525431393842532127573407453319116295517118791369927035391723508149986623779442841884334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323470990717464054024073987653076499928272555573339710224468522819744063567415442339895224040425483397695537147315990391151995816094959851210374536599442439645586621895120731402017735567818531957450015913861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361039723374601999153889315730285882691609204948845413009226258837771404879655160155435937451107898471808847009606077890762206936840737849633609634250958470825725633681267006429102982227999157619394123050106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843231533917193569137898919660667127709734322808251984750619540620344933307037842679837994177188238477857304923986255856611633528615279571343531452481039163835170550778772229762397920840708871158662399192331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412256541799994252084728832820347685848972552574718194114111004174156679999964197532840324093311906319210471346702337851518168229866134384617955922289227272479295126971190232496391380440439957405009271208186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186337903961142713096570463860917634603875681169616742477001757012096224159952976060385348857001481403137001128029694543163723511250880211913858542622105689948995183018091417190615926369347364953071541759066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557482311908831910313193929933455923134282290824495258005239231203546840959181180376700411041242952060041674976055582275384027855722899442909707922037347988086735001702235402887074872415687791506214652489173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321971370162499437607223256132787424937777858926933033596401621334413649840271139133842747075776954377860117566491086194270718291744124265444598136378594344020432286589754638643482729148367579090612462084323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591809925988629697792589137470528577954613032054330367752203355085505264185246835194929346835243286029416899457532838210307005971426445390140901802991823336647440778847072021623062385605597582213448377296299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831494520463340131479318752237377806414495657562106053033737363146674997142819907423970558598153503666209046505844835829037062788217951701095497639603291046554060692645863021268740270333376287090086360775717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858888883525408594227691776828812075617943969011907566345241700616320081014184753329081130030931097586770730363184254529334530976661529175236632365647421690422806169751560533305992507917682502236464599957033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496276071999299976515689850478820851909803573311574154465550052413149012439899507673779114797142127666155536570002998064352235855946334029151965574477372577452551736846772411482287637268001963584486242603798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411648192666718497525267073658399302540061886594630044259349864218873674667791401028992193519034198473257602258531948483933820611464807036489978670865314053173481514324651853400564085301928990763601600914076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018328788122865526149448724335598640670553488667642160769960153550823282418270715618196314343109296280405256938017210064387456093585636653375409615209936844109006423455594967899258652717374982980371763864415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053063939224651764328196320044478643107106451818292490155470746630136658502775050796766694470923111695074284579269198646547968976985744247120250261993627690491868938537969774824130205607630433892247367574753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337526304802632494216545565767197675193472054649944251600989150852653750800251075605432655377272342230719696794527224661597386602174168903912272254713382591553228452515226694697281730317552536710851911358876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078920780385412037602063411955394534694669493091620795819911659307574198269298778666503659082585310210717015018441367529138484739081922356470866562195031986519855569037476710947140876135315487181593027818838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269424932724336812520246015715348610440607590563320374178837147535214395727778827463861841608721343254982369004837382182638400925102155997628249241483239110024692789253625384807769987524168277515798144534559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168278104224664184881377491637758235307175109336365159207832028507487817732945679572288027029253303930356296096550908111234599045006409831462600113397660037298133881316144986246073840041038738952334677015604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592042481953288367840363878995631933216318317783975299193755242196596089650655373940446089822896508308860509089024965126472119109692294038660590913782666359794484078326763625443829738263161238512713588318951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593608209053046464560549835109037784779087651974600057493782685696226892365647368966400237614213914040885302285301422924022934239184746072891824401584031619657037005116503748328361213051792767920294958449610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947935134304701498533163414882724147087051137221073263781677079570424435254240265878491032309944218504765710476292622152637991177350294554041471979736189391641364679582508105253622100956730870705995351102328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515202350965822051323495188128809741701382800727749270607384295786765456512232806960187359279384225029823945265456615376890950037612041625651830107353700390702915020475371427789436880591732030271185778991766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784277975277486959058290178435317038641967791407650481298094383876881163359953474978349632584042566556488352302309715263896108526328413993551737005570157924331455713392635064912691032874574336801684708832101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854423119407426391419957370081936863243954288891892159073355711777251658869544944649051569573242236049429106113988187879781456923008256816350893376885360878491509761407672722017652632700630404298829853236041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933173290841634035522164741041543526137582181818791279065282108056644581700818846212095327641882361937393715845416545004613763475572691672524761025578021119822121916167692479946814851022110835468697760470650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570531623439857465121125566976159579416550043092783958064367856201761093695343227442032372778292126410727927331538805426571871952314614760851241207116214537070523460987352852535263985551737598862152283252706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485163686764908868591045268078730621605021495859193782271492653332286096853650503986140379957839323592680910778905485558610885924282242259277447736511781827001981388531607305680336579676271784577742916999791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144321086327430762953464830106029176031739831629885580769714433956772901529479249489257305310362880929885710977420343390389424177496084967853115875752446072106263522179995794483282496498179688087770356049069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882384355023971353564767531284887511145584394413075616690802194047054025092561638873057995935710070954215242402389738661449843026964361569759383503580008652520663448232509342891281594682468813110767064807271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944750478626722735707695371489726486013628080150844226326597221147118721715445818774261586970793886955923103553477448442710277279181265419391255476048443180934367966463340428283327337418506298654994600120905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644918856489681633355195066000928843332524806735584171337496171505509342637189402325303542599384394187718742088145543543561643034891031481520576588694447827064491099533521284325191049124690543217380510679418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654974893135060329360744818149989820111827492778152011324046430383400093022310805472595975512167467066592294443857107582935686515980117901994804535824717234503017639891490221449489021601986841517587379191682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004664802602247079596073112347087019012293963842199250887685371119985433129372429484757883611517408335843753310906659427013258032954398152692068105480421552102479651145454331971153057409954937838369320017065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941078600530148540321252825322327251732324935578822659395950837334009505984530084486154937608307729323697805390206948984365228679285807815810808580649532633173056468160917851471254000880722579371359859196020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567447997044184815439560470233784356812676177157987374873165244588210016410619287671529519773096125795040132799512512304460717376533044348897583775022006741467780169732280054567344994253724138458236775963995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248382941924743192355842676350731985803030153430748618243783252279335799383568537811327556538647300247674306723758445557066433223967058378975019401109845845303120397416081495286336512248395115142651395213619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611457917148344582054822959711665470211362772824935407946290706014037201690357789239932630327260725450600403646050283809296100760006762109358216154880968279818045908769907558279711149674858710365979817790055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778655943306224849127897875450813558000955361863224778945578216728582156558348574169205578223436150325355191306945196005289498694046865586452883932391961240439959477905755435190582258127024682573216026993531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083126261297689522140371213333713736365700974961114679547389402162548668414635249814865684371299325661036903209843245244363745789283274532540101378735460870857849153391330184879650215888109299037143501149621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466812992334259466707617776755886208012614126146408861560637038675646128881437886181688406921057373100714712755602825523846104942873199498380141927494375100694790609597627570407425605279204037351322564372053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818061639387154774919753504932179174320668434092062017580847783051887549612442395201189649070476601860635733321398793734673914908088123513455137740715586822235455884575446863433377540313871302626071462240117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543565232256873826351560617978177490363147504957320325827228208790158003703947220784711440853530216267405066505125616695005739908327325068995212697526160602725247283665244676995469356947594725756685581189425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346299537418277627185306159193426121771320103100211452565766902870974555331090738581112895514039271668752247998498749917850258926890214824595782590518644548253086709605415246391648674819969569196375971963039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799331647769077464027402590525538809186293686045867395211331046855474844038171072506636910145573147382825053570575661393917552606951868964925034468664749146526156085505037913942029819942221994735438231783223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717602411322963912280618157095376184520228786336178426103531073417592039782916543702395343092259108501080565591877252777554800270019294614144153767227568255332141737201407471347884434363167591614387225594330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795324416192834866410838286054415369964365931969137777870059360304820229130265145922961345580297182724384196876724370844926367550705633405026837199449354732652656320662743808369958263351676070823549529856158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778683116858919461143010895892183928971335941392888564885450916372593983597420767157074607149752460598639896695746231577768604879720148035767956484589821970288761612319470132095592421448835550576272323443484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528162675637896302038984743559480612173873906685354384530392931298819388330411834237783614780597575058406622541336293357809319478196639297423503908480593200697899176788339686913197482588647470862799713132561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031324210200261063566424436966120830417686932201048993451559732117466300908671200835572420529225106285030294066927058050440068181922735142563465843548110959320734012749694900025447207973603791646697031950338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244248916432107962003137110746260693591895581823998836591531097004235817429460073596124743290572109290976292410410656620923503792443139268903030622034078705847521368443498140066439968281777288328306808296747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677032761818733382332992873542517912146741696844438416099579217349254754115169550363292946067218798381779848868362782909979843021720417536252229967274325716308033262679427008834667993123722778928049072690634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602348848319301097762875184555561427972842848760393872130490902541848842697751401162693761395504585689904730039876222569569528522702700707002236312782756472091890723661453383150645086601571667250304425313457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821483185792211683819202237666014705355033299056638996113950200355900395314314853199973395611006459629555821496162158045516324961524984625491338666155661305747107306606494761259251347398672404294705271394587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116137205248421240675688333346326309394674405915392812434686527415076367108332946799307960121322623629719228890611294395686589067468858225888839891650188355330752331981579035535868551557820654682183321590742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507599445291601038492429647379231448519967640031204261931101839001074559769324574399651968221115701722500007801852007690927995274819572235224900924551021008329435060470903821762340123527848387377273143198123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690748573151179871911275897371721222006979026862701539770333762353916857302353277808051500852598175329555080787788667281565096669161583911272169869938875911268864848545345289838450017200753178809612734774403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552857923593391741917120541796998725613245326657739756970932170562193800461482857499893752316435134747073658820981060577886541651473248981787009463013850792559222607297152262038819437484391431059409599258433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485971954528608097486825487452445903626047313806483937973446818662497007215547106019350023864838934375622763501279258494173264366237202327855359419493045001115249370114763463415754264095574739430694456354236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087274183268352719951577926527198763749979076208438946347212620360783081738142804787855497828978622747244177003016325501339705372417682815323516176906921997025569996205464243726535775472510240312994355386459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138474422118827562986206331356921343505354175325462294273857018514221604797918123913581857023363813544535711277117194321660466143101547419821554929047562109018957208060623490880290406785456674637241772486811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828256821243931809785796664144164197438465035975431670418385214590779433577314964845742148608548867452913145745893151848342050585427211602752070105302881218204425718504079717735193826444151430340000389650835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551641532818468987804359217581976011103718826011571521219899280357546083887409473752204063912336289828066187319532355292040142200095154808807061007453865639725897080303279855124057096752994877525034838119148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590163613972947333424529757842997590232889212288761745364343158375314378495746088747373425879587582199019353898142294239179415156131539793025146413798608959887675413694323040487028555419780922958044698990192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291115491864882015921461776544992118272549886765689622517063614832195140603084486884294749081714122766989529766528467187010729193377929282443532431382852063570615807692592826032221194027687790429240836532323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029051644439647829326694635849186615040116550321379582388464035453370675001468245089396350840796338833931644002155762948765545149622984945735704556398458286539010312031199558632978985996427424165456402215526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311224741224398545523345939736021584889595645760356011239472260029091102323581832707760318192895789319120042282972271927680105785644667334020318606579759989767363004515534412122274649211784192104299302330475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291692900609979797982081471471311289950851849200398640461465302509949141434035836955688421615182000667253985853203567078753447410182134499703959178739753496211472367771510750644341932067097848101390611946814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810306515662761140012393944127405040656002217098547779644246858748631969461895510351333916411959039718938761054426423024644127859663201484795527322743409286346200984059824533857638615193364432098339181957496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667110403931664289460739742761327206991377358887764684076726016450379690906737624912318156946132584214651124301808862838501872732082930493205348834908022579996208931538204345874620625236296812240775571667614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779538906513598486931485726874899490140853001062540369844024339857382126776294549192772819270727100759505419454503790918051636158083628887001538672439450070274989843218556764740324714392366484341116062093101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433894582649675275252036112627367210976454313402380658720112513451461172380163835947268752281763835665589618861321672998939401494125103564658336368877609065883769674182919192031194564697809424983860904160330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059723327757979117381524743531633424117298458941291075045550428858777627373406633041603918082687417260659615989336077863307019922231846664888930452715240551174612022301603661921939366157937867369615816259730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323605885877787161006725835962326049600160589914889342204736161327100754523004843943109899916372218862326257224723071197918230494443514033574476639708361069860714457006927639663973492029218346297644381860189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712905673988844359308222830330322211659298541919655979718488542388715808914036930161717257001557061483690681274229550279346352264500686934307748207466636874761476200227501815517969782667374145950438705887238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761397234339455693566008380160943556137855374689207145442337764671963138464652631570101713235839748746654423630277928541904501566645788185997947897125148114050237769026172897930130806565716312121207914290705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703195565589959974680574161333836164169114009923341556438683622586644280794033626701052266693619246747237136409054289852051883510036926818799746564705254506826839362640699442231179129973336410667817359159716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203716187881493183663213242424242014718798660129082954490209873995954287213906677698275630891679421740168823587653975042030244898641889636909631627012055768196992915499277514254378812946766508325035126716846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163603805346307638919476150186986736706050147556545191255634854744061620273938350356278561529588946817016999401433231109528721244827047206054602585006670407579111413682790697868658711779204356114892996871988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727454056103582092642512678039819054526594437375194281321713703361259105755169899284729469534242980723256290258883626842678447029836313294966054416253861474882834798167322881097848769413234367188334829751327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473152631466469447022286028071181399281588875163721426683212141509231720573189111732882598052520156090041554777595240408913500940365197084870074967833274323358869463126879009850231317206614113210860760486195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910525388423933369089463540923580231081725576349979969436459754448948566477328044988676235789173021502698796454984277123360252396013678890263912763167334869009946588810286310223749553599501716187794059542720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409283494140282212958640752706393539930444723850843968852757779835520831758107094826865455149234677116451188567223807600629987818448782700527203129388479982097194320227571363520398880075609793549685072221738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266888128762132282887012394111213560849984856022616743503488305211519952221309472231188245473926080854412153442104345431104283533610723224461095047549030823849762337877239798576467071485072701155033507917688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812584337644549639320903363088842383134647413254157583408532870162147846752736603532981421989990010399651663985781627083589624813758112852050274683143462186542100287357984530641972173311190325200734619298128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569542884142437557975709689422328873125015446591323568223485632308818621486917525444204250311551711252093266720935244538532857593078572051963112677159656335359564606638121569917613427105035796893469256097759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283957490669396689948638812546588558883830330864279223545971614086391328016968670609674779349702513696709492118518268068371039329768182793490904880992685297949785573337154568122911908288999964961736727582967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943345170131474316716699253553526251918229606855110255210661769391305899304704401305553947858663168437691828647234353248593887797337000237434440522305783385042336974867005016002866371635480721425727423634716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097896118194554170245592193009640593805522942769217350988195033854243901962235565665095981189508495583475832679441371943347770644174306876072873238603190937646745291892183927340565244912505869565176115620698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197419266456341614484265115413169562835251959112442838262881010308475545489736902540358823648314244059506043336372172311369797376625377898329148146768547541189710236465877932945245536608462987170976671452153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473633883862747926634381707460086181651770124738002689102832486145467289464377033943420464842419670256187916489725183867462223041651600018564312996541175982085005633239524163204667553500133537296849174676463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556632378325619667821366570922060283102565391354011906621429239381641120806961721604380993879930032791351939616054590672596572424438866730988394948040500199586995408776106691389068427993564695024599087865610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500023111598815152501667563739574019057703412613420416359044808390765374858277752596662854316298833142074778261209504077604333883663580243089244840348835410287061473396328346465783579669745925874011346345762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302083551071071050255718846277856440376053415487371340570353047160477106775293200799083008579633505891364869774715093761225628448351427933875263674570722200256769127483422379436606131986267609440621051523719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935614664646260149649514634714900618867260130216748107466054111926689184063788353110563044170808357801999223295643474303295979135889437938009727044258215069279799888314467253297689672092433109678778704372547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756792294976458396040312478260968080763245729179631357063805530181795061558934619200552502042127689204726523519590844163705976227580527335399057273772924589843113466208946935684628077087959342361434261835739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979712679792868141836179452938114743834591130494949062545777573965744825041893661050156722391140633790442693276717835728234784024292290403767470039713468343855464064270710261175300913084761273575638893444957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386888786715911240760240287649361091464856324351392282896169205384742208960466080590382309965918933425890790062237040800669979202979819440927717350270127336846820867383102707947935530220822775215446092735620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877823680827930505003074177435351425876432091818543266940690676007919082134203963689530945256334022130730209864586297689655472486526242846110473665750904177173205232374140756584899323927086821679426432687569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243268596647176986382914115377976976000258192723944692010496600428508547001480918081081726650456796718668806462058478809300711671419078497133939149939952552454520949465078434971981036142877818403322057069463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386294345328054150827620990662277435844486270376709248843139673126563568059785342858198446090082502281505106367269141887603978831977318626572931421807329055093538562444488808705158512055619441373703285405475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258543884559516797829932832364273745745254454605293989680626351373358721485080882020551865995803408148832970125378123505679305081881856850573123325755554241960542735831944797643249922882266043555852334960668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524551126883731112078525724424579962329445016834171359514025209517926468115682982031361882739642662332167644152469548755816408435821258504424767069969380375857300390579011051541477955717916931272909599822136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057532209850474858357089176635272780949535427448252511373938291237833518414718278488180937762594672554334206902383755976584674449885729710015336570259383860983788837055966165661226188124546387807403643775582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448193467055175708350294256732633526490651414121023786109329671886310371717046176289311616725902906771223985883659641492455308120728570841006607616854351666353034138280113381967791228997412665524495134833893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762219445151940260406347035679935388327437858815201108040649088517527008205623802051286421842482300263243205599799834692623266564470195635730067953905724415039816423908213623513271771458619121032811235726993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650168775274376974153374817242203770712866449077116260315441711941410834860689952950744477220336274426681847119656361571377242461545607047965087831290013343491113629297558360906017594945379686150681790850760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733426127360804485531214757889023755905771131745500941185974865296270588563917389715951598898701417586964865418532486377943378050698934555388050523312494984188757304644473314445985055247398653997073462338193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195599298483073711416176483995033003789882479034541053250205495569358801615459891893688657212474896361367186281885464478617924358171011255185131787177450430735364502976150729230110833080255153495186929484971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300672156130424767965099736738986396308459533099446736600527895351007751062354051809506207295912147787926626338542879258977595863058064650448452623913353834262705043086700946703622040633976725299136518784230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275574129498302104696986164493137010370277508486015396166586451285354530481559829638298598154556259248659186328817630110149973720692015386987741862165578208788502897085678297019269582769523940825795893466666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218932596717370781271405133474738608096369456351201901843916055733840805166382914886247935137940371319796687585625948294207463241614819626828884980096887564131779026576910555080254322803125858998458287208325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047106516347403117037448245850518578818068662884417079356604269800316323634912030291975370099601066619389621731876226707182631485228441727943340681810310183841753499734969790135260460838986493841708529346927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248806446319555555930832816734602312040667007248774759980632684527320255701562168766284058326889493050519390050495049587015400348542776024624858846666734238597445456716114198430383570639742666670385556096452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174626702467876686032287965119785761644265002553662207997203999865614691551199659189260998756919572198275509506475978615626474235578645011389704199350997640667655712085029584211559149472907523553499274100851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124629939915484195813551255146770934471443309247637321501186127983818560255716314174426442103923184124861561304709814802473388125696051967726943832149010465240998150118339414506008422291319416099500996449619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319037215414610364718842463568019712570977124204559927718940163080755579153180388638522632934912286894458712440718739851310980729960000540296913908632667141792364975629719250212883990970848468043907176319829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374655711776604274794044711025322752607088191525962388103594491210025921567550999035984902873663946533362227856019878524480781200009226725563043118702187832547386880440918833104825515033950623703534591157569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040959783772009135428432873110669407041999325305683169533185440621809608346131977993381716591706548795521144399346369103913258534977738053801424940934503627616581368950030951261057084123445629601328070394871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656542631273298852919270082470877400221374311565869690760658990854779808775648655941308902704568977297419559655010922193569323849781622587517646552420925574092571769546886051901000316080128972898705286108542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107707741366334795574353354725066344097928989918408218150200626290058136781545284857759527335953597484087245005388274103999870195212623316986282803438849726914169586295036202722974886898490039741471616745751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897507199743566506306631675876113475164418905099495304411719985149916739766229426944516621408087749135536734530651829997758201465753081579408167503572563130826897527686949131751660314196274122716209578299745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884692390364398767943899441959633227733151062417111111758958204213822682471585586231593661531289432191654892821195976227665814359674319046931897070954625498480234955018692311293664029290996670086387840042890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855157928164449213543001525299613772360107729210859513145995246165942271641574763236570257188061170634876292627323600831252569965434321893745077967445291542789471272289470446481314744124221166590081005721723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055050404705924105288357400656484547245607487562476347259620195541630808699130865678696787553970081279117686691949683813515098808520958276792948785481815843390389576480289850925724608625300614888628650306571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677677518111958796316841853639123374976612377125870557536771425535452801023619128824660846856736084934133311957993354042333577358896378053183909344428049227035216223087149443606730042311797968286390517195157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464474369388729088789425992271475632620666673290809469862929534311107624328164327360863086413386486466836833403411741724336137908604788056800459754328933272140608034447503284344114611719096701762539842822668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490946103080608952105623723373395529906485456547771113235115058351872397486970763522933435497256100301121589126783284926464529265711611514653003449614413040707869371417923311666247696408763548739901747753710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798067145279663745899421031188154745480752465185317021824996705820092817034714330564906110302966007788621864395862030912621953745931915501116913315595473394117208613535884052045859273604632198270224071542061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606842134010586681368770086255041066965536224307609748692066674406842755594708259403759545439328126461519786010940922100394662393810002488578082153053964123626303568044502330247943343213441880843146928161839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333631844676895075299258677730897811322055452689323411963774158070429791729618493376516693756215146488138417266217153236227108027841813774596097865572452165349267876088009188070751445179559189320746484076199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860959163929805153754153056010835414124426635088411708895426440977027422823212873781858481377393550974933555114062446643689420453552379302295569902568889247247648285698792777177043958436924724006222094132555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656236536271790517082015310026735395882470223528163997240153464122032025797780827313551205019368428155208185549975149151101699141271160844540090762083005141646188255296346203608737167901905825189468389540468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151241339403032771295325310711861748025772234948929252198097430895212231461957666207592355635972669076798666123329105952796101834310690770203222871625208361195649481175299713274973059783552852128578547844286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040921361522517503364759125529933623450874620625221161521345334640590731527324079559395600327487909738694260663614314509347957936425282076057673668224556127797885798509050746557599952332576801978516473222357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445710748443438092473558324059572792813700931794958428020067816670302348301074054742192686054019788027670617733116985490100532526580700391933221832551762219500495602329543188072487098922493307375904553488785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696712243812173079896938312170420491124145158622120573819892602813253361650633270961268112735445764503438627183739199389437969585611671266838339375985582646154279781331791205782912378998922762772561595125842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804814970795142882874275665707581482605482420221061203768834107343704461695313565847315846499523328897408613892603743654557103135730978703051579767418648833308333468306177619964953332343405916867838864524704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553099902283601182556875723878812585829342112120643535136234233354548000376373539228441337466447546489972715324870623432473939494074367849041727254265742675895182796020334362260618434065482929109694732775810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758032127460311284924887146975923896612165410078451665187599926607299020458345627963420439715652445650039332697584161527418689052810339622772868014570270031896278770775137289513749285389160134511814790912124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310656806715935871203992140966633225119104450832165354362199377758584328122723097176497270028253352023603346945160822872847275228184687773750722988339131876836902638244934888564346061470214101593355370833759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123684275563739778101515027771884673967343974182564271586530092136733880079123112661604189172284689063826787172246977341470030337709486294246783622917217912573978588957230493800358591236399689631216138583104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421345106468294189135762409949557718833764748449361489033733873640844876651285799060056918035580217574328223720982964054139849176861425411357801923284322356622012533756997103821037145053611352158087544325887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395878299381552734158028806222896032274479197315134195894883841952929056752913582847028899729046824217811588125445002757734897566106936993830600284424883040855689756491161569382878286204590171592066183555970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213701331543690047347580052669731636628087675468684315441200544518109639633177996327073327007842426159432871983671001853052211000499358589809347272782613245222554744663365234690260799520188298486579293564334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897690479630772584358960972355626885277176950957548546741563189365444345268252226873316585833671741045351860168973900370511403872160749256572866941446343428193422010787994447931528908070441678372085914038078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067972558836997229770397817477865544513393695280467309791987546440540501535598421490176493970899336823681797861826371377477618992421396475468152180235657008465062462125800933823937589398535255324737030726876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273075462113797425254478573065620616232758456633687160410545655582196322844425800161309229256116952170585617429297116993729879855268657367981622307685949173321863761507735171533780533639947253173790467038575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686487347462195353899780087542415058674978015601593113654055207095080352550048121231237718152107298003231017591837862540565962539948544710762023852340834150142189018389630276690864606288997315830500060541661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984709134048477603725331648663327399774574170787058858498903647825050060756527667766673018142798346299786311547247190463813082702695027155243458377713288884011332285612327642475805491414533400430735136820016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261603627839124114726820908569052683742250689109919376772207776873712677015290712968226158437571496653462961540352898069849819902381588132490072828420316645458645186778718177177277928321252696832297664124549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119607926902811622936704343711583719538657786003419467130966534425355235613503926374333559024877800931675855665020261424517552023105180379792416018681653272134907447418792630463793570195725465687076964902562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584311281806211645338346145649986102799088783159992332083497034990096448289736199726084130305016138343757350335026967919910039457648503139889980405347620797995103556280094271198077141386253746894200671129290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727356629454075207868377482599376950854745853778544015186687032127032510837885755352532742246745616553017529469704928603493523766319377581531269112157125054564936628404613157549323436161143868941551917955211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589071831729289129234577442844192725052768475503870270632829799758538825993879067899636766347263679970911370005004519151507050208574470532031134283753039645068373494746515254316164069588396569604776248100769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454994540500897494312370266916002277962151601644314463215567465798696913430209173753793295373631029348259418485153134577006494373909764208589573177423145767288296790675029922315257328698330263412335263163490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628425108866896847107872600167332422156251242927213080559326221307214093686435499689878743035267688492212318344924190763747157474462521597457646635724275279522289150406427767865661151919331918178305671646530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245451974709306142275315129844530918275771513611816730358093214603225847235281182550470606215426224324551446896457269382316655525095989504109342537430859997971370042588583403044972671096299697632336077767437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603659224357676276234466653958979646879055292390270201075721891913821483162685249049584867543293124182641346627228209365327728397667557267289731938129341943057239620723292007186386746670306364601331111164254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220741884903016500503853447597101830167378268194361241656963925229474103574318517658365603412327643390095651186326079173389912627720721351617522225524182961243396282518232869686254441186238123306403453315560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426702627611859764913247682952727805703223834351506367217706637637402490304659096285960271979725537800141820199810181398125950423486624834404392113648723666292020639396288453144837489010260840361484073120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708586495987795324215832821841093916405283567907068642107803466075719798914815540054200510730096279623472724997011221778165679844919433222633415033856753082446773410455032742856115745538742140007192843017744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555247103681267051382467521172005284942952197488628489852778783562106004878127114406349908816459244518980104429357083290472201607269660461984260772247831071714390934928973795075056471053802916187491886994635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979448080471233882744403505346799952913354609413927284465139119083607622657983981564246382915999044162845276818935327913567474032273515068909877547218155749984883466946222711943435139572756093318776721574285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493572940763592895618281290011097847243283038465197437585736859123098178360303140528230081302663133041399253399217941576479853470817863611377200140857083863943770352918349740374183511622370040173188269393263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496121216946992544239867472620600571311538783883388307801653788387752115931194493595694917939405788488606239594441849728928723084955792607211329771213723886969863602368291622254647108806210944791323990154066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427353358562327918535797792266270380244569682968625491187486853054978579659891848621862374855639353215630489928348655615415406495122104661037654818060250676549134033273862941691177626381383478511836410569996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531935561300052814359945606126160832235899032489565956752757698532457440356076128860796818576197717887655619852375274472235992720206023891671879081470886706830279398976837802333757968374847167920420561188461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081494375469714291952903101938943563718359374914830742304493402959628111665238995811060009386222162265525297661065074527135894973344740728167392634862226297134715553293624445799465082319790876907445852537034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804306750603068626953212452290166750385631858585931743776949415741081057274944438400139915229529240168066745842469660556910769759698731095078451825185768980009394286371219101669807885171057114466950703127370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704416192657211004234584808532239809308197012158641732913053258987171588551684206065034055699685937159156219395459555855700934771168117983599584279819556435636530938905094196464188924341766121771175457371442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068752089651754728644348902015018720183661384172807988272958201897748612633836037110941408680441463818997551441905115201402418762897868823386652887495647401107245990553799217515564781980918495587675277828080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239662066592108127818321912746808145303142177986735336848938082668189691299983519942232127263877159757642852132151588371714648542881242312246840283905615779681998978556251027107062837939943190735797975362287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928158069315905715237948025661912687088764750695085011137025788023338180190302100297597559268182163595350706418857190059497444679741742025213094724619195027721323724702570296163168146476218464364465179953587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619542046154699022268434746176771131973748660008793544360730243366328086536847335066870740890018470306769821475313373154286221515513181409541497972467067634369769645830928679521201994140665404326668344081968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269421418842594286621469527688063208257196486713422469852641941902223624118633913028417184472482275572337996970748200243758037179218073420208053693574061876566416960773912090981349470212072519721369964234420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085823970994657027536675981330477750505053663457471551655837277310078578178715303161327684892535760784621147886035180402976569605848671756763665930874801609992795078717891310420384947894328608479705150428332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751488489933778786785978526528057054866121737921355212470239532560819067885280383242296807554471743774895014302315014696122549489533836275694486930467419802292255506508742977275807609510687982710919383714229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848289777196750543920577166893855239773609258209069343057898674235729531205148509038465249314006899617373173581622229445541614935787147750627037619249803638440016091361171372955766180892638646794027936567038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400330359036096054800471884730467828680774098983222526245316803203408443510937431949938029908124179211089542392709654258219584858667992411578844781521955749832225833567422679896009803200935486510854946767671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199958540869747731601750539025306490362044945847644088204005386057152518221779351801941471166008653294828106002191594469278346037982926881867778488378271314816066812848087479043023420037713089646478178559946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995333756672899766025424659795196326090274261515748186527819297798368110133133965162579331841940702696498895138692396126127536959206022969008742083472084083318841582683801938335897322433513641224432117497940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261142327597289482414188702595745493425472274698997687716231609932288504202807083810081409188735263331835842074074844657339783842980534710600237421998721176268333490920907386533795907492808928303010720755047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937906163784820116979627072127035848047948858065830896323128867340296384824112876595218536241125696974919905747828032629986123172479305032363770584569878577453161038667067555844068240891051181842902580329851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607999322148392715632124999083709893094632955985992872843352125242743349437902382494944578516493612703264233909454480862002835352626175298183552529788046502813539911284716128115341446038970316546773952587653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383159642062327307148371669179896744454184189037251127283530059298273937473757109927765235637036064734872478483968420374230975899887438787654284159356597358834506093612992449258746769154280459813281582587299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642377154495413717740799517750146669546557410080155793417959830131871546171383822033328726313699780809375628169857535292539023656811435865539828428324170005164199005176438351200575693343042180293152368541142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709417676045222513492987299743533382062762240633100488377452738118872258181998221942829367666600004037991487001856867455441231957351871237930599514821595486770105404782025853908333564061826222520802864866680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800155572089623840364771321429669219347242079872962986167579674608295971274857067903467039157865858111273825743251903978299544576743057529928302863418624254502249624197916398273490435941139589840434895757833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846847563664249476708485430735413284036163491347107446832985898095111020124254488464307122717488658696436722375125740766380757796859385182321580379013885132456704225278538766101351956828652339460402003567338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921630261483151823469420962791154941719466072066552844004435657532664143893427722090557518423691208034737988670796922839869375088816146073838246420008153936740018862573073695349973083672528101494304364563497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467250195918371787001546471943774402458796441934330527377861745024524970714990700051872692928345871786309174843878550639754778139797614710297480525893069221666222523537344901135398626602814192647629370976801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908206636365403568683324455662009516046337522568825585458292001930638153387365651794574370258875626473210773227646623152269937958253816250741193599257543470320751896392792921623091299025904455121720931896617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858857241665126195900032922440472840896196026492377307279303286983507199509173362220690426621137935737878963398219271111792437518683817576213472922730484110905289312739756654644015991089205635953955062268490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173552405216715566604133347587598792044559217567756328376722769011541649211224642236039540336845501134265424744898954599679203644242966524827350687996495015740462148251111674016381288237054926766797280057463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864000155847579128464012873995097762977082622634588250520781834576050530815712768164616012674561513103910717697384557873224133003000553471951166901258113520801563037304690809309792735365856491357471135090441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601154503596771014005799333688900402207538482513993086371634336600792371240645761765003641061220543568868817740625305700602301898291109153407117751712442370364363715890220116231710263565013024399121540427012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962040736111634720258986246474408196120403368752089701088063354284436925218017425121196785699110583349449991683094494698470780636754666776782538372304052848929117305480298931061328228524301397442127840108229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636302403654187824457074024589488060507416839071505803242418375586267960448940311842071561842663899300596835196088099155005408191160942615617799649455573893623350956021693845302940741535422017008850593410802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765157043277319218502844881119332011035710571944438712183523225548677264408667340454413536740399010464179288114132773295705233233998780091602670028929046700345506321135518225964545636558027046215314706032147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316003637213513550655568116276716483228796239003714331634809586892438471169048307896510059110496501599283143831201893252516676895589731051802070915612821279478576823150309965487013780142034235086218894451130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264548028499985675549452694687032750378394003665144268568208130902094905789962210081407736696556627978958759938160373929408189832602311979060514597803844941218550734723444046413633317148297819766986696551400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806272825811245559158601501843909040986418097171007546188477393491127357112710753309507903619794617087334466480524178880606773110645588414287431205536864507541312378920501641824559852917028552982349175681519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849002672215492888861292502885281352717378031820762808665819870213391861211336024618736264912859838570424605478859944208240180919736271175154047465634118048628864398751105260186007632086640320800588098124668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242730233599895133833106908036791228975922320900535339836105280848797434705051051242979946969587732900812070797287965358392324265767339214438047036170652959567299323441686930920186625715820350459222746011334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066960713544777204124017138715254147871337456602291427453682810092920558890079508483723267871865955621283765493043122746445977381115639667409274991990309678315704437927396416667510978926409311746824187884653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944042879583571003684509070345801908749999309273423323790664741074628981171010402778833821450983160613718505842790389539496134598694553433217338838044229221868482471011714851583471060997578697619681601243733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669914250974416710891804427926385025576622062566434705688881209134312965478161984539675154821081024416062444931858735121428601085815587151941939765526106247809254081424759646627019194378550718698349687692657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420054826851371916276898252726600077033683592676892711746614588644325629544170512168608373571659761027823884860670144632963682136373033174648717632014278800674249348568445726886782552555092500615469758288549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122311632876026457848920881444254178235178772946368491686378710335598802935287975131660096503450213500878614816527569342549157582544785878977900421015928011354809715815493253864902115138985775663927058200478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425568522216705720637316682093224155465652870620820268533260086658005839660906950497030225453493694184347991814854031752161531889360169898297123827273296188151354041870492734852626566640813648637887168029974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655905259414678341230133648812086451317814505464179416456723857750904521770549975833236091618246866373119959742563739243193683606633468788836648939977087099239751769429327043157163405058351989947721259861246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022335739830396642856599234623943430754355766148585186128446617314397997597768447092979277382764709356279494509375749758094022971955437014385922121605808100423974385330454346711914387122662709140126153844627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087714962816078738336233555978837136080966631521893228751052274037101841254829712856895416419492794385063945483861715452863298700743447464614650341446025619364938925571934232096238572840936220720551764698253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392515184502772448449537680476388640190634872967747990212485612731663998442736186230885517318239967881715818320630969964851472957372369464794425482501448372786430354266996443153981527716867984468577777317672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599833472410418542027208513605430735748762273840792001676346615109061471910813300876924398905054283828587174596002008845764482519031375548086017940341094418988372652319407183137053799835234437595489813215342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615794455908736627890914427598452297630543934086667826431401637571705618813450653637288873684577300189754353864153639381737629018229633304944189194065973057538512133986275646249847032791841511149121135250104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627192108247640392720608888626285258851992830133305890576527282957142619497916499589436317732474958095984149163996087240559405897409518518453701084239110782354479538977220797522617599737993180176602584167834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503592757047442658967956619338287688474667387627035779875559654940146628998920998697164854072303398883936761101330378404511307837997043311605332621995442577030710396843975279691973081280251126223600777540005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949297382686502274528229948457746734337867550280099756051009152886664658790262577689571241879315839487297388771483538424812931191683160601354302997848368635277312029030297107783027747389581346519427561606674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674391232241525774192907822570914140181569572845738336229188507948683294933053359319357209167636459558136799238696355674929865113248271394607316285501241323117372648773982965149234267413224728863284602104136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790173615156177315157500598839964014188049730699755066910129240753037495815578462768311483735161008264210568687863568408589201192682524370390352517666900923840826467526170926026971040704714815310205739799768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603482649856938263973605905623213929485507427648532942671058969945892642144119600084535333114504068653731319571484348541504151723470687159665889346879477616050652520532551887794276200067792917428629514803639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151851119113468473236553824853198785818181450105386941315804289410531085026258281571231111455512388549044534798670025707762174138029189276234523893914028052930968645560208707475029630568566687239774998591135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982430392706310460167855928753060178702221330681129914256487266497168032854943908954011598214937701703276762092987636152947610229638640039099466517428605271606511721401325095927055929483973612998179810256713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693830142722291579435039799177801649052827713029562457091027849444590050250012647562325140161203982032550275269695196707423516842119109820901473455345247385160545020344886526119484579467391032494601754606594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298605826727776084199746970641965902995956295605560002217637882818096465842429443116043410154032416183711241183341336908604073818218678592966006015260979204302690514322256814365746965542007161049260710551621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384385999886123275152903529870349532107528969061140401659802188280376805348714902083087191780477531360858414106596751960432401798589153532443423362991003390367726189914046681027614857872154303275752435932050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519912145668150684357307587654127131665423566812227372223338758776739362287460341063681565186649322813423042420400173053913958045034059680448257513405554904641633578438160588686022799179151567769918483857458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819034488781068280495959107943088810046956183587209343232330440969761237719689629821199168787098339611345262017695940034586738339782341473219138249974991406589677344743402835803153747984899676192496998518224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347894591616798123236057496837482343890555964335042927547726071932198308253807155388521773092429941314419026355802110535798866536264151014646071198559829289549075514813694409360717649426291034038171821614396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958654856178161460643447651930287173430092180010058739548345440376276460138242763405329465580888477374668362561690834309727006997481782424574194262607770979891422900350084332119239773590955945746815664694781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381314813176627603231988804979216779611049102388322750639647100769652474414609822625944767297584481013880841014521593298873538518073069810094601261678689308602437849860720828026692445109815391695973601821328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809980965719482859198767241455917159595575000602439147346499990949622807320890185317741662157073338928388639164413759397417797996190645277409657976928253653487828864697225365575452522803168847103926942994401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574125583553974077373341601561144528150171617511799963994061191100863047047957134095315827911496975506142525966187901940474528757334388929908002976987789308698733990273247229361876519329728094639215880105812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451241281129400207911460827424310952033600285057851031781296901119673208609949003674260657883323675998903174678418827376211282261504373578261282392358326023506215025388120503808761075779234110200663883596461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437332224972089532223176991483092291852524674905187716587192833914512722243910768803814676477682560519916242899466641586857003358971005817274611700131317272015264539575067017238873314438527194969975372458504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895901298479037010123634777326720390810711639303289268969858980276042853098125791957324080531453599950680281647637678616204990872205057179263264470138021032744757850959815376927943735399559906920110868457276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761161261939179889891414720360559936908838930580535936933911450316665837679068253381015494633685052702160528658989694225709635345492408795324498345015230231036833493083408235168291518964166715750476290195346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881046973124954534545785626432924575397544363110660436528940344384293413102992185638619690395362293619010163993528535010572993277183944687864902771924119694776679674321691661740183719065604639000765211961148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719516665753230926495139421142554045115377864569662346800500105576656862225655975320006948536438622303798485693682238749031954900491665783397436698609183391998723719472588452887254012846450566305472362710992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196907912412868049505017744535830567404267328578975726402516811291440172893889390600786220339806661965078580853482490794371510593186923206404967386563531281304079107222213576654821878051985853001988320719460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782595541641910011069844160611193613415728438557376822437027368021054904985965165829729445551918241516040655118397072027202084640204393072986300139055434860805727208711812587793844984904370529210374970100166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020578895049478115887563990450268575505617416055899462503460092102109352130947675934350822422873652738883742321134710601092049395617317488537802273146628841603886788153423753915600377407866832869398483480806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975482674455197750593665932950078695139834792987338878101779456081754473813559180829981249823150037350662654337764521831661729592356655050362988711935601204167938372520077159314190351927245801694493938939688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208433019621579008529471279823397076704667834310190431379390956741849317948755991990551409619689392255733193871822401654043894242976165912825960645565767896269500675457661057497034947209854964172219226415181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736561784872448961557321648257454753816143467084018257113637533942016840051144296003030823242762724402493439561055939330737827909395440108058510853811441266551615428095286811705096078289107899719529989342167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753678298686927280589881500482306979073492161899553670790703347937543360494530720796487701633503866124771679889404617208901243370958171600709412249362154964957549239133890521379284813256006540708721929520411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944083716975126383772221899903516608185037840103696419148911071627920249788407850357701405616347874226400006355817468995774598161717654247358213363439055746336700418263131436114181603329667629676001679942055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568046454636658820270576326491829158713636046873638450544974888393625563446902584799733972437826866792004894254402223869489172004665582573288023324994353981089464662938621067826158527899573711364825491949666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315030732364815754371927707826788849883018486465398211832288477459906823397462156125853826623722831969860252043378627735575155507201016059787121746506973699977488505823686182397405962823899061718458168239669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781545471333613951369357897079038129100817208674970566963962750528372743979162876486455768107697904387778853689843730036014312948664926231077274903705956214258751429326687828478807876284781862459567816866258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722416922190639131378281162017878760864388860506587083240869863946519451168883795277463535977800599642251188127560160179159022475213976910679863209283384060086102184671398118661205103771796785864715889119197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677523822065546145593974897869216323215553119290602588527663367002810850040367760202462557785265266977034006959215776156476425963474335647160218551276752648922167599801547259118353017790110214847022673250795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701668970466249702173347336807947732108619344342264216085801303502463711108941668102650367375214032824342933691937372637891689833875137555791026545295231372878571956727250352327250114908852401112212315223953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200441387083045411777990828298523910316521755322173908386337724070260851601865097547228451197539120397627596019905383829494982268416069423707468528511859666876879722986460275718450299124692064899469489774830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322067280529532217757679973297500007720903025851044324639934067451094331243587323598628587936132286240082781507656081553948158074626359271910622864529121954899127388993476898406306935015305808395651394402432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764326736974593593810668775110459390561587596349661795677581631290731439520021171624160236387809632990133247037859386552914051894854020217477434941180746937803653261313994620894555749060397697094955008026496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553483412729155634507839290955496217637809414476039267620299120979785261012616158712707535586788607013322937414800980534901978765117235013926032028283193813753046174386185487073152287896043801626021519321727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349818767309536656154094018181213814515718934852114137632397475912493597045511811135126263852182268414222905761672336221741638596959428555841526603258173569687347871528253854686617083171567897986920796685793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359840877268138815763164529904003317006143551587132104849086040863099554582932498512694150896588966201964410303356985757879719137187474794198902398557644542753175912782182067919400959794488980216551994749107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764440157702637349736079804389437323371035779462949595697528642416907667162597431170280130433527213920989591016293150314406167603304487131088893032925209532460424387158071374113333496752189467842043520120051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574763651474626863042160036737390572809741518026332536477880629778365031696247887663049465890413981453683496483767637972403013154653988084173969361425867179381914048143126221184901047710700206513634019865582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394547864261178425146172560272380476328699796611311614717459878855420378960304851193694719210877495085538628995850377779904479879768191744941429000980359750244314457216387987325933347484330457394081255124793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651409861600790510074644557432653939453916473024455409044935918995009300701806172333716798202231732619548655260653765962406939391279640892608416114880330646499405407464597314824039656863432159312994393707782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127498699659383318771950793697308356943672885650611025094535204704190595424682019898279610699732262136628167363122989056247377762923755761011654006559385237273915066906457679463920589716522864977434502284140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779236807772363376099963345491422951402634074069500035719201635541039052403529072732698238914645854980607121971683395177468457273270578300165043438522673289066041888411382508341361379961981016970527367724719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548576844040079645408653431178446986669963155071535534675331827894217490529540847002365155937191300707653206101646242846057544591362740802494426430247420387231136814035011649167388033979628128823708626314777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616510258088180164460499940588489085235408615183894043607193406712923672606944806459997807772492209029038624407445869701420590221988806846096515170948230600096465701436440766806637279687569407135156782799064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689575125205427583408433765438773575581133233224458741691304462333288530403416818532765079629533256719680304662622269392924233817614740621769438130181644683625060288786882638848622844076864987050543822925806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515548481080757453534756650691089989025790067471165361044635484862584532960111660552481236658133484434023033838766947308531146822952900928520339707297247845950326397304709692877275566741078792127067696914719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995067948381046672169613166745564983864106655385195711477979897804053131531304695355956012501223073013512282359030897413153187246065767650692731207540535622805396956670940455433100169920093401603015109670070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016695558952554622067920742767776923081152264751106824433913416500252404069330258598945633927036419440753978120082182135850455473521574804387050965377446147811346871656555888351972792131850455068355394307605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752165986849343242206433312659157488729539953386225175380682153450511244744094691104511632399585150575512312582940123674771515790267854663437832997684375181671324663954643020788768384514133131120043836272094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239536576587105078807396708810976691210513367202108849092498348141080851471979311983256014913407118169265377176694886325677385081130992939242797311269677458349060895901467971121975453286879491003849694060700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239008550333847929662370767233463629037599500875430750257963974150203988495903758576829100173441003016390174848563306422011752017788579842745795912502607278147035731188031082540722337056184039814643086670132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342440210244964263928735739824038105842003734586953107032797985022930946626806901792724178709806252382975492674271740109313390844006031771503988397175651715664250661408635197545734597473285460352577081637908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294787017236599579112547404902304217356116439548935384403866196678322738363099111005285837078249625061455188256938516357639930307559070740917791768960090942166268639945930987166518752762806121677655991791029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293973815659351333607061912518396634898789049470872644134458081024139652538971443908917775225241178022016887498243016237329016542389588802987575006283104455394872770124930831524949797471267648110417923690325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533754265145417078972656421694991277672019356518712974238974200774227060081833146868926602940980858395534529813264337429483971371578266348938881758528599643215246849202217050423643862971531703786120257828547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906998622320548802641853248629251096168796598076953897654536145457445540016522391424814892972938142790625588597012238728348902405738552464234439119934502720657717152104991279089921169924264097040941620723180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001389238727215278612420381681489646782141666758766918285458524439413730677146403734330940413644769293578325756754722460492377254530663122614055017563811599943197027883656146997453561866251992177475878966802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081539878655838537811570342660344304822550131978660476762711151914132960639612967956751485560535966427176487338775484216680732679344682737453566108015086057433991986215295787876111855924472352713169009007276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559191694639295796753009154987109014103988738347924936289310579711504620617690105468930136691256496076455191053362731791560064596482747654805723188947139841098601302864866561626662957625009817839445743520393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832159932255622579133690177937093754250417825765707059622397054241206716418742464155756617817518321100918462648717765091190334572307787317880484937765442539452471494240914793370735134878763145769851002496749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494732214389320523373497582947729369785424473319216585338317555224946584875939746120313681769249128790055178403707516106150863284334456738495665891503494240520078974138322121492467179808528463428682044702757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124051619199605965139007790963429358311903430562435671573409505616362874827820587615489988136228400631951119520178080967490670497658942820319324591324255961711416431669441618015524066188633117399506879643778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428304112686525498680326457932318450295097745201389805535819414101913198483386798555481994017166158488361181485049186467563917728633058374665125190995176278621822177837392160428438123658550359877683167988769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945119773456856654467428389581911035087502447542075011754726557934304064164481640001854896172357369876500209146312440068050665618211320293368595675472266646602468685420080392607405662982996622827886673306450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652563135377625483089594842053609872295558275245931500943341900907815467112257271079852122273755615832610302392053167927886141183298226459755765340454234610490295722395875331195796195022894605030835697403198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050068936885092159609249345461701869664702253261938819301682122648436877795239618136877735017839876014287972084836641077328764288692535871469783972618881033845033371181517114847157535728291113771363131977821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276072417108242779772273273590062666386669601352230256085097299631537578243379250716217207440633313796387517144392662381145539390043886785184247175875379030663666093268883193121032320723514090703360541657508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593369968121099035159101642125607110757656344306351170567316743528958194754952161142519311002589041345289007507758318181226707486169370511374740514479454619795301747600610679345348377394055213592998818346545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503127489439096429633208730774671500777330083393431588596370124433769577694548260771609767086154816667942389103506090461460441303968713689488679983508780406806438162177240634791781191620062957777013993709343944321724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761961856541457096893874369570612342801977335573896240768163158443358487707336072070640126367241684125509830095138195768861512464866019104419000405387333567120152878262611453144400194905011564171801462355300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556118494767478653220714920141404358734838912071052581636449069203988138792728992853988460679469997338628784322251003743280666592641993060846936167567748471799555382249785746556725055674894930960003881116502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699860758010055989739775274853207418346619399378999761075399302511442615689204855197230784075822784838312358647816828634723970507033770155108037216863941507175891202523520030936445381610008908813050203916934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495002830983893942602243046169048435580474772240387178669349153928857863022989243143684173047030157010902306067503702447200332641348728560100321972365652015909492934148262122999823173320730648796012037972764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564603811318074452718462234585979449722843180527406250005784420048300523823875108485542664866184058788046412068103591989839609872713115064108184549045557992760943542184006717645354861510528247568296268598180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845417671180625218368758194154070367681561576618172047799869233146403361380334652040184261580390264182536185722468448606128873686999272027416268063766621120692903461969545811364344741598714018921166046622658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651725686453846709545248371305948985825597452775643783720939037376064487578053808966666139918396305543463515315481858867792629127253634262889852568544646981449746189241495863663671981400650685888608602242673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273565482829570256906293588816904146510697177724209554461302585438178630485080605899063738090543069502613842422270537535459859099326696733216515194817253453274733360274472585272453947857870490548475863311571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250136134421817786573268459498039257419696999987645982495670940955954906451431929975329699029290181133468491893973167337404737610215349790280131722337912799863914710105736458088249640377936691442602252243291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743690307492626172588806522332614106033816532093232026699108708475868198563990498575011761996369059699254104368753291819072004157598262345466727015736971133357041403209379345126606070799065586879616157998493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005497828062941873914749664566019768926361659828965655744580409914268909472497067352204701161915360094527363253066644020100232018732278197614868663489891327347014448203242931178410091528333303769111970512525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345478155357404652938225547579239651257816984986734218218531240734311529608214112091999940616010158219127373016501769581186190366897792756904678571018105939373143881192914749443565221896260286325866365190174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914899726840778589778686560487233057524228571724734436667418181232708415917914786168197800328752421946480119315937935152394174090419098412578099090388940779420467270491534500024860427455307306836472220758930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765264285434829706936551168067283061481553500677992734287467174083666602053729220484840870252301258571791456966579523963596862706459037207268058794398134006676701411765812522334810483868677174058797368961559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662247223255046609523176817245863626112848338740765075828895677458958873610951974207232126233355615193382471760218186838953006797502120769043883812835625814501250071190271565144346270648149505901969961390405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380629551238401384229100357676929698595905443982892666608780103440596705590520766837021015952195139454477311874107235279456084435494667607928826819356764666589161362140424785642792681562544850631668526832752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376680876997525746027021669649252998377538196938462547085188615104752264751364891883357381891697121958326810041957653770211921182725665088966824675048666996598850420411916153320898856723809260181428117623447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595579402179388737225151599714054472897083955103654866628196503684868466103927455684143635901777440387565120807714563648777284438331563572496836756314810394389680921192823374145076186305657777377941453330257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964017138299344586652810423902920440420503010850372288970722667320416407583835211625547293542097706718652620762946720436336432735056632041125212872258941499762804689148555075973614650511764125793028369745320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777519582806628442497503791747723620420424505736306091115484024269956433600353014366659751182803280395342105404919103056731421075413023579348772342390739593893004368913281485468821970534826806406133447603574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335806612898256952535572326630739519540636979469139273919509297099291348801486760727149785168270269050710767896576530440463362626888722627429312028751738497554214315049989074564612156955425357015201474626587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408803828013634904145085131829558738033657159237554043740366009431266249374473501836940883501231805702551089418469366688303806236043616899868181504628145439937084394672379528195303288606099631547805411053979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606669480659055883754767477890063030763977320119162644193123137332822364181193438305058658554498299868991146681311711942189160179373602575963218532104868749920473470299426787127613334237668342822565756501574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418620623694475930214105085028120360491099390536847805602166270463685525727413290604228995635102522847519070308253273849955553304495780330902592753163522180988988262911598033711257017217676690454568064922305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450195252965340703015970324098511502529305886567190112508328471496806489438130078371862392446817902162173569122887239480216484647377517681894212220710356555965079794844990082719355281479143404037138717208176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683951315072030565303007886859820360720669916737616414756654287719353591044521169167692816396364562978340737064788274061834054357077412161383202873787903785858932745536149564461255050554782668745445509088688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026811580709810345898604130841735509956944151799175432334806330732613391399797880003821091327660145496111570428580281606751623381353863052429563833095032019287816413249223004761179535824956059145300042464478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170973816661686780048327292990594281029681615746963060606101062267170212539667479513893813748538953517578329451364260069361377774400056699301740201136677317877044694506012922607496911061576207637893345041373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700913908762874164925417081690968473095488602332982888001016529628089769877231969074210270093488809344555121881883365197843185355960674763507221611787287356394656554342761406855941242591214170781163030801019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581823776065803540227966910818093226725142614287685085502340363959705621412515137620467224442897997855454131901372056002945670634038242991780751257244844635771525893472233684526800050490579407659261183404627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383834165301330924772942935847074388263424007013217132097282749479611635667826150715662825021252062763897515665851340604552901092611263816622423668992710649041886270014421128735923939982500565800643250607509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268701722865416226907574466637402578505819839033726685391283425113889776103701554705969784284381211041667496423619368984063561387622795954521514689288132823943963661294501387816765909292508975324716691236834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552188253239556250857211799635301956758117744367625509731975115565148451372854240749048380819955880915161179392191042619092848578161390514823147445531015161591784145999471223905165969441039727295741158339745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165343788389069722998862946226868519562883232057053789421789593678448999728380822512958573742956531487043040321954330164722045813979057452880207472858810311408587987472118632864898447340531146044004800111896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998532817580156149634425272742021323083262625378297537478084964862057473772980595049021455501089693480645109743330059979855532033131826917519159195006558488436551656335235079497441486995545934682666761749841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907819034076848455908034852561211244638832388776007725640595058576145061729291017634210620163227631335708698416113338433519159552199342391045655659731008231699479978456319598341143056370588841358572324394599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235765851659641732811004236702247942658948954200246277977930989345076021362417137031065132759759613489924270047047172533326422774262347566320225179842495249821276559511394568141270076623154851582573596335382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953489833858078404867756502916232810223212628623703647116725909111622074499444703371546717193557960340649572183991324315717586890563578201193562277776342162367247566768761722061015213389428844275546380391429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345261948227180404524659228844295541908154492145808904570493927298321688341342995368258674641083672846833132874321981230074513031444007683574024462780977013002142187123511884439078142864571486713031627438140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754395273511809456262736507213423867548781623509663987589890781058433372203975442049861899214534394570010766993023334045070623558228321979391210716339044784574064959683736835999610270559810934327545718226581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058382731749561209175232476012728488544222989867998826628395086789457714388158096755058011481632951013417845494953248474350246166826049086054349862607076952206845769308881019936388602056908101664505187218150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697297761914626489783151028740066979236203320604044535479441981998947525319571705208553161777916410772764613921571177402991355550151670979661965240622229141609972270298654087146907919329111017460401206520811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879516616692114857084403473110985771860414380657030581140896522799033707067927777173240196063669059902396600617475966027436477233417132112564069573043007387189697608262537784076168904565036964121017260551105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775692321942216169819818338615910911121296406834764541498748925967693915520889997434834825109771717334774849042415704476573657457752887031370873919072182505772993177204212596617789094627810737489396727533366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528762791538610334809869295742898490087041375521603759467876439843626959137289972377200731453366733526996836629260856570583903882359383118961476361331704366529764436074940164969717395660023248475312782613511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383224713634127815663824590502307339832536083003873024839639954184028662980876689960054360674637478175973859320010970384009432908482521486078558007203028392624814842107356768943650847829172394313537730783382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592154694544997058887628365793340606132391102338123478911651339606482327343027611585343257078225967456692639944506549281999054027881507062990362135050452317325013670624394106180766761378661414563785766044207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890600761875914089607306658215138449134561555571151084513215973829110011142873895994616239385058360323234420828814504339150737808186319372078380311364175837348751976507933520535426106483964680022831803234766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448328211410756609679699510482522794215870693151868682289065990544542897676834078428468663516950735929005944652517186518412045443271163745245912494051031774974327164330478610425203579403271210384808446436333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888218131437208134936589804188526181461668564638974283915059558370394712383217345273482136156961283263085165038215295650842082471083485563684152892779777775636659828621565022125074611675903211654209654147012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997015375097479007950930331880565580101398081229845654681618715385799281286103766006844083084983972797637004166030652461482660428311779328935587420559345188132647605029917983382716373959860235887851346092673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468588648001037779316307387944437871151634358086838550980361673411774679552505415696325551756593001109871034383335920075203177187132116942973736665048161622813974369194360219793318911371477579284604851057454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533916737983269837424487412745470962063371390474048360794157529363363904481795414111734936202604851201230536055436888793862914480787910052555989328252773354359247067399972692273992775653397256696715240967730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204696966875056766378250013366544341201497803953340948430588040808713869531589891754432305576148445992971287256207647002380883308255786375448067354538598763808584763650695267362809861199004026798113020461010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416991929482939055726795795281772696879329114257773205002147601996981522020615245179423898458185268279789797440541656480562100833028605473010316050320145740518887619845350296999926465795650019044827824173860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564841401827369714502145264316466210037380995041855887489630824657407334263002530994978155914212875197052710011571017163774988337879565686539344266119544077414439924874232060422661597714780065489643349623583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598122447874322186601530097345480246961726712947787951944151344017301188323674487204478062366370035242586176568380848573688569023709229088212227208341700897912925654354194078268993055731519169901180705018958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909746549927915376332947359960200898026407946829253612778983205853605856186118945140611322242712861116686725025703363488631585717397116032882123866374918745662604295318985208791769279853205968708273206077204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945019724570616041702865614312668507975571689508067386196133576130779338566529426117899557612822039627861630366976572927463176005226248813002620159344695993323013044439085141440696129490951435113240437281803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176487604395208073622595864078734581915310594558252403107537721574321457134477818430984474999189198857234881539219045201566171925554299875334540023811097485202700537114712389797470101585475386268028132317028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329716311744186507520187692927464210613131762030850679066588256061616245123298333856021225199613207285816407020906231271834484822300789404092439163274524087456678136735570039755142780739200343533132128228732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456455030650470971258953086410011569687327280575346288820928949980376942767152372469074527687494117376112489070191987929642324749483718639132922040334047627285290480570200588772263597678817471579821421764176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503790852843226782164643593015192070991234338444761974897013637518951684986306334712439357199345332511924340248672268509671224442280954862096706420714603892359340106844004753696386497513597358331093783260019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178672081918371734730700682281270186065027530298339014669995747944610702671611160278717065002344548526553180461527980301358894310966438222475439771623046764635318028199644937566237115116051978758708342921467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619005937960897846190272218145072358795484271499133150396203051241109165044196697558251321818617835694275540614559727053523826735711023180819720853948601822054826898663602869566818348668524544614408406952182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433186399855404932306776159182859287438960578046409842089740550683296113972392222269790364697767875517303966644741574726584654780659639564895358195570035797166891226946992715128448647722739811741814886633192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855433348616889849738718678861898732323800424009638640679843517162511269725924658678721107053801531949577164948506298157989469417142820421641655866599072861984938491754802695846196422947793149812238364153855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635914847280121218205712372291254433245566053407484951814467690589598069520034923001249866193762108500512364425478264357338213296609669731653535425624730809028817761133739720629836430505408619406221838502449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376811062989214090166123270039005050229476135188591241064706560312980146088899492786235478123370756373524321271800610530855171703405360330737630187113669353217698428260176112186006358489653414360670914199779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700923304017720157097140226189725490249963962566890848589775041571304292715928933801462762817804245124334611567291708721811698669587131261066558109715515556963348198442249377278998490016913340650139225583745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262694467352104426037919315211035606156132717795833242389410113783086245462951409581718941653818826098581362550702814720744101032283856977012126679321464728011596824377110164058829203812229822825505648850200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486057682509194621585069508284940853018066449912071428675989866884127906465394835715319791629682191642876269125672169472287743672269074631085341954406113360848716300832207815371548154354645837025948503616747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849736324141390294392845766383519842186763466430180868960692143383196042210094720984397666522822544368304222054701432565119426870397199293424806391183114715967928827659016065848116137229441994332637690168222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672271213553449733043050674103705440773459584309227693748403956382048859264704386362111993542255000025611449708505270500916289296049847398305977089314120419837701870006385807844261773612787580995515950384666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515184740851474436356821092425017105258634953457915902871522129953659591580769737340686493813561483468625939742529349372392299112609535278901474152094619169375233960791800588818378506688578822174089302237670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050131280712427989700062737291525907016667464372456678743256001955542420944533633439391956768045908713309834479621296632581163765466480890071124740281515643434631081445327339715432334544926861930744837353290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822283110545052601764694421498479691624938335086438997979437257258503494733211236420156454459583232102586733821208272011023617181329162813476936133623163000555185416994512370308747176934753063809491488282318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182555496737687537565590189158920767435261488529376321078731238757206484082373753032884640234882928758674575174119642595547325471299887844133769717447828951480606297501598104109651792487372542415860607092634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845091163825328468276903779894056097304965982167747942906052290642711540907596304907500457866948064424079141604249897363962238355342656882489249030940135322759829226761802139944680189960320675803429397947950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946187586293421317093272777691651871002498996665855083811335678961748113924008069204414625665382945223391551604594824870277524026560308024160840633583104991593130853947426907323472088411918202484707573291150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471547834800589460393665918892899621752104716304660384444123734509103829324838945600129836493417320422432165642758286269646298705494370864746342771185293824804393582160198607006217119659183259180757449365566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728988917204454136416830186205926694781065001577273034683998295511059964275198344209099429823941361558326538840685298375019610026743279608322676608982437399230458381935994455203647109590825189916629159319639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238665256816957003269642878507201847166057379227252095232109907611270241949139628074816965149432043193064899696752352377801336017153557941527226744043835477478346154171361080719710473088602374503121389008132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806634244925060402322028029469873751829312706554137782988619584810935026636452075093196152508201502395128106961883020837877917531424737800666136610712556138095687549097630224818254733695777442501363334650527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924793757445914665771562668285110792098013823602779085249086140613238204702960336142123967891694992342321715288832979939112946652538472686405318731979322677702760178715157112713190221683641694532904519520461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246805308575835228041919956073276659175695773002879207062873063562282907109317225412441028996562194393033935979312729824901885059982075302805818268734536262076988428838928963551772699775527089280711983832712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993796946311157362367658035157564368020797909806973589289503336310275094784781357000647031676531798437489385931992844679705050146584222778269606759197774314228489834622963809575224532923435922351304412034590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426382083573995206157239464517444989912970211065709594498556475671053910136404655906165911779062436459573934607185777117061118451700154545080998850040593155875095120616554563146200738739443327439156540822226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155291928948911285123125631052770972349386770893098856247973589327598084634232185162498530503627316455508600244801128794870890218752873453929413161466208814826808614162015915549122041986025984886099100100893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690281838621000610033764237919800194423704420633319989321465169743345769912822318261140907089861441540819914737474336816449824325266081666966973361969533212777691297726357984301509710815856277952410140312197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103612292313343138708713756072647955306878567678761408679785388418397508504683509284144719683435669245391453969726703865703172962418389792354536870706291053584095862528817292816924710463959137654339775103303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700476682203370156915852377013990541263834764846638411791076341639450962657613452483409138987537934888710844082251502479447198768883992003573792607365768549301553430268438483889314027219668203872768490406507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801849342280279582356377564388268232624187762216226070904519845932677347735018285436069393524165896011745073761140640689598829299446453818686066474728889919098229601789297804735791247963218691536870365595294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241375457305908715656756767010920950546711178377321047597669794363570249991724776409909961842234225938966846991544188772094653007034437183115728705732067398759578214079407363342360849638323335917902277126826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507441530788977762867716625188109118753519733009863771747861881547641160222390303195596789815373333325829836004518897341313857960092977745880614240104591501478206797394363629199355822760236751034782755648662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272876892619452758833587582219473843208345786330528075574549382895239005984568272914134643234881714858460678305948260145359687621596708124955323057637815649344565257825522938249626575117074949886687654410382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132366557869852645353888011188919328625192592221355667681557609276306155759306626473926089832783476802146055571315939157513419736238143794497888858119633437282923219663203357801261130770108572159898202801245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757572759710389811462813209411824321201157828817875559190831284165898101295993972458282885034709053028292225178972431329487897374321507341389531992364509403300894441779949785506114695615294856553112229462352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532832144929827573206494600570358797413728473085568500241405780699494442096564545420670406712691770342055893545921475139946586563795324498939480729634535959897732503522425366975520262596619022391137446470151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392538385405756899742985095171277824885406609203265598281270195713564281392540661309838725191388287432303850700660199215706888715653136986458667179283657355256586271881440144317143679374810596913709321216806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429445514885583184994985947959024263664255486555633149346893561503414883748846312946530056598074676977360194559815286306276126267663557735976758113842161237331459708729860471384174012488889187971332736362625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745675426172384022032773364763975517549166533844727336853524966915629769248343626504746198823359455938542388739013641770469453957981187527121597768442511799580716945466861749820038914136757425295199235363028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483454755041753280904924396975773383406920036596269823806321058421168311536080639600030298348698625014189519615977098530989341590691826447462124298360754346446243464183758912699382353801438495736433235890880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176179804305001576612206859107119164478367877552875557651495538646290031477843352420182232281862889836049955671009471307362511750465682887493345110800437057008572073227508319673684109210872646030862698701217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623703331339379486490735595468517965042966618255310526459824517353756325028373943551018059272053090105142909243352731278690015151305587405395535952649030281312758926687850268380277539808784196954244470759826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972771764775136237931869535642851430445630127610428264940367974802933019013443998609284058688100268883287786069070057522291637884595429511271236416290417249259287033518121777245720634744414071045798701168348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170670071546284933413054595326178257624745577860528907055681209392136360207948400190453482271750199199850351721819829155537394052447488160840114286829854219815417399461519446756653991108625702661728915721161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739415124540231527184641602104587509694837594318073620219293740011902747502717656734359424736706618039867767305606401858990535751230023066083708711686914757913363840862325384349267186066139046684337879651679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215634062181865695556952305997320961352796043608491646454400985340296086167453343809689982394369382494955094716954167064128394245171412601916247382708669769311806960971015572581478531946257461453503976260554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453501544825945760866597757173914576609587753667249840517245700825958212454852196164378931310988248170038422332063288500432542084921594423734706930124693333918887639562414254068324429613965686240316412840305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735874993770334589530194951951702175226452073203602754639413113711611622289900457080284754036140638147708904136189639814679360905829482054185806765374568452152011414513584740042491714183497910852675578692364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015241726483510873673134583953442150224626155336633614834786432335613805300749667620842875753074484767612212952046402684256157402198984963409036109218476043128882969266380818247741624321491805174576051652767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179645547335354924900140560743663106474176679985725698630252839944434637993051824259841257983586495906278906953651854959181602825231129648862454662474149878023489619904934728196665830714757725320158683554707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186836846111736749565952373215883192224769664295949694007368505028403776890626580850024671729589763991528855287127946920792122067201320528093964522632270868221231475800660317858618410693450455257909777395661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153291728775365851028430430373809464582794463170347696134486828805493874742078360720918196695607797807865955740709604430297860930907972073074960701081558685015948097534353052729341161714831747339661005175217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301115053176164169618772366138127227871098651734520385737873021661272225806239456342389511827106389993828193946808908917142686787488703236974236982543558888324608458202840234836262358836434932664801755904603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403761138674937619135288389765488612131811530304716061968670436442884349882255233129687502916354586542686608894604692937059649512844897404856780035852704039935626048982822152555719969935257945452617407432708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534118015591400125239948393901766175216119230063203926935030744080055648532173648116815833020317058976467823292023818247676449092399715748466900662684870792697974543610502665979171872565458187225995671847189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163985103758010266451314905894653201170259390298092672155326188112168705958416472932271969153732331551498788130347398894896254271704631085200203089349760747480969523143814485952336287596393157034764290005251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419094485013234277377902820376877759883889102242894658630718857836325840114004029582015157277750552204976717418065229681281445359630774683991974361507755608490148304881526622616887549680346283304068496724884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398164443712989675246221349980717909832538537518245143182298170149804714744052082067717348293075742446071778472524594618574890493050965097953905422530692123607017038379108571469830225772485251738459145607910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804363740649554498522211631107924025308412085874327508302573604673559050242876200960582178254070725358819424274822906126115650670990690000964622866691935026133569804484990306069770879179642034494706647343583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162688397915039028415489284840501018329343016939308597691882076098327288892113551698234456444733325307296239857923564576768444655740788184753280032062040912485037907903369696799857569854811754811838668849282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919441640602074628031822157640294565833974760879869175255503170496291961917121507212452773313637547286304990037502459348596003211514499284066215825743674227447550106391222421889039120688571499028125033222930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702174411246083737007276409150371333361497174009051602135428701865990605537125909298969887572687800067915869091084574078027399010187258340250270675234927908455645847233838793694839321219370566310273581109630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314765304472710158730835918654422753350609450045427094382959523450061795081549912226067705369540347087231670377358003858882018536060774078592030910013073668615332051430948329712861083660252455592697326600103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820610467164454539667827506633761195615471808114106637289044508607112165066033989238555537675320538799346850503492185865362156116256077378507833681394845092505697034605431168901434565623077243178045128441499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275299788425636726104684513955787617455426140794992788515941932345573064585536376766627790456519468752359050707029026423593768921741125833571439855472717969334716699045245738576573463632340209580112235447644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253598508677174520306477125971687162927198110872264071673162031199505749535335078557905805522805676870940035886214508419394511021296641803010250719004143518026258391841696334287108392447011217284273032774701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930498688498984582499837138589166913141159480537977042001597068934711183157338901047464798780815652192644112417536626682168177076943238146633641948679086382584713414390786785266254202550798750059834420864335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167113410443501482484379874639160009785800714886541351357234604662347929727283142415592080025103467895454275219424132570402630697694654016135485468798571442948680303910184410863890414481123754437128533082399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424079756999501517168219006451178870287463522929808818771007290339729922566421130560137577597719013994123632672808453894003190961542149931926133641122555360118366273278385267401987547818763539357339492847102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961885994749183952654963544757136504122860593117832774704317170217555427338113164461220577791460736577914630762301569877794279947080006669333908086631285203725804287139455275693441864382832163075424935767434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373422820998321512799675477151086725568882198976906794323199185003456465975468942090858651868854156500530177043477744794386727039309525080717481143880667694404088033700276228922940394954645686946736562765121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495725640922702645363838487828264437784676467889452186137353554365637760647667817089845054355114691231427414164836797645974961007517515958073916479931951112693660164858482939073318797391690878819561867435883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940741866823756712442332351482346586764996451945247633087053644068714145683260663976945480193094371008679575123989119060859807956189770286170467140202639004075521169679039679720071713355977146779184571361114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448724815492388450416874884403265627747095296067748119527859251481070284907091501865228753429418363140611237085873262940243390981983868089791860127462081893950209887488319592020920204199143110243288618404386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542472255495116778349951376070493031367598922164576741761560889488299509311427656818795044573907260386601558121381695557713584204354934789536420233897464954927668535362013175286570550588094409771668261877850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998647312837668102316847838642080357150661043760802759009924176268410207319104116864752349250603645638677729618049536610561814538747453647356295576007682838500265390338220423592553982932841939449420500089988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326312416129821109765779780864620896364347208805915536423226483126451502160519650265847206670613012049338696992206072120550748469831325044567903619793751145105610994059722706102455316434184231593135390530727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149205601492188788848500428184182953837747170367919128937630870104272072105279340761590955605690287884154359370412944870677376427126382152837911463086145996881385154958969349477753009109089564506288798749499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126274322172432529339257592492447411545058597603142539540190273271795348245344711818326753377256883131935700208316178318579346955506250987414808507383726201448358464003533691270556211958906298935556277917839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042161988077173466473516468109820565844567718498749974291629569527774417095631284596102690145422333953644324790898827529451163209927530749937938189831475679444124595963726257884877982459217012800557580271614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515542658263961999930983673079503724486864611493730495761294157070706620328918110723891552753833666381708043033055670727526167741946306060870155565744523087465583961240503014805791061458163090131489886188210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096060086888484095875909397988754571250989027721154014401926221727965465649895992143756911429020204111157924873126508075595972847278699682789162682786949115247674585192281108652677009819279435337913553500514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402442190544369303801749299703208434011087332111453684235999932090895156690859649152277667229639694224242341883180352109911640280643484735443798320000362808190976855849256117523929774165820418448109089512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533354490598834747010168086963731773732582913940201499232920969270678316759681476696675208077482680711116784929358461984186261721109253221606852538815918559880627768721643818351604955385279364210903131036078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717054976690739276489514055215206092541329165702491817166443720366613685787673325110828590381921544766528622524635921917501303428439331954912297279269763953174862232078789202684450835204124961260947859764764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740814676916977483766418386081752547859685152469480775281790629399270652523129308948664501479045471076151553997996389545735499561642096460474745985377240519452042446951551105760149422144598507856289800520015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819894595150453748572348798071613236899889286204993413477844596482623886893449564130688693968016240225696097259058369035914478304640969184582654758153494500776516075819566412400743361172866660578064097906850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628734248527697091241463260439116468257193844749765274127912883327647534004587978756721972850802515877654905655892204714962052521040120166987644538174938761539621762099818669564349377520407867045502757495420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414033581662171052377954778031082878931138989447958611693922813772482097662231537416555187072430037844683873444610185876496624830235355290685620889367050129145033747129770829859205524051878310562165213224612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080479495462458224013571415849006733084457388181196744514291152143427939269965562257198643919606775303837468667222170355689084250348329476678415036783681989747562636076056173959495904537872887088011965418789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539865178570700658209980419574495123587644781248610414755659045005537787454257327663137388250201726489696161291010481279326374567313473871166387709984542067027002960111722637627272674521018118655910525861453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647212849587379180354955908545006179881321198211429825837530563509789912359405448601790248626076719483518442349058719075337294433959240918535280295720103839420962334277562087477231701175275687241012245302815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096842071064228228981186402676350716079693504702100231878109856135679106593066007897762553197898250066315156298335443916444925805700780106162803210220195704757986565811680933242300056066489673694876242617241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916569271429930280203147745605054466184575323059017078615644303819701791495676539404594356060660507017393893132134625850381073195038674483556019491822805167730576850268843254958908956081419950752565189355402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662082332653007577845780127550787262783016182508700842818774533207879778942964858597581928420499648296204273540733853100546993954125461947347217039952702270357793858512968366440678898374656563613544478066683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236785510287628680425188163584026162985180721152833223758097090574535691784019381600243965432578250454451969403488409243408578999827719151230309473805540308231556081860716158343395561728106373311060601526496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078331544722925343359638456302152171049873859253102039789581433366384155929925508944602780701796227452105550671191316326265279936696359892383006096981600167088134430020391177191630701637780038300371126418241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401168512758738794348666883757228899613429938664023640589448245291242820165800478166941847806366047848381761856515584017460372897821585659083148930651177919857231716476472418930431531999088154997137742072101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228854262630851814551410496748964257681720314577419760554011665143719337637218818650652485445039993766092267777074793998014225808662149871912470138746989567658098163424079513570373348683994607400148381880910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119071317918763800373820998941551673629031054940290537253798957737000881786588704904392091026112781111293551942277819214700743637373519008329473368732239654947632992827531835181262400711892034565885546809503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776193730876704264970441151141289006212611388530603736722959581611702139503007414176611284833288601673671673203588047015802478486463980799957676470792331064456626033730736158992261787526742601353600729527851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691041156322195329726954455515182840945395507867404093718532366038779628051431267662740364398239831881760597852813466394695605558118458939807050113575168206806948943855291350882854473482815176097154238595221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244855908003706950156080193072146489726731639389255381599586170220591397302709006385884149534616276426044283738912519184781985002549826303585100634103443763340733469903127035583080112435481586611646799047040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662049975065252017547135786573464383646763792685019584615106967653639024474899543219972319061169329622877894612265668306435189561638995745077221094512799188532444937648778904054422423347097958726521769377763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594976780877461912277082868446053257271801923246319994667678926030359795781182790004713940921719399874076000999706958163447923360510616646007787559395457858135619117973484724275643954446900185370303889947219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186834628390792947080116968639485118508116438134602812347712665009370864349808106119251169983906911241127884922501074046700100249875549803524056367371564404834835224610219675040334226809019609191836769753918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217550021246415643878011473635348603231817697699256886234224365116141378358486034572918456459731014580144233910343661909121175141432240043381471464957028036817478157339925527876758136335975360559

- 4 months, 2 weeks ago

Log in to reply

got from google... right?

- 4 months, 2 weeks ago

Log in to reply

no its a family calculation started by my ancestors and still continued by me lol

- 4 months, 2 weeks ago

Log in to reply

lol why u try brek my pc?

- 4 months, 2 weeks ago

Log in to reply

...point proven, Siddharth is genius.

- 4 months, 2 weeks ago

Log in to reply

now it is lagging while I am trying to edit it, I wrote more than a million digits.

- 4 months, 2 weeks ago

Log in to reply

aaa delete plss...

- 4 months, 2 weeks ago

Log in to reply

I am 314% sure today's dc will be pi related. @Siddharth Chakravarty

- 4 months, 2 weeks ago

Log in to reply

i am 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646412600243796845437773390264725128194163200768487362517640659675406936217588793078559164787772747392720029103429495624476613082007292507345291707642266210476730378631699542374551174565220227833240968035246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177882310276598251093588923591620551087632980879931651725289380012378174348968321515905624933473702068322321001186373957705674738671021732123752243252416263580343762536068086691635715945515278178039217743228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822018147347990223590671381469051160519223012694823161134174399447148330408624842691395023367134124251238640266572581309439676219396554073865242298978797821986379182997095579247473203032391164104459069079778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355800549448948848713516053755934023457489795166024423383214060300959371055884570525157042662846003544028236787685509826781617655203757956554816778960389274983556087915411777494235734007641610932940038999821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700815488952265167228340452772191069914157646394852311267947308658031950764551976756289574288817968120900263871452578583152776151090886317402436956805678730152354278047934142664952238337071175112653755039423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161974055434365486980054448792959702875903522584097826835986664465860456942413907290952662499329029734405681606838057266260572770884070734714960600645614540707344327825140874742755067223048453570060922143900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451129159136811073940551752080196305393507402485095537725003670546651623304304250874423242624046321150789973369299854070416562610419767002024150948924118560924096376044296120023645907064497706272079190192359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817122049303218537406272474215197403057690436026863607807920047762324295518294735220272443763390277213920877670657162416397517858592544269234285352743288563368507896519620725194165560618703705502184628454342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218817636796449436171304160372430506584851317492640558551940180051809084752118682246169761492432383194864344159085580110730703112015022434160731579295287529368358203970033891121141706852193665897894595031543895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318686599680385838123703291562075788359487809416882055316051281901526475928075749581545642213414593781670569928682998956119823538371578804804787045841753946654976901732203108900703033629117673084484503721456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727975730382459894668096808222213484858738229992817940908256652095816554724752445667436975944746863763324289042697761067919339109833004223102937282987989032093910926828363061736101738781236798986451493117024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644376506378618613243486357974112585208634599278036887924983543632984576876501650651153450086957212395075447856831736315571535270465242352597375134088254616096614407466755142268360319598010721524635510691718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014354500174327307936251130702982504994179942844511464793291545995559095878076216366685917910654359660652535253202736507259891212556868428020772464877220109966318295595529033933122843648644759735608598407609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445620009414656034992808794051153100575871295525719641115068503407737106043803712595755969859493620584775120263549473475347481892622541903526716144292848998575367406921652716300860606543737368235565886264863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279218690442843426307357607039996694307895081472697302538173756949227517953543261569120405948328609499923664122878812264191485048563280720664185570595203750303229168944894275783060909108524106014006832742055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160170196981665424263787636014530359465384503254766749997373408356651381860251565202836373891710165454148826744480091057041861626268379711208861413572796110990882929702296921281809787989513915042709367864449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827499843759421130204182973084171788130903795585456032471708191953027714657945554755447542844344081393889086097760178573893075186619065050180771650018407443258540241843605011182429907023234172436745253653495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588249742262418853525266367028276624993498294887483310617642084290169230528996089786041300651090281798050405871076711790411302174827966823530019602202531855767898433175868063783599687916015389222202365757655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213602352182367412147331244999443341559152743159316874778825331550927703362029012225977948098553922000645271622808553982789065842334475528212765176505726632676911410750348458718969964348757751384791481836351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830021613682766970262234594187374767335379988844034270468030425516941271587393203984443746045478161130566251764127598211819396611018505628805559425660600323121161809946221293010024709133471506822684304586803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434620185873282529247965052866814085035385198375236374519256227954902905579070302839501048548359298345428144873043580470533150815105030015214281171753936491331661726212354055278633080020831770556302949635942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576953077981413657001747613569669861460684914396995738376316958246025133421080726217136019430180872098885514150241638183259752595931655318658331171268579415272066122184226614118251546574848783126103478345467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963302813916472089635817717355558485927065245048625164195405508013435103233898133783024977018227549063814999647233340796130414697394763726508692733471084156856084309213162404346298639208416600559045985064912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740341135971991331359465536854466923676525890121084137774324821918127478478922872648929700323718734561579815998348391004126010507469645994303319788106349139238124905030614334079183280040639070986725961970983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832613950143295094748515947246675272016843165866088075127685847555411843811690116220055521134844889606682592274313190079630115870846701176549353930465633562253112447277966690058311906161019726630739705425314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414746083399186968892711569423454926512466455077925540281050376220359675305586018564920560628790907694533392088088494778288948511221547432301913832455629938810206144902668760102077532109156849778307408596498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897939181583945627081733015821602255196598987693761640198612074667550488611108557267645070526224461302223358520722736204850572892388158849387545352291863997143808840617572862209501225065158631042588841343554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815832270977451809293421931898158124828326589500407048552060998937839003419141630446391638805496587865013750463416956551566182988786307058423069676602540530248114710078997842118304890104640568965397028855955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851973700932801945303205726284526580460463378166314299330766466465307605905489628887241897160602258826175775399220551315093772006248630855628204935757527249955670892216342339836025653287310291940070411769192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077105815742407214963395603652702833344073057500736745622605846498861151016896121811190584717144610687197610174565873737967406971374232387538390303172002002072059284887851239117464716737437379232838819662016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699381930691487447171866461831119426031616640703773164870018647996002430440032422418094022785333090115098808706782688353172007675225531380088187804316901900728048317992874141254761230896068330958283776676882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598534812856846193776698942774591709188025200127499055594072896965947933316722436215678967769667080352290390184857308062756708676586271047694092035655930253527434189659270022270492331868299915609364137570049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743052827641756700502880404894298995809481035348339341449278859252621924155472319971433850866373209266327282435149336407045896838523456247443611752567669877675972234392063575074715529181027626140129924804228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594688382984528829229662751371624221729546786707158409241840841475575825393852409633020513497047406953995678979817278609204622868397357798151118681526598846069497589654813146511503926263777495137615572481951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163617414324970791096581627464297170728717251427458983568970955346268201690853561089448984071005819203021769451207717745887955195104733841847399807963067678858451675757299043069715426423834980098708699336709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287200172155886663457349714095337211516559857579417244198890261670161016115578343150254603287811984240274846085107224066767787608552476177738330895026100643883505502054563243461678594519417956698749685152448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097591677991584260491971209543227026784326542965724032720887143219996453132025871096771651285496699625526986073117637182074988273997706019913620930832307368382064557325637659829125781314922242204279712414416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132917179929792407833907157579814268168646553829468473992058886316559349198678969628404473449680240770928313764081033522552427174041076735654244410044833474401017264410529547872963458986405012036080244511903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509596740456168404517717479527903532549325891204833857465900967817304160005210889346107687540042419778030828851812001733695591271377141950113613044097532791905048915832463991434835316486815485791786329351239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712744358156320881066501495681435587965769098577659027687074536592763649755534496173080781609871032480137951361703677634575949756862080139963745517624251477806287222659714554829067692957136435721526744689878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492699871692343318900221415031139987652606887615667402101972017196023908610829749276395695411530322754601738707956259935797853024434767163995914623179312399899869284379757024923695515872976838540052276514956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634325232815789113554504533719052750682291561850033284695679262262081904424733403625038927920715859600393631533688427243753667996986479347411331983286194414606539227840999031438403545650470567895520248271760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997704518328535864804285568222087372136164905863032563689130841037602156799270200053223554398046531193397754590440450785680213984650096934295473102692499475864660580916699841606846460872939438082743082858174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612186230019866079877826842459338356389195702068535216032116352300649887446002001704130569853651546687520238593751832803728511432748116996836928492204473805706334966187112409478359158696268586435891413598542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324899630770113713446751569302448854820771241335577323069494580672678452359436315078727281579015730700331787968544362795257190236232746142628687327380094977411228562376632149046532940720261975390717404222595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545378088270634572959621690853835353703814181155738163782090325615198697453576464121254980760051561417072980469948135934831505681166427932193352798227147157673401860887215187996693502527007575560997198828630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021090073207273697493446304997314425715604331336903876181009488731207134827108158898574832658542075100779531183268617080370709359276149367825308583404823510036321663789574262025503501168615434073795045164828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294719745946908210256347889954317715243796962112812245034260663992688521330791963702777804488579205730469908009234401866381132520971230964760599899479257598510081730396068222199753273016065826285275825766950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328794474109697038798547369840254580632948350223593935435874802239897609162962501104739311694491006669072306346931301697118206325352692440438400937242844282097093648569094689200873717532525570305435398287278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986996547863685341028488573702547255023656634186809190383886707879072084036194021646701215348379781518328264725786288152071010814995589803381189615694417567613407170465385121709021237778843336496518721199054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840838506873416250716572741851349520849636709555424504394839480459791562282824837879341527203622633695618055563710768148888936192757426599358235594315308879330527675587475123650658439694756042971920023198680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749116546854997164539416112164176107171454017651905650525206622778831290457196932059902413753959838619826032054958395016755525096441371182225614960140030230354078992096986775078672000380742679705303071679322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990990212249224123151689927678558637363155260025034884878132330019101893996167027314169996265119457426367619650024347371727290284622097983948710659822700099549188776961885054326532118022194442822284251525561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015157143115795490933903261411918654752376247215311020793691158487422058227473432017355850771224379698579654915806279502740977168861148076163151618553068566924571717692204436684331273989337941116297224516999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519376539734984802454976076024403080844890106838786972612370978357824516680117148598367940552904619826216566917202742628548239339600182545994092543081696910329784112340228856001905493427502231852947128296096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423187145518241528676305675131162677177350617511245463387994265291270105789956718057214365579183506917779307040757329043974949958224106238105149176502385041827300966201717509405908054089572837554063551522199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337883360976012114848700556016581249247068256844272045472896309420306650445298646223594226008554991589149953606498428034579492757009497959450602378775019470624632394954957823082283066840818802521076639074230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539347888587094600582723230519108117514234912687336585960799891732928915896001815091816337400806035475200051511751029012299248709615459280262060761698272181029167315548929423740851967433079166078499055782101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878237438944115685176271711636309401479909649456354592950130739003626821007326370082356150691269643183351716254390304698989314261544263595113634660573786549512445747526216789547036289048304849968040377225134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680431608451284591604244132698791253856029915996727876619519505317648831346932573668946443825581391084862096637426745798313012223438725831244220330945714575414704792938758582389977385152135237238955966431223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081521782826112293131182086600709968603654098183268075582477670695041099758614362435521619453530292002546673679964850433731334952082107511992589266389956475698587079018561237915788643744690378715095001125502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352776325598980869487211138459800141238421638278244127365424467488333816797162011288619141540193671290947899026466644315609837296150196862422825067230616672094354657142514930864248877859868275958874906507726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384631941511620257790786307180123115945860389656252655422334623445450739478869026815949751311688514369452102168831904461686297633252298638518188500492869357276476682385556463655449640063176482855757858666102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132615853187176388598937792918890299879387981000369730784895927062541048485931585432339568310423902990702634437978756918554340897644076013084448197862650794764408301349424358342818859152592934714363175337495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307076608498252990003178503058536821395127350386382460564251033777558098646433980171862081426630741725922260005110913426810746701290143016541010649332122837908275150010035300156545975083237729654396973820477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998100953534135489087548363275795224072069862910246717035792514417667038866099069857262605812408253362252189920004189757457653151230000644457159317017716886354833330519215820559461173577163211322339319653203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517977821450547222788529872101978588460700474200284688737958442289499743336562718779917211379161644925413297156528795295326397595385359209501386333805075613695308995475848830242619627589859415137805158050257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814053714065207581072708481672639770987314551626469114232861030369329843303003236761627142640675878067318839715150027981633747790787750383079867594045910739210345874042196170349258081899072059612915864202028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328334700751619790086872854399629815756058916376247230691628711111376760864803237524596649304117539461364643378046711650555046706718362212857950480671656304276267114299991134876984470503706379001810968886297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542470553759386966246563341215410140322869909301591328858088312412428828763738727428380385907102927486333515030904453280525977956589205545624342979827941348917563824007716121733247364285401606100443376414572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195153616017221589042878567848206829194416987181928627308270444163039625471305328438833791337476873582612211625836027289616245590418967702474538275839665229937123516304898330124214174557885915942560597924277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582020424573919942530942642245042026890381501526836024125598075975236481628093048912746151196231546114008220563967806585354076686882275426503812259991620760170895567474465242344520176616503259456659129667863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347880383566875220034824576949084568626960577157019191748922606352081297387974438354832861369395624503929768057832234021716765559177668403757234844094617629312884926899368713898388222710602790379900190455833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503693529270115663051533519186418648234424999192720272953459599063048723608041595760029668121116831723660381105428035914457202482564561057140554624208213435209481084171582895724450720635468160023051201408480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254221827291491598105836897025035228130021411924860142480680797536996477719394906804683552808347327610306049409733091690316783097934636611832784531868716462680738833656704566010423768505801395074436479639222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132403397131655043918879601983821385850007732424617788491875814596426423378897933308194881600401131265256356932446593984006368903152547229239914144743770696338935761926039189247936317800831026114195485436051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819762844028610258805392339329474672024088541276492386447602161162620824212991660362299184923782236300983478119522913821847326342285759120979805478285250591837983368017874112426447460022562414980691400740979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504583283874853137369113510255062010277534580943910500102183397324565047288947687929892594501987507671223637918758647201214966061151280487096488630562284408393694438721692120849200851558381251070741955187208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631142254364839654999834790843070217643855543512574368282281530322223808347679511135570148063182004532207237948918635721491062425269939946710153668462341051533381426847706275852035240992079720869914537301095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221127374050789272663406388506867344585607732666483845780277189114758013231055198784133652185190714606813898688671031475982646112937954395266728672759948335902597445878687684964626834844344141359177145877660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687451082206035554108176664605241249662244228045452432160320360194641356097920019590240497929236732989245539901019801121402908686999205758917771880741461222050247285857153675307478143897305717872683663601576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429026294982656755335273100468788657310472466493326567927331345122955059186232937393326086077451350775309015744438294873397796053228493583013618379586264803212973684748175164769136621103603695091066665051717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455174726278180326830585488039709770479348310354398559078435527766760331398846052715031388563324676889271045958519328951391678238577357726581004798256393551935200552040800287059678249739374788605283564935914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400851746604296274309768387151945982644735940234248211044757291117779587731341553609527595708986125867714562523994500759380206093550248920084767332293085742222550206455690239126543663578524272429056053205754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996558919392205046999821062931609675651790751322960777857553310265858425760866867645355209277482755675451771699508789411805936305249944967012375980065534998739666395394417017059698101512719333118407679232718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957588376168784364346792755863573972253564884133060119289574642809357858081132331433115287482179766039712579528900364071989233281316116404169377366280132597382222374268189176489596422703380390592959649696482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061621073001019262483146821203551699501522007316384004132030333242312167082685468931758436630430784350785928104478492663952652398718644173380085681692321347429754583269402161253332837900960648627785494126679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480951836233233175229370352102914641331275203711716675487206347389232937851072902951446292741546761947942747166916030497829288961474587026499797079206387240825023006425544995904011974108535167844409018806462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126453570650830092147925834989247512745362200610585457599736931352970781437428413405519544467214894150574528391716037154530825255583432025125424166244575245629644579107697171521470951850550035505439063168825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349282934390514556706074460797047693164627812141713818274378561462197088087021064211057377851471358837377388240765280451914271374881105597447183100939375197659802100241012511230813682603384744910877161322857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320192528043461704390289260279931404361370265820121312851488158573111782104131033572888718172952627112000814750640268304641898876974787917317370381399918882424169942121527760451859567119094180737347933109970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713632957423217357446473421097414917436419947319588400526387269592318364232549184559550453437784670947045095942012021142208641912790493599452137392487110743231495113804293793655436372172634819075711353127093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032934134728905013167728097131626834959634092922430311950848788671035335200237127302029165929752526570392104214963495238570856057234346215769569851340683045483315459075364711469968242091023214311717692277385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877921513113104500836636310075175110259002808642771502096271366239740107528844546833161821150278926430729763557610551124620332480053105995111505431484829553432959830574272451737886527193000732321736237587327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633620779550452193215633612468530317470544394029418292635524015545231609868255313897018801539704596250169179664812501555932311482673005633835797260328601778474149600456972578349562058732873012451455576345230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290482516701766198207306183312392193535690040705215498939034465938809047507724169543651858075066490459443188862978723571603022481352204601090635214508280639749275512847694354996203399164488791974379020957188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321005003940073106632075257283147115192633289285206967239347175098295260212549476433019535743835092582831113391153906337661737307723630279889869985799450165923769067548837988929400605162826140048150469482814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717335949663371882149192837871164639035669257799424573943554730449355593968480327902086141968150826064810924688543383329866390745478052636291615627988031878282707451630327863907566533621975063224248645769459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771518496417510715984163572072412243719680672039270647894278942171284264133427118318479441334606472431411501550985511712414668243312352062840657226926069047479196447297528322749569819632778728162595401202053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061844683749631892913745993421603484822883158289730942161473689255851699271553115588887600721703410244587440208443428273004673097955556668115013003388895838023146431382900260076322850347583078087889518031398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270655913084000586265639963911040685104128200715324625642637145635575769452849271126355771963250658965455364821254592633552572925952814993415878776515692231191510233734407169916564763982000896984629843997759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936725020698280738433341175283157314342639896416347127053034775699155800311815918091137880268838547576972923398882860323029977043066628869553012102727057633959897689410249968479498168420119925613480756440406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222063365824017454988082913018839140156809050000849546573730003274779720991750746178595157995320223728523592040074251522563861667562031883981176186119602216284743190797025036745928280467817853664739356003540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620534522173119409577830195360518503854961406218253061820365182733706211198939024488975386358180994491815784878336528865436542248302027892417049689651104172759475017812267858143917486494243573009091712648771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187222655865040300284691469278646800318360346381726405702707422620342971875558099386871240465622333891464658305543013155095285109726300508051882652726853353729373385691826937171677303161186474948104242151279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524927558029979882409206644640425859662008887419164987730275403729204215810937814713136226288666694547421244955284909149219337193623402943371255755699886529662364503535192026777637942482082860568936231521523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458729327052108535726763805642288409296658844777952795467107351932954747130150792208403282322044289446782183965471109021173407251397247573570085553127432199967512595825680632358808838843662032622661914149347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249894725830411451495268724236189967630588168208463274374412103905527652187107355645257133601145580455856845586504328599176765196193271143498665407774514500473072711714795712227572018128864464407775174603282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293846454960402703705085394190927699370668045517194160403763511801855136575451095247034602260020741742823849481782254906365992084749037583205744677959106755660640775009347129817005818769408027992690460594987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289089858279586256599013759687500785698534209443995971523667673559911557090061413018853956006933050826115788315979018829128777653969640675392080848582290475561905186375490594176472080908485239299663653777468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012282836279851502637454279667177148419757339065728715430543215752354493205346537542382048448508846345908533866772925385204449844131368637518941176848626136036819373635133932540806852269214743073291344676252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292292377520328744890200405326681393547528550174645317172145995081455613646925266502271153373818175978557950419880754858113362891549009039080607754157573613737559880187573075362487370012912238261134381039234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335215538523001781108276163630370902052595037790925341104705700465652519779256793314108866326405926231788931260315285758716424211903337987257758742901290375936269727234314893572572418837941862768645667758686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059485607891824015219982852269465095876314924712795201644676474027046895454351030698261799914022340728548915468068420957432075066211544876266446757986364438802325863608869187594422715214296506641613849638150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036410498459690602253144748229457070252704363040611144551422276693665012542523720743940182775250894143291521517059974545931259468212143510622763303318504339488951276720637291512493681935703191046935729052762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629939932081645071741734905643398652199866390557093521198524390679861502144862392843873982018760228547123039494596615725875096503200712476657593813721248011341535506167547203695791055974610671125417117453695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368544160710823177510780129830425381419089224920859536461082139564811320531607370777207605599349815034240640775123315121589992462974978454743857855952270892671024791991996450430401660056217629623401492821816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202774618583728185859970177211160371098273932414719793766386484316000841579272530611640850151500165203002001427433763904187886226352747022589848494690776947476132763910525994056603823823716369435554706581748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599585996096750612830910194748865650751261397136329276415834913042083009508511004140745574437849278985760726105769741819633696790755188383220173443764398053682962687328518939530815972138409987536577466354932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479073204569647197863154908628412333251748127848288098487610221009742783475164627905539385196688956965108760628729574590889201702386720740106024538941519547393281424662231268923626502720564026430217769031895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886608059397380546894867556025887068710308118989220242174952934582195353009915613553607315909567346990699248742680019538217524621053498627010613215907572602408043008278683562931983842710521983547275117642330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804363097477453767809820873498038498259924881067029775494953522829951654655985068742831762852085719613937978285057790149962321392204623415241682380388944662426737300189654337647650363412518285095120888648562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069196578047057471484600729681823722879775604960891581786867293632379024157920472836469702103139751800978415985500070553649387532125749616748758725832599259576150743391862284379883013460445408808178096854911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442686419708923064846305675457388720247601652577608529377210933584453871074027292591915246267623538179786930642153401316337011357356351110981418211296622107367262696156726748307752488744484167665737024004850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149031760755373219447283058221915580788075245369693274460174736052420586469686975770612186776197205874910451651427154954238539202325269751234954654630906132946005665072830987280338737351553752235631835702537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303687368385644037049806617909200831710788210498183315526148505373540750351082239392474456301096920422788447371696889509111857369268903366597185225377703296220167081065518126758009408525150684775792191389321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755712527864370698983544440961391737903545485180403973331374805235879109555830404815348045391878540382432369073043102740626417777626573010347033840211296690848180461624964873947345844121553025815222149945822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961907167977778025951163147757626402858826251481582164399441350619608117589046195115853908261335496038803237135222451696811805975121895900285917973908665244952804078271302700453774372678555325048503974637573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840975477981407268239569314724876098280345081189383404096153431486301124867646531547875845494652222753187735608908350438370811208824417599385864663093970481172530040203058134090447450511563770541035014166861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001194975185979649409914897138536227945887407609904328542281277305818304024945108706336986946867400894810975397100908494768304107115295506388876524905456599942607738863473945525114489720361047937572544723966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022078175397233716409698626492055766876156445774464466492547734672972555705388285907892317597067686398249662945556019387315271036272012429312017642522464480318195446833376399461313836144570416088834222537155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473294553124042477552083805237951012393843585877545499900127206828665999857909842930384600732962384262907972182333727476694640152692048814304227394388383869880723650340088095245127260013615257041577497895464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308022803665885309302704619400614464491862785664244942081621020383276111696224421386397311571301189918531699151581650258342812848741492753605073550149275164965568949868814457828072415400901161769365898628113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562801165332079254551969851910384281572683512010923679952429068679954568308388593013667218521135364172442283704920603648154449717799886187390619701265066843706404251244599519090062260821798454151398740861561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831854809365141752690405027399232695322939310360456984252059471087760223210167746792793562530768337722069298099521332754934107640682936962565380979829922150200761906567133233307191753110953769674314458270474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553208276044077452544230785453748112596654635574596043270368542157386962244479609259367500830989140006853836358817787486427106882578787407992834182519771408422304894979155179876782746847540849289938647634983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558098067233241678261782570891163017980881955837910754011805096216010930804225701805492976467841153876914307088247531217231379403723659287710434554469626659999262339332986411371001268040811602769694022871365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013938556806427007782965968048607751794922121562917386716354649889853835751532497431583541399132213650515513841090309027554332364412022530077042821114714191814757096183313782294342072543410315558281866932838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188669227447368995062528945027771898946913296346758587926423521163354647468642605485613157784036114314902695442750564803847888794329565560484433918406020270451468278242315140650702210485195920723120049337176738352370930885652643448419467734538