3 Million Digits of Pi!


All 3 million digits, calculated over the span of a few months, on a small server...

File version consisting of one, two, and 3 million digits of pi can be downloaded here


3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931257058635662018558100729360659876486117910453348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800700237877659134401712749470420562230538994561314071127000407854733269939081454664645880797270826683063432858785698305235808933065757406795457163775254202114955761581400250126228594130216471550979259230990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901938971311179042978285647503203198691514028708085990480109412147221317947647772622414254854540332157185306142288137585043063321751829798662237172159160771669254748738986654949450114654062843366393790039769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296617119637792133757511495950156604963186294726547364252308177036751590673502350728354056704038674351362222477158915049530984448933309634087807693259939780541934144737744184263129860809988868741326047215695162396586457302163159819319516735381297416772947867242292465436680098067692823828068996400482435403701416314965897940924323789690706977942236250822168895738379862300159377647165122893578601588161755782973523344604281512627203734314653197777416031990665541876397929334419521541341899485444734567383162499341913181480927777103863877343177207545654532207770921201905166096280490926360197598828161332316663652861932668633606273567630354477628035045077723554710585954870279081435624014517180624643626794561275318134078330336254232783944975382437205835311477119926063813346776879695970309833913077109870408591337464144282277263465947047458784778720192771528073176790770715721344473060570073349243693113835049316312840425121925651798069411352801314701304781643788518529092854520116583934196562134914341595625865865570552690496520985803385072242648293972858478316305777756068887644624824685792603953527734803048029005876075825104747091643961362676044925627420420832085661190625454337213153595845068772460290161876679524061634252257719542916299193064553779914037340432875262888963995879475729174642635745525407909145135711136941091193932519107602082520261879853188770584297259167781314969900901921169717372784768472686084900337702424291651300500516832336435038951702989392233451722013812806965011784408745196012122859937162313017114448464090389064495444006198690754851602632750529834918740786680881833851022833450850486082503930213321971551843063545500766828294930413776552793975175461395398468339363830474611996653858153842056853386218672523340283087112328278921250771262946322956398989893582116745627010218356462201349671518819097303811980049734072396103685406643193950979019069963955245300545058068550195673022921913933918568034490398205955100226353536192041994745538593810234395544959778377902374216172711172364343543947822181852862408514006660443325888569867054315470696574745855033232334210730154594051655379068662733379958511562578432298827372319898757141595781119635833005940873068121602876496286744604774649159950549737425626901049037781986835938146574126804925648798556145372347867330390468838343634655379498641927056387293174872332083760112302991136793862708943879936201629515413371424892830722012690147546684765357616477379467520049075715552781965362132392640616013635815590742202020318727760527721900556148425551879253034351398442532234157623361064250639049750086562710953591946589751413103482276930624743536325691607815478181152843667957061108615331504452127473924544945423682886061340841486377670096120715124914043027253860764823634143346235189757664521641376796903149501910857598442391986291642193994907236234646844117394032659184044378051333894525742399508296591228508555821572503107125701266830240292952522011872676756220415420516184163484756516999811614101002996078386909291603028840026910414079288621507842451670908700069928212066041837180653556725253256753286129104248776182582976515795984703562226293486003415872298053498965022629174878820273420922224533985626476691490556284250391275771028402799806636582548892648802545661017296702664076559042909945681506526530537182941270336931378517860904070866711496558343434769338578171138645587367812301458768712660348913909562009939361031029161615288138437909904231747336394804575931493140529763475748119356709110137751721008031559024853090669203767192203322909433467685142214477379393751703443661991040337511173547191855046449026365512816228824462575916333039107225383742182140883508657391771509682887478265699599574490661758344137522397096834080053559849175417381883999446974867626551658276584835884531427756879002909517028352971634456212964043523117600665101241200659755851276178583829204197484423608007193045761893234922927965019875187212726750798125547095890455635792122103334669749923563025494780249011419521238281530911407907386025152274299581807247162591668545133312394804947079119153267343028244186041426363954800044800267049624820179289647669758318327131425170296923488962766844032326092752496035799646925650493681836090032380929345958897069536534940603402166544375589004563288225054525564056448246515187547119621844396582533754388569094113031509526179378002974120766514793942590298969594699556576121865619673378623625612521632086286922210327488921865436480229678070576561514463204692790682120738837781423356282360896320806822246801224826117718589638140918390367367222088832151375560037279839400415297002878307667094447456013455641725437090697939612257142989467154357846878861444581231459357198492252847160504922124247014121478057345510500801908699603302763478708108175450119307141223390866393833952942578690507643100638351983438934159613185434754649556978103829309716465143840700707360411237359984345225161050702705623526601276484830840761183013052793205427462865403603674532865105706587488225698157936789766974220575059683440869735020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001264560016237428802109276457931065792295524988727584610126483699989225695968815920560010165525637567856672279661988578279484885583439751874454551296563443480396642055798293680435220277098429423253302257634180703947699415979159453006975214829336655566156787364005366656416547321704390352132954352916941459904160875320186837937023488868947915107163785290234529244077365949563051007421087142613497459561513849871375704710178795731042296906667021449863746459528082436944578977233004876476524133907592043401963403911473202338071509522201068256342747164602433544005152126693249341967397704159568375355516673027390074972973635496453328886984406119649616277344951827369558822075735517665158985519098666539354948106887320685990754079234240230092590070173196036225475647894064754834664776041146323390565134330684495397907090302346046147096169688688501408347040546074295869913829668246818571031887906528703665083243197440477185567893482308943106828702722809736248093996270607472645539925399442808113736943388729406307926159599546262462970706259484556903471197299640908941805953439325123623550813494900436427852713831591256898929519642728757394691427253436694153236100453730488198551706594121735246258954873016760029886592578662856124966552353382942878542534048308330701653722856355915253478445981831341129001999205981352205117336585640782648494276441137639386692480311836445369858917544264739988228462184490087776977631279572267265556259628254276531830013407092233436577916012809317940171859859993384923549564005709955856113498025249906698423301735035804408116855265311709957089942732870925848789443646005041089226691783525870785951298344172953519537885534573742608590290817651557803905946408735061232261120093731080485485263572282576820341605048466277504500312620080079980492548534694146977516493270950493463938243222718851597405470214828971117779237612257887347718819682546298126868581705074027255026332904497627789442362167411918626943965067151577958675648239939176042601763387045499017614364120469218237076488783419689686118155815873606293860381017121585527266830082383404656475880405138080163363887421637140643549556186896411228214075330265510042410489678352858829024367090488711819090949453314421828766181031007354770549815968077200947469613436092861484941785017180779306810854690009445899527942439813921350558642219648349151263901280383200109773868066287792397180146134324457264009737425700735921003154150893679300816998053652027600727749674584002836240534603726341655425902760183484030681138185510597970566400750942608788573579603732451414678670368809880609716425849759513806930944940151542222194329130217391253835591503100333032511174915696917450271494331515588540392216409722910112903552181576282328318234254832611191280092825256190205263016391147724733148573910777587442538761174657867116941477642144111126358355387136101102326798775641024682403226483464176636980663785768134920453022408197278564719839630878154322116691224641591177673225326433568614618654522268126887268445968442416107854016768142080885028005414361314623082102594173756238994207571362751674573189189456283525704413354375857534269869947254703165661399199968262824727064133622217892390317608542894373393561889165125042440400895271983787386480584726895462438823437517885201439560057104811949884239060613695734231559079670346149143447886360410318235073650277859089757827273130504889398900992391350337325085598265586708924261242947367019390772713070686917092646254842324074855036608013604668951184009366860954632500214585293095000090715105823626729326453738210493872499669933942468551648326113414611068026744663733437534076429402668297386522093570162638464852851490362932019919968828517183953669134522244470804592396602817156551565666111359823112250628905854914509715755390024393153519090210711945730024388017661503527086260253788179751947806101371500448991721002220133501310601639154158957803711779277522597874289191791552241718958536168059474123419339842021874564925644346239253195313510331147639491199507285843065836193536932969928983791494193940608572486396883690326556436421664425760791471086998431573374964883529276932822076294728238153740996154559879825989109371712621828302584811238901196822142945766758071865380650648702613389282299497257453033283896381843944770779402284359883410035838542389735424395647555684095224844554139239410001620769363684677641301781965937997155746854194633489374843912974239143365936041003523437770658886778113949861647874714079326385873862473288964564359877466763847946650407411182565837887845485814896296127399841344272608606187245545236064315371011274680977870446409475828034876975894832824123929296058294861919667091895808983320121031843034012849511620353428014412761728583024355983003204202451207287253558119584014918096925339507577840006746552603144616705082768277222353419110263416315714740612385042584598841990761128725805911393568960143166828317632356732541707342081733223046298799280490851409479036887868789493054695570307261900950207643349335910602454508645362893545686295853131533718386826561786227363716975774183023986006591481616404944965011732131389574706208847480236537103115089842799275442685327797431139514357417221975979935968525228574526379628961269157235798662057340837576687388426640599099350500081337543245463596750484423528487470144354541957625847356421619813407346854111766883118654489377697956651727966232671481033864391375186594673002443450054499539974237232871249483470604406347160632583064982979551010954183623503030945309733583446283947630477564501500850757894954893139394489921612552559770143685894358587752637962559708167764380012543650237141278346792610199558522471722017772370041780841942394872540680155603599839054898572354674564239058585021671903139526294455439131663134530893906204678438778505423939052473136201294769187497519101147231528932677253391814660730008902776896311481090220972452075916729700785058071718638105496797310016787085069420709223290807038326345345203802786099055690013413718236837099194951648960075504934126787643674638490206396401976668559233565463913836318574569814719621084108096188460545603903845534372914144651347494078488442377217515433426030669883176833100113310869042193903108014378433415137092435301367763108491351615642269847507430329716746964066653152703532546711266752246055119958183196376370761799191920357958200759560530234626775794393630746305690108011494271410093913691381072581378135789400559950018354251184172136055727522103526803735726527922417373605751127887218190844900617801388971077082293100279766593583875890939568814856026322439372656247277603789081445883785501970284377936240782505270487581647032458129087839523245323789602984166922548964971560698119218658492677040395648127810217991321741630581055459880130048456299765112124153637451500563507012781592671424134210330156616535602473380784302865525722275304999883701534879300806260180962381516136690334111138653851091936739383522934588832255088706450753947395204396807906708680644509698654880168287434378612645381583428075306184548590379821799459968115441974253634439960290251001588827216474500682070419376158454712318346007262933955054823955713725684023226821301247679452264482091023564775272308208106351889915269288910845557112660396503439789627825001611015323516051965590421184494990778999200732947690586857787872098290135295661397888486050978608595701773129815531495168146717695976099421003618355913877781769845875810446628399880600616229848616935337386578773598336161338413385368421197893890018529569196780455448285848370117096721253533875862158231013310387766827211572694951817958975469399264219791552338576623167627547570354699414892904130186386119439196283887054367774322427680913236544948536676800000106526248547305586159899914017076983854831887501429389089950685453076511680333732226517566220752695179144225280816517166776672793035485154204023817460892328391703275425750867655117859395002793389592057668278967764453184040418554010435134838953120132637836928358082719378312654961745997056745071833206503455664403449045362756001125018433560736122276594927839370647842645676338818807565612168960504161139039063960162022153684941092605387688714837989559999112099164646441191856827700457424343402167227644558933012778158686952506949936461017568506016714535431581480105458860564550133203758645485840324029871709348091055621167154684847780394475697980426318099175642280987399876697323769573701580806822904599212366168902596273043067931653114940176473769387351409336183321614280214976339918983548487562529875242387307755955595546519639440182184099841248982623673771467226061633643296406335728107078875816404381485018841143188598827694490119321296827158884133869434682859006664080631407775772570563072940049294030242049841656547973670548558044586572022763784046682337985282710578431975354179501134727362577408021347682604502285157979579764746702284099956160156910890384582450267926594205550395879229818526480070683765041836562094555434613513415257006597488191634135955671964965403218727160264859304903978748958906612725079482827693895352175362185079629778514618843271922322381015874445052866523802253284389137527384589238442253547265309817157844783421582232702069028723233005386216347988509469547200479523112015043293226628272763217790884008786148022147537657810581970222630971749507212724847947816957296142365859578209083073323356034846531873029302665964501371837542889755797144992465403868179921389346924474198509733462679332107268687076806263991936196504409954216762784091466985692571507431574079380532392523947755744159184582156251819215523370960748332923492103451462643744980559610330799414534778457469999212859999939961228161521931488876938802228108300198601654941654261696858678837260958774567618250727599295089318052187292461086763995891614585505839727420980909781729323930106766386824040111304024700735085782872462713494636853181546969046696869392547251941399291465242385776255004748529547681479546700705034799958886769501612497228204030399546327883069597624936151010243655535223069061294938859901573466102371223547891129254769617600504797492806072126803922691102777226102544149221576504508120677173571202718024296810620377657883716690910941807448781404907551782038565390991047759414132154328440625030180275716965082096427348414695726397884256008453121406593580904127113592004197598513625479616063228873618136737324450607924411763997597461938358457491598809766744709300654634242346063423747466608043170126005205592849369594143408146852981505394717890045183575515412522359059068726487863575254191128887737176637486027660634960353679470269232297186832771739323619200777452212624751869833495151019864269887847171939664976907082521742336566272592844062043021411371992278526998469884770232382384005565551788908766136013047709843861168705231055314916251728373272867600724817298763756981633541507460883866364069347043720668865127568826614973078865701568501691864748854167915459650723428773069985371390430026653078398776385032381821553559732353068604301067576083890862704984188859513809103042359578249514398859011318583584066747237029714978508414585308578133915627076035639076394731145549583226694570249413983163433237897595568085683629725386791327505554252449194358912840504522695381217913191451350099384631177401797151228378546011603595540286440590249646693070776905548102885020808580087811577381719174177601733073855475800605601433774329901272867725304318251975791679296996504146070664571258883469797964293162296552016879730003564630457930884032748077181155533090988702550520768046303460865816539487695196004408482065967379473168086415645650530049881616490578831154345485052660069823093157776500378070466126470602145750579327096204782561524714591896522360839664562410519551052235723973951288181640597859142791481654263289200428160913693777372229998332708208296995573772737566761552711392258805520189887620114168005468736558063347160373429170390798639652296131280178267971728982293607028806908776866059325274637840539769184808204102194471971386925608416245112398062011318454124478205011079876071715568315407886543904121087303240201068534194723047666672174986986854707678120512473679247919315085644477537985379973223445612278584329684664751333657369238720146472367942787004250325558992688434959287612400755875694641370562514001179713316620715371543600687647731867558714878398908107429530941060596944315847753970094398839491443235366853920994687964506653398573888786614762944341401049888993160051207678103588611660202961193639682134960750111649832785635316145168457695687109002999769841263266502347716728657378579085746646077228341540311441529418804782543876177079043000156698677679576090996693607559496515273634981189641304331166277471233881740603731743970540670310967676574869535878967003192586625941051053358438465602339179674926784476370847497833365557900738419147319886271352595462518160434225372996286326749682405806029642114638643686422472488728343417044157348248183330164056695966886676956349141632842641497453334999948000266998758881593507357815195889900539512085351035726137364034367534714104836017546488300407846416745216737190483109676711344349481926268111073994825060739495073503169019731852119552635632584339099822498624067031076831844660729124874754031617969941139738776589986855417031884778867592902607004321266617919223520938227878880988633599116081923535557046463491132085918979613279131975649097600013996234445535014346426860464495862476909434704829329414041114654092398834443515913320107739441118407410768498106634724104823935827401944935665161088463125678529776973468430306146241803585293315973458303845541033701091676776374276210213701354854450926307190114731848574923318167207213727935567952844392548156091372812840633303937356242001604566455741458816605216660873874804724339121295587776390696903707882852775389405246075849623157436917113176134783882719416860662572103685132156647800147675231039357860689611125996028183930954870905907386135191459181951029732787557104972901148717189718004696169777001791391961379141716270701895846921434369676292745910994006008498356842520191559370370101104974733949387788598941743303178534870760322198297057975119144051099423588303454635349234982688362404332726741554030161950568065418093940998202060999414021689090070821330723089662119775530665918814119157783627292746156185710372172471009521423696483086410259288745799932237495519122195190342445230753513380685680735446499512720317448719540397610730806026990625807602029273145525207807991418429063884437349968145827337207266391767020118300464819000241308350884658415214899127610651374153943565721139032857491876909441370209051703148777346165287984823533829726013611098451484182380812054099612527458088109948697221612852489742555551607637167505489617301680961380381191436114399210638005083214098760459930932485102516829446726066613815174571255975495358023998314698220361338082849935670557552471290274539776214049318201465800802156653606776550878380430413431059180460680083459113664083488740800574127258670479225831912741573908091438313845642415094084913391809684025116399193685322555733896695374902662092326131885589158083245557194845387562878612885900410600607374650140262782402734696252821717494158233174923968353013617865367376064216677813773995100658952887742766263684183068019080460984980946976366733566228291513235278880615776827815958866918023894033307644191240341202231636857786035727694154177882643523813190502808701857504704631293335375728538660588890458311145077394293520199432197117164223500564404297989208159430716701985746927384865383343614579463417592257389858800169801475742054299580124295810545651083104629728293758416116253256251657249807849209989799062003593650993472158296517413579849104711166079158743698654122234834188772292944633517865385673196255985202607294767407261676714557364981210567771689348491766077170527718760119990814411305864557791052568430481144026193840232247093924980293355073184589035539713308844617410795916251171486487446861124760542867343670904667846867027409188101424971114965781772427934707021668829561087779440504843752844337510882826477197854000650970403302186255614733211777117441335028160884035178145254196432030957601869464908868154528562134698835544456024955666843660292219512483091060537720198021831010327041783866544718126039719068846237085751808003532704718565949947612424811099928867915896904956394762460842406593094862150769031498702067353384834955083636601784877106080980426924713241000946401437360326564518456679245666955100150229833079849607994988249706172367449361226222961790814311414660941234159359309585407913908720832273354957208075716517187659944985693795623875551617575438091780528029464200447215396280746360211329425591600257073562812638733106005891065245708024474937543184149401482119996276453106800663118382376163966318093144467129861552759820145141027560068929750246304017351489194576360789352855505317331416457050499644389093630843874484783961684051845273288403234520247056851646571647713932377551729479512613239822960239454857975458651745878771331813875295980941217422730035229650808917770506825924882232215493804837145478164721397682096332050830564792048208592047549985732038887639160199524091893894557676874973085695595801065952650303626615975066222508406742889826590751063756356996821151094966974458054728869363102036782325018232370845979011154847208761821247781326633041207621658731297081123075815982124863980721240786887811450165582513617890307086087019897588980745664395515741536319319198107057533663373803827215279884935039748001589051942087971130805123393322190346624991716915094854140187106035460379464337900589095772118080446574396280618671786101715674096766208029576657705129120990794430463289294730615951043090222143937184956063405618934251305726829146578329334052463502892917547087256484260034962961165413823007731332729830500160256724014185152041890701154288579920812198449315699905918201181973350012618772803681248199587707020753240636125931343859554254778196114293516356122349666152261473539967405158499860355295332924575238881013620234762466905581643896786309762736550472434864307121849437348530060638764456627218666170123812771562137974614986132874411771455244470899714452288566294244023018479120547849857452163469644897389206240194351831008828348024924908540307786387516591130287395878709810077271827187452901397283661484214287170553179654307650453432460053636147261818096997693348626407743519992868632383508875668359509726557481543194019557685043724800102041374983187225967738715495839971844490727914196584593008394263702087563539821696205532480321226749891140267852859967340524203109179789990571882194939132075343170798002373659098537552023891164346718558290685371189795262623449248339249634244971465684659124891855662958932990903523923333364743520370770101084388003290759834217018554228386161721041760301164591878053936744747205998502358289183369292233732399948043710841965947316265482574809948250999183300697656936715968936449334886474421350084070066088359723503953234017958255703601693699098867113210979889707051728075585519126993067309925070407024556850778679069476612629808225163313639952117098452809263037592242674257559989289278370474445218936320348941552104459726188380030067761793138139916205806270165102445886924764924689192461212531027573139084047000714356136231699237169484813255420091453041037135453296620639210547982439212517254013231490274058589206321758949434548906846399313757091034633271415316223280552297297953801880162859073572955416278867649827418616421878988574107164906919185116281528548679417363890665388576422915834250067361245384916067413734017357277995634104332688356950781493137800736235418007061918026732855119194267609122103598746924117283749312616339500123959924050845437569850795704622266461900010350049018303415354584283376437811198855631877779253720116671853954183598443830520376281944076159410682071697030228515225057312609304689842343315273213136121658280807521263154773060442377475350595228717440266638914881717308643611138906942027908814311944879941715404210341219084709408025402393294294549387864023051292711909751353600092197110541209668311151632870542302847007312065803262641711616595761327235156666253667271899853419989523688483099930275741991646384142707798870887422927705389122717248632202889842512528721782603050099451082478357290569198855546788607946280537122704246654319214528176074148240382783582971930101788834567416781139895475044833931468963076339665722672704339321674542182455706252479721997866854279897799233957905758189062252547358220523642485078340711014498047872669199018643882293230538231855973286978092225352959101734140733488476100556401824239219269506208318381454698392366461363989101210217709597670490830508185470419466437131229969235889538493013635657618610606222870559942337163102127845744646398973818856674626087948201864748767272722206267646533809980196688368099415907577685263986514625333631245053640261056960551318381317426118442018908885319635698696279503673842431301133175330532980201668881748134298868158557781034323175306478498321062971842518438553442762012823457071698853051832617964117857960888815032960229070561447622091509473903594664691623539680920139457817589108893199211226007392814916948161527384273626429809823406320024402449589445612916704950823581248739179964864113348032475777521970893277226234948601504665268143987705161531702669692970492831628550421289814670619533197026950721437823047687528028735412616639170824592517001071418085480063692325946201900227808740985977192180515853214739265325155903541020928466592529991435379182531454529059841581763705892790690989691116438118780943537152133226144362531449012745477269573939348154691631162492887357471882407150399500944673195431619385548520766573882513963916357672315100555603726339486720820780865373494244011579966750736071115935133195919712094896471755302453136477094209463569698222667377520994516845064362382421185353488798939567318780660610788544000550827657030558744854180577889171920788142335113866292966717964346876007704799953788338787034871802184243734211227394025571769081960309201824018842705704609262256417837526526335832424066125331152942345796556950250681001831090041124537901533296615697052237921032570693705109083078947999900499939532215362274847660361367769797856738658467093667958858378879562594646489137665219958828693380183601193236857855855819555604215625088365020332202451376215820461810670519533065306060650105488716724537794283133887163139559690583208341689847606560711834713621812324622725884199028614208728495687963932546428534307530110528571382964370999035694888528519040295604734613113826387889755178856042499874831638280404684861893818959054203988987265069762020199554841265000539442820393012748163815853039643992547020167275932857436666164411096256633730540921951967514832873480895747777527834422109107311135182804603634719818565557295714474768255285786334934285842311874944000322969069775831590385803935352135886007960034209754739229673331064939560181223781285458431760556173386112673478074585067606304822940965304111830667108189303110887172816751957967534718853722930961614320400638132246584111115775835858113501856904781536893813771847281475199835050478129771859908470762197460588742325699582889253504193795826061621184236876851141831606831586799460165205774052942305360178031335726326705479033840125730591233960188013782542192709476733719198728738524805742124892118347087662966720727232565056512933312605950577772754247124164831283298207236175057467387012820957554430596839555568686118839713552208445285264008125202766555767749596962661260456524568408613923826576858338469849977872670655519185446869846947849573462260629421962455708537127277652309895545019303773216664918257815467729200521266714346320963789185232321501897612603437368406719419303774688099929687758244104787812326625318184596045385354383911449677531286426092521153767325886672260404252349108702695809964759580579466397341906401003636190404203311357933654242630356145700901124480089002080147805660371015412232889146572239314507607167064355682743774396578906797268743847307634645167756210309860409271709095128086309029738504452718289274968921210667008164858339553773591913695015316201890888748421079870689911480466927065094076204650277252865072890532854856143316081269300569378541786109696920253886503457718317668688592368148847527649846882194973972970773718718840041432312763650481453112285099002074240925585925292610302106736815434701525234878635164397623586041919412969769040526483234700991115424260127343802208933109668636789869497799400126016422760926082349304118064382913834735467972539926233879158299848645927173405922562074910530853153718291168163721939518870095778818158685046450769934394098743351443162633031724774748689791820923948083314397084067308407958935810896656477585990556376952523265361442478023082681183103773588708924061303133647737101162821461466167940409051861526036009252194721889091810733587196414214447865489952858234394705007983038853886083103571930600277119455802191194289992272235345870756624692617766317885514435021828702668561066500353105021631820601760921798468493686316129372795187307897263735371715025637873357977180818487845886650433582437700414771041493492743845758710715973155943942641257027096512510811554824793940359768118811728247215825010949609662539339538092219559191818855267806214992317276316321833989693807561685591175299845013206712939240414459386239880938124045219148483164621014738918251010909677386906640415897361047643650006807710565671848628149637111883219244566394581449148616550049567698269030891118568798692947051352481609174324301538368470729289898284602223730145265567989862776796809146979837826876431159883210904371561129976652153963546442086919756737000573876497843768628768179249746943842746525631632300555130417422734164645512781278457777245752038654375428282567141288583454443513256205446424101103795546419058116862305964476958705407214198521210673433241075676757581845699069304604752277016700568454396923404171108988899341635058515788735343081552081177207188037910404698306957868547393765643363197978680367187307969392423632144845035477631567025539006542311792015346497792906624150832885839529054263768766896880503331722780018588506973623240389470047189761934734430843744375992503417880797223585913424581314404984770173236169471976571535319775499716278566311904691260918259124989036765417697990362375528652637573376352696934435440047306719886890196814742876779086697968852250163694985673021752313252926537589641517147955953878427849986645630287883196209983049451987439636907068276265748581043911223261879405994155406327013198989570376110532360629867480377915376751158304320849872092028092975264981256916342500052290887264692528466610466539217148208013050229805263783642695973370705392278915351056888393811324975707133102950443034671598944878684711643832805069250776627450012200352620370946602341464899839025258883014867816219677519458316771876275720050543979441245990077115205154619930509838698254284640725554092740313257163264079293418334214709041254253352324802193227707535554679587163835875018159338717423606155117101312352563348582036514614187004920570437201826173319471570086757853933607862273955818579758725874410254207710547536129404746010009409544495966288148691590389907186598056361713769222729076419775517772010427649694961105622059250242021770426962215495872645398922769766031052498085575947163107587013320886146326641259114863388122028444069416948826152957762532501987035987067438046982194205638125583343642194923227593722128905642094308235254408411086454536940496927149400331978286131818618881111840825786592875742638445005994422956858646048103301538891149948693543603022181094346676400002236255057363129462629609619876056425996394613869233083719626595473923462413459779574852464783798079569319865081597767535055391899115133525229873611277918274854200868953965835942196333150286956119201229888988700607999279541118826902307891310760361763477948943203210277335941690865007193280401716384064498787175375678118532132840821657110754952829497493621460821558320568723218557406516109627487437509809223021160998263303391546949464449100451528092508974507489676032409076898365294065792019831526541065813682379198409064571246894847020935776119313998024681340520039478194986620262400890215016616381353838151503773502296607462795291038406868556907015751662419298724448271942933100485482445458071889763300323252582158128032746796200281476243182862217105435289834820827345168018613171959332471107466222850871066611770346535283957762599774467218571581612641114327179434788599089280848669491413909771673690027775850268664654056595039486784111079011610400857274456293842549416759460548711723594642910585090995021495879311219613590831588262068233215615308683373083817327932819698387508708348388046388478441884003184712697454370937329836240287519792080232187874488287284372737801782700805878241074935751488997891173974612932035108143270325140903048746226294234432757126008664250833318768865075642927160552528954492153765175149219636718104943531785838345386525565664065725136357506435323650893679043170259787817719031486796384082881020946149007971513771709906195496964007086766710233004867263147551053723175711432231741141168062286420638890621019235522354671166213749969326932173704310598722503945657492461697826097025335947502091383667377289443869640002811034402608471289900074680776484408871134135250336787731679770937277868216611786534423173226463784769787514433209534000165069213054647689098505020301504488083426184520873053097318949291642532293361243151430657826407028389840984160295030924189712097160164926561341343342229882790992178604267981245728534580133826099587717811310216734025656274400729683406619848067661580502169183372368039902793160642043681207990031626444914619021945822969099212278855394878353830564686488165556229431567312827439082645061162894280350166133669782405177015521962652272545585073864058529983037918035043287670380925216790757120406123759632768567484507915114731344000183257034492090971243580944790046249431345502890068064870429353403743603262582053579011839564908935434510134296961754524957396062149028872893279252069653538639644322538832752249960598697475988232991626354597332444516375533437749292899058117578635555562693742691094711700216541171821975051983178713710605106379555858890556885288798908475091576463907469361988150781468526213325247383765119299015610918977792200870579339646382749068069876916819749236562422608715417610043060890437797667851966189140414492527048088197149880154205778700652159400928977760133075684796699295543365613984773806039436889588764605498387147896848280538470173087111776115966350503997934386933911978988710915654170913308260764740630571141109883938809548143782847452883836807941888434266622207043872288741394780101772139228191199236540551639589347426395382482960903690028835932774585506080131798840716244656399794827578365019551422155133928197822698427863839167971509126241054872570092407004548848569295044811073808799654748156891393538094347455697212891982717702076661360248958146811913361412125878389557735719498631721084439890142394849665925173138817160266326193106536653504147307080441493916936326237376777709585031325599009576273195730864804246770121232702053374266705314244820816813030639737873664248367253983748769098060218278578621651273856351329014890350988327061725893257536399397905572917516009761545904477169226580631511102803843601737474215247608515209901615858231257159073342173657626714239047827958728150509563309280266845893764964977023297364131906098274063353108979246424213458374090116939196425045912881340349881063540088759682005440836438651661788055760895689672753153808194207733259791727843762566118431989102500749182908647514979400316070384554946538594602745244746681231468794344161099333890899263841184742525704457251745932573898956518571657596148126602031079762825416559050604247911401695790033835657486925280074302562341949828646791447632277400552946090394017753633565547193100017543004750471914489984104001586794617924161001645471655133707407395026044276953855383439755054887109978520540117516974758134492607943368954378322117245068734423198987884412854206474280973562580706698310697993526069339213568588139121480735472846322778490808700246777630360555123238665629517885371967303463470122293958160679250915321748903084088651606111901149844341235012464692802880599613428351188471544977127847336176628506216977871774382436256571177945006447771837022199910669502165675764404499794076503799995484500271066598781360380231412683690578319046079276529727769404361302305178708054651154246939526512710105292707030667302444712597393995051462840476743136373997825918454117641332790646063658415292701903027601733947486696034869497654175242930604072700505903950314852292139257559484507886797792525393176515641619716844352436979444735596426063339105512682606159572621703669850647328126672452198906054988028078288142979633669674412480598219214633956574572210229867759974673812606936706913408155941201611596019023775352555630060624798326124988128819293734347686268921923977783391073310658825681377717232831532908252509273304785072497713944833389255208117560845296659055394096556854170600117985729381399825831929367910039184409928657560599359891000296986446097471471847010153128376263114677420914557404181590880006494323785583930853082830547607679952435739163122188605754967383224319565065546085288120190236364471270374863442172725787950342848631294491631847534753143504139209610879605773098720135248407505763719925365047090858251393686346386336804289176710760211115982887553994012007601394703366179371539630613986365549221374159790511908358829009765664730073387931467891318146510931676157582135142486044229244530411316065270097433008849903467540551864067734260358340960860553374736276093565885310976099423834738222208729246449768456057956251676557408841032173134562773585605235823638953203853402484227337163912397321599544082842166663602329654569470357718487344203422770665383738750616921276801576618109542009770836360436111059240911788954033802142652394892968643980892611463541457153519434285072135345301831587562827573389826889852355779929572764522939156747756667605108788764845349363606827805056462281359888587925994094644604170520447004631513797543173718775603981596264750141090665886616218003826698996196558058720863972117699521946678985701179833244060181157565807428418291061519391763005919431443460515404771057005433900018245311773371895585760360718286050635647997900413976180895536366960316219311325022385179167205518065926351803625121457592623836934822266589557699466049193811248660909979812857182349400661555219611220720309227764620099931524427358948871057662389469388944649509396033045434084210246240104872332875008174917987554387938738143989423801176270083719605309438394006375611645856094312951759771393539607432279248922126704580818331376416581826956210587289244774003594700926866265965142205063007859200248829186083974373235384908396432614700053242354064704208949921025040472678105908364400746638002087012666420945718170294675227854007450855237772089058168391844659282941701828823301497155423523591177481862859296760504820386434310877956289292540563894662194826871104282816389397571175778691543016505860296521745958198887868040811032843273986719862130620555985526603640504628215230615459447448990883908199973874745296981077620148713400012253552224669540931521311533791579802697955571050850747387475075806876537644578252443263804614304288923593485296105826938210349800040524840708440356116781717051281337880570564345061611933042444079826037795119854869455915205196009304127100727784930155503889536033826192934379708187432094991415959339636811062755729527800425486306005452383915106899891357882001941178653568214911852820785213012551851849371150342215954224451190020739353962740020811046553020793286725474054365271759589350071633607632161472581540764205302004534018357233829266191530835409512022632916505442612361919705161383935732669376015691442994494374485680977569630312958871916112929468188493633864739274760122696415884890096571708616059814720446742866420876533479985822209061980217321161423041947775499073873856794118982466091309169177227420723336763503267834058630193019324299639720444517928812285447821195353089891012534297552472763573022628138209180743974867145359077863353016082155991131414420509144729353502223081719366350934686585865631485557586244781862010871188976065296989926932817870557643514338206014107732926106343152533718224338526352021773544071528189813769875515757454693972715048846979361950047772097056179391382898984532742622728864710888327017372325881824465843624958059256033810521560620615571329915608489206434030339526226345145428367869828807425142256745180618414956468611163540497189768215422772247947403357152743681940989205011365340012384671429655186734415374161504256325671343024765512521921803578016924032669954174608759240920700466934039651017813485783569444076047023254075555776472845075182689041829396611331016013111907739863246277821902365066037404160672496249013743321724645409741299557052914243820807609836482346597388669134991978401310801558134397919485283043673901248208244481412809544377389832005986490915950532285791457688496257866588599917986752055455809900455646117875524937012455321717019428288461740273664997847550829422802023290122163010230977215156944642790980219082668986883426307160920791408519769523555348865774342527753119724743087304361951139611908003025587838764420608504473063129927788894272918972716989057592524467966018970748296094919064876469370275077386643239191904225429023531892337729316673608699622803255718530891928440380507103006477684786324319100022392978525537237556621364474009676053943983823576460699246526008909062410590421545392790441152958034533450025624410100635953003959886446616959562635187806068851372346270799732723313469397145628554261546765063246567662027924520858134771760852169134094652030767339184114750414016892412131982688156866456148538028753933116023229255561894104299533564009578649534093511526645402441877594931693056044868642086275720117231952640502309977456764783848897346431721598062678767183800524769688408498918508614900343240347674268624595239589035858213500645099817824463608731775437885967767291952611121385919472545140030118050343787527766440276261894101757687268042817662386068047788524288743025914524707395054652513533945959878961977891104189029294381856720507096460626354173294464957661265195349570186001541262396228641389779673332907056737696215649818450684226369036784955597002607986799626101903933126376855696876702929537116252800554310078640872893922571451248113577862766490242516199027747109033593330930494838059785662884478744146984149906712376478958226329490467981208998485716357108783119184863025450162092980582920833481363840542172005612198935366937133673339246441612522319694347120641737549121635700857369439730597970971972666664226743111776217640306868131035189911227133972403688700099686292254646500638528862039380050477827691283560337254825579391298525150682996910775425764748832534141213280062671709400909822352965795799780301828242849022147074811112401860761341515038756983091865278065889668236252393784527263453042041880250844236319038331838455052236799235775292910692504326144695010986108889991465855188187358252816430252093928525807796973762084563748211443398816271003170315133440230952635192958868069082135585368016100021374085115448491268584126869589917414913382057849280069825519574020181810564129725083607035685105533178784082900004155251186577945396331753853209214972052660783126028196116485809868458752512999740409279768317663991465538610893758795221497173172813151793290443112181587102351874075722210012376872194474720934931232410706508061856237252673254073332487575448296757345001932190219911996079798937338367324257610393898534927877747398050808001554476406105352220232540944356771879456543040673589649101761077594836454082348613025471847648518957583667439979150851285802060782055446299172320202822291488695939972997429747115537185892423849385585859540743810488262464878805330427146301194158989632879267832732245610385219701113046658710050008328517731177648973523092666123458887310288351562644602367199664455472760831011878838915114934093934475007302585581475619088139875235781233134227986650352272536717123075686104500454897036007956982762639234410714658489578024140815840522953693749971066559489445924628661996355635065262340533943914211127181069105229002465742360413009369188925586578466846121567955425660541600507127664176605687427420032957716064344860620123982169827172319782681662824993871499544913730205184366907672357740005393266262276032365975171892590180110429038427418550789488743883270306328327996300720069801224436511639408692222074532024462412115580435454206421512158505689615735641431306888344318528085397592773443365538418834030351782294625370201578215737326552318576355409895403323638231921989217117744946940367829618592080340386757583411151882417743914507736638407188048935825686854201164503135763335550944031923672034865101056104987272647213198654343545040913185951314518127643731043897250700498198705217627249406521461995923214231443977654670835171474936798618655279171582408065106379950018429593879915835017158075988378496225739851212981032637937621832245659423668537679911314010804313973233544909082491049914332584329882103398469814171575601082970658306521134707680368069532297199059990445120908727577622535104090239288877942463048328031913271049547859918019696783532146444118926063152661816744319355081708187547705080265402529410921826485821385752668815558411319856002213515888721036569608751506318753300294211868222189377554602722729129050429225978771066787384000061677215463844129237119352182849982435092089180168557279815642185819119749098573057033266764646072875743056537260276898237325974508447964954564803077159815395582777913937360171742299602735310276871944944491793978514463159731443535185049141394155732938204854212350817391254974981930871439661513294204591938010623142177419918406018034794988769105155790555480695387854006645337598186284641990522045280330626369562649091082762711590385699505124652999606285544383833032763859980079292284665950355121124528408751622906026201185777531374794936205549640107300134885315073548735390560290893352640071327473262196031177343394367338575912450814933573691166454128178817145402305475066713651825828489809951213919399563324133655677709800308191027204099714868741813466700609405102146269028044915964654533010775469541308871416531254481306119240782118869005602778182423502269618934435254763357353648561936325441775661398170393063287216690572225974520919291726219984440964615826945638023950283712168644656178523556516412771282691868861557271620147493405227694659571219831494338162211400693630743044417328478610177774383797703723179525543410722344551255558999864618387676490397246116795901810003509892864120419516355110876320426761297982652942588295114127584126273279079880755975185157684126474220947972184330935297266521001566251455299474512763155091763673025946213293019040283795424632325855030109670692272022707486341900543830265068121414213505715417505750863990767394633514620908288893493837643939925690060406731142209331219593620298297235116325938677224147791162957278075239505625158160313335938231150051862689053065836812998810866326327198061127154885879809348791291370749823057592909186293919501472119758606727009254771802575033773079939713453953264619526999659638565491759045833358579910201271320458390320085387888163363768518208372788513117522776960978796214237216254521459128183179821604411131167140691482717098101545778193920231156387195080502467972579249760577262591332855972637121120190572077140914864507409492671803581515757151405039761096384675556929897038354731410022380258346876735012977541327953206097115450648421218593649099791776687477448188287063231551586503289816422828823274686610659273219790716238464215348985247621678905026099804526648392954235728734397768049577409144953839157556548545905897649519851380100795801078375994577529919670054760225255203445398871253878017196071816407812484784725791240782454436168234523957068951427226975043187363326301110305342333582160933319121880660826834142891041517324721605335584999322454873077882290525232423486153152097693846104258284971496347534183756200301491570327968530186863157248840152663983568956363465743532178349319982554211730846774529708583950761645822963032442432823773745051702856069806788952176819815671078163340526675953942492628075696832610749532339053622309080708145591983735537774874202903901814293731152933464446815121294509759653430628421531944572711861490001765055817709530246887526325011970520947615941676872778447200019278913725184162285778379228443908430118112149636642465903363419454065718354477191244662125939265662030688852005559912123536371822692253178145879259375044144893398160865790087616502463519704582889548179375668104647461410514249887025213993687050937230544773411264135489280684105910771667782123833281026218558775131272117934444820144042574508306394473836379390628300897330624138061458941422769474793166571762318247216835067807648757342049155762821758397297513447899069658953254894033561561316740327647246921250575911625152965456854463349811431767025729566184477548746937846423373723898192066204851189437886822480727935202250179654534375727416391079197295295081294292220534771730418447791567399173841831171036252439571615271466900581470000263301045264354786590329073320546833887207873544476264792529769017091200787418373673508771337697768349634425241994995138831507487753743384945825976556099655595431804092017849718468549737069621208852437701385375768141663272241263442398215294164537800049250726276515078908507126599703670872669276430837722968598516912230503746274431085293430527307886528397733524601746352770320593817912539691562106363762588293757137384075440646896478310070458061344673127159119460843593582598778283526653115106504162329532904777217408355934972375855213804830509000964667608830154061282430874064559443185341375522016630581211103345312074508682433943215904359443031243122747138584203039010607094031523555617276799416002039397509989762933532585557562480899669182986422267750236019325797472674257821111973470940235745722227121252685238429587427350156366009318804549333898974157149054418255973808087156528143010267046028431681923039253529779576586241439270154974087927313105163611913757700892956482332364829826302460797587576774537716010249080462430185652416175665560016085912153455626760219268998285537787258314514408265458348440947846317877737479465358016996077940556870119232860804113090462935087182712593466871276669487389982459852778649956916546402945893506496433580982476596516514209098675520380830920323048734270346828875160407154665383461961122301375945157925269674364253192739003603860823645076269882749761872357547676288995075211480485252795084503395857083813047693788132112367428131948795022806632017002246033198967197064916374117585485187848401205484467258885140156272501982171906696081262778548596481836962141072171421498636191877475450965030895709947093433785698167446582826791194061195603784539785583924076127634410576675102430755981455278616781594965706255975507430652108530159790807334373607943286675789053348366955548680391343372015649883422089339997164147974693869690548008919306713805717150585730714881564992071408675825960287605645978242377024246980532805663278704192676846711626687946348695046450742021937394525926266861355294062478136120620263649819999949840514386828525895634226432870766329930489172340072547176418868535137233266787792173834754148002280339299735793615241275582956927683723123479898944627433045456679006203242051639628258844308543830720149567210646053323853720314324211260742448584509458049408182092763914000854042202355626021856434899414543995041098059181794888262805206644108631900168856815516922948620301073889718100770929059048074909242714101893354281842999598816966099383696164438152887721408526808875748829325873580990567075581701794916190611400190855374488272620093668560447559655747648567400817738170330738030547697360978654385938218722058390234444350886749986650604064587434600533182743629617786251808189314436325120510709469081358644051922951293245007883339878842933934243512634336520438581291283434529730865290978330067126179813031679438553572629699874035957045845223085639009891317947594875212639707837594486113945196028675121056163897600888009274611586080020780334159145179707303683519697776607637378533301202412011204698860920933908536577322239241244905153278095095586645947763448226998607481329730263097502881210351772312446509534965369309001863776409409434983731325132186208021480992268550294845466181471555744470966953017769043427203189277060471778452793916047228153437980353967986142437095668322149146543801459382927739339603275404800955223181666738035718393275707714204672383862461780397629237713120958078936384144792980258806552212926209362393063731349664018661951081158347117331202580586672763999276357907806381881306915636627412543125958993611964762610140556350339952314032311381965623632719896183725484533370206256346422395276694356837676136871196292181875457608161705303159072882870071231366630872275491866139577373054606599743781098764980241401124214277366808275139095931340415582626678951084677611866595766016599817808941498575497628438785610026379654317831363402513581416115190209649913354873313111502270068193013592959597164019719605362503355847998096348871803911161281359596856547886832585643789617315976200241962155289629790481982219946226948713746244472909345647002853769495885959160678928249105441251599630078136836749020937491573289627002865682934443134234735123929825916673950342599586897069726733258273590312128874666045146148785034614282776599160809039865257571726308183349444182019353338507129234577437557934406217871133006310600332405399169368260374617663856575887758020122936635327026710068126182517291460820254189288593524449107013820621155382779356529691457650204864328286555793470720963480737269214118689546732276775133569019015372366903686538916129168888787640752549349424973342718117889275993159671935475898809792452526236365903632007085444078454479734829180208204492667063442043755532505052752283377888704080403353192340768563010934777212563908864041310107381785333831603813528082811904083256440184205374679299262203769871801806112262449090924264198582086175117711378905160914038157500336642415609521632819712233502316742260056794128140621721964184270578432895980288233505982820819666624903585778994033315227481777695284368163008853176969478369058067106482808359804669884109813515865490693331952239436328792399053481098783027450017206543369906611778455436468772363184446476806914282800455107468664539280539940910875493916609573161971503316696830992946634914279878084225722069714887558063748030886299511847318712477729191007022758889348693945628951580296537215040960310776128983126358996489341024703603664505868728758905140684123812424738638542790828273382797332688550493587430316027474906312957234974261122151741715313361862241091386950068883589896234927631731647834007746088665559873338211382992877691149549218419208777160606847287467368188616750722101726110383067178785669481294878504894306308616994879870316051588410828235127415353851336589533294862949449506186851477910580469603906937266267038651290520113781085861618888694795760741358553458515176805197333443349523012039577073962377131603024288720053732099825300897761897312981788194467173116064723147624845755192873278282512718244680782421521646956781929409823892628494376024885227900362021938669648221562809360537317804086372726842669642192994681921490870170753336109479138180406328738759384826953558307739576144799727000347288018278528138950321798634521611106660883931405322694490545552786789441757920244002145078019209980446138254780585804844241640477503153605490659143007815837243012313751156228401583864427089071828481675752712384678245953433444962201009607105137060846180118754312072549133499424761711563332140893460915656155060031738421870157022610310191660388706466143889773631878094071152752817468957640158104701696524755774089164456867771715850058326994340167720215676772406812836656526412298243946513319735919970940327593850266955747023181320324371642058614103360652453693916005064495306016126782264894243739716671766123104897503188573216555498834212180284691252908610148552781527762562375045637576949773433684601560772703550962904939248708840628106794362241870474700836884267102255830240359984164595112248527263363264511401739524808619463584078375355688562231711552094722306543709260679735100056554938122457548372854571179739361575616764169289580525729752233855861138832217110736226581621884244317885748879810902665379342666421699091405653643224930133486798815488662866505234699723557473842483059042367714327879231642240387776433019260019228477831383763253612102533693581262408686669973827597736568222790721583247888864236934639616436330873013981421143030600873066616480367898409133592629340230432497492688783164360268101130957071614191283068657732353263965367739031766136131596555358499939860056515592193675997771793301974468814837110320650369319289452140265091546518430993655349333718342529843367991593941746622390038952767381333061774762957494386871697845376721949350659087571191772087547710718993796089477451265475750187119487073873678589020061737332107569330221632062843206567119209695058576117396163232621770894542621460985841023781321581772760222273813349541048100307327510779994899197796388353073444345753297591426376840544226478421606312276964696715647399904371590332390656072664411643860540483884716191210900870101913072607104411414324197679682854788552477947648180295973604943970047959604029274629920357209976195014034831538094771460105633344699882082212058728151072918297121191787642488035467231691654185225672923442918712816323259696541354858957713320833991128877591722611527337901034136208561457799239877832508355073019981845902595835598926055329967377049172245493532968330000223018151722657578752405883224908582128008974790932610076257877042865600699617621217684547899644070506624171021332748679623743022915535820078014116534806564748823061500339206898379476625503654982280532966286211793062843017049240230198571997894883689718304380518217441914766042975243725168343541121703863137941142209529588579806015293875275379903093887168357209576071522190027937929278630363726876582268124199338480816602160372215471014300737753779269906958712128928801905203160128586182549441335382078488346531163265040764242839087012101519423196165226842200371123046430067344206474771802135307012409886035339915266792387110170622186588357378121093517977560442563469499978725112544085452227481091487430725986960204027594117894258128188215995235965897918114407765335432175759525553615812800116384672031934650729680799079396371496177431211940202129757312516525376801735910155733815377200195244454362007184847566341540744232862106099761324348754884743453966598133871746609302053507027195298394327142537115576660002578442303107342955153394506048622276496668762407932435319299263925373107689213535257232108088981933916866827894828117047262450194840970097576092098372409007471797334078814182519584259809624174761013825264395513525931188504563626418830033853965243599741693132289471987830842760040136807470390409723847394583489618653979059411859931035616843686921948538205578039577388136067954990008512325944252972448666676683464140218991594456530942344065066785194841776677947047204195882204329538032631053749488312218039127967844610013972675389219511911783658766252808369005324900459741094706877291232821430463533728351995364827432583311914445901780960778288358373011185754365995898272453192531058811502630754257149394302445393187017992360816661130542625399583389794297160207033876781503301028012009599725222228080142357109476035192554443492998676781789104555906301595380976187592035893734197896235893112598390259831026719330418921510968915622506965911982832345550305908173073519550372166587028805399213857603703537710517802128012956684198414036287272562321442875430221090947272107347413497551419073704331827662617727599688882602722524713368335345281669277959132886138176634985772893690096574956228710302436259077241221909430087175569262575806570991201665962243608024287002454736203639484125595488172727247365346778364720191830399871762703751572464992228946793232269361917764161461879561395669956778306829031658969943076733350823499079062410020250613405734430069574547468217569044165154063658468046369262127421107539904218871612761778701425886482577522388918459952337629237791558574454947736129552595222657863646211837759847370034797140820699414558071908021359073226923310083175951065901912129479540860364075735875020589020870457967000705526250581142066390745921527330940682364944159089100922029668052332526619891131184201629163107689408472356436680818216865721968826835840278550078280404345371018365109695178233574303050485265373807353107418591770561039739506264035544227515610110726177937063472380499066692216197119425912044508464174638358993823994651739550900085947999013602667426149429006646711506717542217703877450767356374215478290591101261915755587023895700140511782264698994491790830179547587676016809410013583761357859135692445564776446417866711539195135769610486492249008344671548638305447791433009768048687834818467273375843689272431044740680768527862558516509208826381323362314873333671476452045087662761495038994950480956046098960432912335834885999029452640028499428087862403981181488476730121675416110662999555366819312328742570206373835202008686369131173346973174121915363324674532563087134730279217495622701468732586789173455837996435135880095935087755635624881049385299900767513551352779241242927748856588856651324730251471021057535251651181485090275047684551825209633189906852761443513821366215236889057878669943228881602837748203550601602989400911971385017987168363374413927597364401700701476370665570350433812111357641501845182141361982349515960106475271257593518530433287553778305750956742544268471221961870917856078393614451138333564910325640573389866717812397223751931643061701385953947436784339267098671245221118969084023632741149660124348309892994173803058841716661307304006758838043211155537944060549772170594282151488616567277124090338772774562909711013488518437411869565544974573684521806698291104505800429988795389902780438359628240942186055628778842880212755388480372864001944161425749990427200959520465417059810498996750451193647117277222043610261407975080968697517660023718774834801612031023468056711264476612374762785219024120256994353471622666089367521983311181351114650385489502512065577263614547360442685949807439693233129712737715734709971395229118265348515558713733662912024271430250376326950135091161295299378586468130722648600827088133353819370368259886789332123832705329762585738279009782646054559855513183668884462826513379849166783940976135376625179825824966345877195012438404035914084920973375464247448817618407002356958017741017769692507781489338667255789856458985105689196092439884156928069698335224022563457049731224526935419383700484318335719651662672157552419340193309901831930919658292096965624766768365964701959575473934551433741370876151732367720422738567427917069820454995309591887243493952409444167899884631984550485239366297207977745281439941825678945779571255242682608994086331737153889626288962940211210888442737656862452761213037101730078513571540453304150795944777614359743780374243664697324713841049212431413890357909241603640631403814983148190525172093710396402680899483257229795456404270175772290417323479607361878788991331830584306939482596131871381642346721873084513387721908697510494284376932502498165667381626061594176825250999374167288395174406693254965340310145222531618900923537648637848288134420987004809622717122640748957193900291857330746010436072919094576799461492929042798168772942648772995285843464777538690695014898413392454039414468026362540211861431703125111757764282991464453340892097696169909837265236176874560589470496817013697490952307208268288789073019001825342580534342170592871393173799314241085264739094828459641809361413847583113613057610846236683723769591349261582451622155213487924414504175684806412063652017038633012953277769902311864802006755690568229501635493199230591424639621702532974757311409422018019936803502649563695586642590676268568737211033915679383989576556519317788300024161353956243777784080174881937309502069990089089932808839743036773659552489130015663329407790713961546453408879151030065132193448667324827590794680787981942501958262232039513125201410996053126069655540424867054998678692302174698900954785072567297879476988883109348746442640071818316033165551153427615562240547447337804924621495213325852769884733626918264917433898782478927846891882805466998230368993978341374758702580571634941356843392939606819206177333179173820856243643363535986349449689078106401967407443658366707158692452118299789380407713750129085864657890577142683358276897855471768718442772612050926648610205153564284063236848180728794071712796682006072755955590404023317874944734645476062818954151213916291844429765106694796935401686601005519607768733539651161493093757096855455938151378956903925101495326562814701199832699220006639287537471313523642158926512620407288771657835840521964605410543544364216656224456504299901025658692727914275293117208279393775132610605288123537345106837293989358087124386938593438917571337630072031976081660446468393772580690923729752348670291691042636926209019960520412102407764819031601408586355842760953708655816427399534934654631450404019952853725200495780525465625115410925243799132626271360909940290226206283675213230506518393405745011209934146491843332364656937172591448932415900624202061288573292613359680872650004562828455757459659212053034131011182750130696150983551563200431078460190656549380654252522916199181995960275232770224985573882489988270746593635576858256051806896428537685077201222034792099393617926820659014216561592530673794456894907085326356819683186177226824991147261573203580764629811624401331673789278868922903259334986179702199498192573961767307583441709855922217017182571277753449150820527843090461946083521740200583867284970941102326695392144546106621500641067474020700918991195137646690448126725369153716229079138540393756007783515337416774794210038400230895185099454877903934612222086506016050035177626483161115332558770507354127924990985937347378708119425305512143697974991495186053592040383023571635272763087469321962219006426088618367610334600225547747781364101269190656968649501268837629690723396127628722304114181361006026404403003599698891994582739762411461374480405969706257676472376606554161857469052722923822827518679915698339074767114610302277660602006124687647772881909679161335401988140275799217416767879923160396356949285151363364721954061117176738737255572852294005436178517650230754469386930787349911035218253292972604455321079788771144989887091151123725060423875373484125708606406905205845212275453384800820530245045651766951857691320004281675805492481178051983264603244579282973012910531838563682120621553128866856495651261389226136706409395333457052698695969235035309422454386527867767302754040270224638448355323991475136344104405009233036127149608135549053153902100229959575658370538126196568314428605795669662215472169562087001372776853696084070483332513279311223250714863020695124539500373572334680709465648308920980153487870563349109236605755405086411152144148143463043727327104502776866195310785832333485784029716092521532609255893265560067212435946425506599677177038844539618163287961446081778927217183690888012677820743010642252463480745430047649288555340906218515365435547412547615276977266776977277705831580141218568801170502836527554321480348800444297999806215790456416195721278450892848980642649742709057912906921780729876947797511244730599140605062994689428093103421641662993561482813099887074529271604843363081840412646963792584309418544221635908457614607855856247381493142707826621518554160387020687698046174740080832434366538235455510944949843109349475994467267366535251766270677219418319197719637801570216993367508376005716345464367177672338758864340564487156696432104128259564534984138841289042068204700761559691684303899934836679354254921032811336318472259230555438305820694167562999201337317548912203723034907268106853445403599356182357631283776764063101312533521214199461186935083317658785204711236433122676512996417132521751355326186768194233879036546890800182713528358488844411176123410117991870923650718485785622102110400977699445312179502247957806950653296594038398736990724079767904082679400761872954783596349279390457697366164340535979221928587057495748169669406233427261973351813662606373598257555249650980726012366828360592834185584802695841377255897088378994291054980033111388460340193916612218669605849157148573356828614950001909759112521880039641976216355937574371801148055944229873041819680808564726571354761283162920044988031540210553059707666636274932830891688093235929008178741198573831719261672883491840242972129043496552694272640255964146352591434840067586769035038232057293413298159353304444649682944136732344215838076169483121933311981906109614295220153617029857510559432646146850545268497576480780800922133581137819774927176854507553832876887447459159373116247060109124460982942484128752022446259447763874949199784044682925736096853454984326653686284448936570411181779380644161653122360021491876876946739840751717630751684985635920148689294310594020245796962292456664488196757629434953532638217161339575779076637076456957025973880043841580589433613710655185998760075492418721171488929522173772114608115434498266547987258005667472405112200738345927157572771521858994694811794064446639943237004429114074721818022482583773601734668530074498556471542003612359339731291445859152288740871950870863221883728826282288463184371726190330577714765156414382230679184738603914768310814135827575585364359772165002827780371342286968878734979509603110889919614338666406845069742078770028050936720338723262963785603865321643234881555755701846908907464787912243637555666867806761054495501726079114293083128576125448194444947324481909379536900820638463167822506480953181040657025432760438570350592281891987806586541218429921727372095510324225107971807783304260908679427342895573555925272380551144043800123904168771644518022649168164192740110645162243110170005669112173318942340054795968466980429801736257040673328212996215368488140410219446342464622074557564396045298531307140908460849965376780379320189914086581466217531933766597011433060862500982956691763884605676297293146491149370462446935198403953444913514119366793330193661766365255514917498230798707228086085962611266050428929696653565251668888557211227680277274370891738963977225756489053340103885593112567999151658902501648696142720700591605616615970245198905183296927893555030393468121976158218398048396056252309146263844738629603984892438618729850777592879272206855480721049781765328621018747676689724884113956034948037672703631692100735083407386526168450748249644859742813493648037242611670426687083192504099761531907685577032742178501000644198412420739640013960360158381056592841368457411910273642027416372348821452410134771652960312840865841978795111651152982781462037913985500639996032659124852530849369031313010079997719136223086601109992914287124938854161203802041134018888721969347790449752745428807280350930582875442075513481666092787935356652125562013998824962847872621443236285367650259145046837763528258765213915648097214192967554938437558260025316853635673137926247587804944594418342917275698837622626184636545274349766241113845130548144983631178978448973207671950878415861887969295581973325069995140260151167552975057543781024223895792578656212843273120220071673057406928686936393018676595825132649914595026091706934751940897535746401683081179884645247361895605647942635807056256328118926966302647953595109712765913623318086692153578860781275991053717140220450618607537486630635059148391646765672320571451688617079098469593223672494673758309960704258922048155079913275208858378111768521426933478692189524062265792104362034885292626798401395321645879115157905046057971083898337186403802441751134722647254701079479399695355466961972676325522991465493349966323418595145036098034409221220671256769872342794070885707047429317332918852389672197135392449242617864118863779096281448691786946817759171715066911148002075943201206196963779510322708902956608556222545260261046073613136886900928172106819861855378098201847115416363032626569928342415502360097804641710852553761272890533504550613568414377585442967797701466029438768722511536380119175815402812081825560648541078793359892106442724489861896162941341800129513068363860929410008313667337215300835269623573717533073865333820484219030818644918409372394403340524490955455801640646076158101030176748847501766190869294609876920169120218168829104087070956095147041692114702741339005225334083481287035303102391969997859741390859360543359969707560446013424245368249609877258131102473279856207212657249900346829388687230489556225320446360263985422525841646432427161141981780248259556354490721922658386366266375083594431487763515614571074552801615967704844271419443518327569840755267792641126176525061596523545718795667317091331935876162825592078308018520689015150471334038610031005591481785211038475454293338918844412051794396997019411269511952656491959418997541839323464742429070271887522353439367363366320030723274703740712398256202466265197409019976245205619855762576000870817308328834438183107005451449354588542267857855191537229237955549433341017442016960009069641561273229777022121795186837635908225512881647002199234886404395915301846400471432118636062252701154112228380277853891109849020134274101412155976996543887719748537643115822983853312307175113296190455900793806427669581901484262799122179294798734890186847167650382732855205908298452980625925035212845192592798659350613296194679625237397256558415785374456755899803240549218696288849033256085145534439166022625777551291620077279685262938793753045418108072928589198971538179734349618723292761474785019261145041327487324297058340847111233374627461727462658241532427105932250625530231473875925172478732288149145591560503633457542423377916037495250249302235148196138116256391141561032684495807250827343176594405409826976526934457986347970974312449827193311386387315963636121862349726140955607992062831699942007205481152535339394607685001990988655386143349578165008996164907967814290114838764568217491407562376761845377514403147541120676016072646055685925779932207033733339891636950434669069482843662998003741452762771654762382554617088318981086880684785370553648046935095881802536052974079353867651119507937328208314626896007107517552061443378411454995013643244632819334638905093654571450690086448344018042836339051357815727397333453728426337217406577577107983051755572103679597690188995849413019599957301790124019390868135658553966194137179448763207986880037160730322054742357226689680188212342439188598416897227765219403249322731479366923400484897605903795809469604175427961378255378122394764614783292697654516229028170110043784603875654415173943396004891531881757665050095169740241564477129365661425394936888423051740012992055685428985389794266995677702708914651373689220610441548166215680421983847673087178759027920917590069527345668202651337311151800018143412096260165862982107666352336177400783778342370915264406305407180784335806107296110555002041513169637304684921335683726540030750982908936461204789111475303704989395283345782408281738644132271000296831194020332345642082647327623383029463937899837583655455991934086623509096796113400486702712317652666371077872511186035403755448741869351973365662177235922939677646325156202348757011379571209623772343137021203100496515211197601317641940820343734851285260291333491512508311980285017785571072537314913921570910513096505988599993156086365547740355189816673353588004821466509974143376118277772335191074121757284159258087259131507460602563490377726337391446137703802131834744730111303267029691733504770163210661622783002726928336558401179141944780874825336071440329625228577500980859960904093631263562132816207145340610422411208301000858726425211226248014264751942618432585338675387405474349107271004975428115946601713612259044015899160022982780179603519408004651353475269877760952783998436808690898919783969353217998013913544255271791022539701081063214304851137829149851138196914304349750018998068164441212327332830719282436240673319655469267785119315277511344646890550424811336143498460484905125834568326644152848971397237604032821266025351669391408204994732048602162775979177123475109750240307893575993771509502175169355582707253391189233407022383207758580213717477837877839101523413209848942345961369234049799827930414446316270721479611745697571968123929191374098292580556195520743424329598289898052923336641541925636738068949420147124134052507220406179435525255522500874879008656831454283516775054229480327478304405643858159195266675828292970522612762871104013480178722480178968405240792436058274246744307672164527031345135416764966890127478680101029513386269864974821211862904033769156857624069929637249309720162870720018983542369036414927023696193854737248032985504511208919287982987446786412915941753167560253343531062674525450711418148323988060729714023472552071349079839898235526872395090936566787899238371257897624875599044322889538837731734894112275707141095979004791930104674075041143538178246463079598955563899188477378134134707024674736211204898622699188851745625173251934135203811586335012391305444191007362844756751416105041097350585276204448919097890198431548528053398577784431393388399431044446566924455088594631408175122033139068159659251054685801313383815217641821043342978882611963044311138879625874609022613090084997543039577124323061690626291940392143974027089477766370248815549932245882597902063125743691094639325280624164247686849545532493801763937161563684785982371590238542126584061536722860713170267474013114526106376538339031592194346981760535838031061288785205154693363924108846763200956708971836749057816308515813816196688222204757043759061433804072585386208356517699842677452319582418268369827016023741493836349662935157685406139734274647089968561817016055110488097155485911861718966802597354170542398513556001872033507906094642127114399319604652742405088222535977348151913543857125325854049394601086579379805862014336607882521971780902581737087091646045272797715350991034073642502038638671822052287969445838765294795104866071739022932745542678566977686593992341683412227466301506215532050265534146099524935605085492175654913483095890653617569381763747364418337897422970070354520666317092960759198962773242309025239744386101426309868773391388251868431650102796491149773758288891345034114886594867021549210108432808078342808941729800898329753694064496990312539986391958160146899522088066228540841486427478628197554662927881462160717138188018084057208471586890683691939338186427845453795671927239797236465166759201105799566396259853551276355876814021340982901629687342985079247184605687482833138125916196247615690287590107273310329914062386460833337863825792630239159000355760903247728133888733917809696660146961503175422675112599331552967421333630022296490648093458200818106180210022766458040027821333675857301901137175467276305904435313131903609248909724642792845554991349000518029570708291905255678188991389962513866231938005361134622429461024895407240485712325662888893172211643294781619055486805494344103409068071608802822795968695013364381426825217047287086301013730115523686141690837567574763723976318575703810944339056456446852418302814810799837691851212720193504404180460472162693944578837709010597469321972055811407877598977207200968938224930323683051586265728111463799698313751793762321511125234973430524062210524423435373290565516340666950616589287821870775679417608071297378133518711793165003315552382248773065344417945341539520242444970341012087407218810938826816751204229940494817944947273289477011157413944122845552182842492224065875268917227278060711675404697300803703961878779669488255561467438439257011582954666135867867189766129731126720007297155361302750355616781776544228744211472988161480270524380681765357327557860250584708401320883793281600876908130049249147368251703538221961903901499952349538710599735114347829233949918793660869230137559636853237380670359114424326856151210940425958263930167801712866923928323105765885171402021119695706479981403150563304514156441462316376380990440281625691757648914256971416359843931743327023781233693804301289262637538266779503416933432360750024817574180875038847509493945489620974048544263563716499594992098088429479036366629752600324385635294584472894454716620929749549661687741412088213047702281611645604400723635158114972973921896673738264720472264222124201656015028497130633279581430251601369482556701478093579088965713492615816134690180696508955631012121849180584792272069187169631633004485802010286065785859126997463766174146393415956953955420331462802651895116793807457331575984608617370268786760294367778050024467339133243166988035407323238828184750105164133118953703648842269027047805274249060349208295475505400345716018407257453693814553117535421072655783561549987444748042732345788006187314934156604635297977945507535930479568720931672453654720838168585560604380197703076424608348987610134570939487700294617579206195254925575710903852517148852526567104534981341980339064152987634369542025608027761442191431892139390883454313176968510184010384447234894886952098194353190650655535461733581404554483788475252625394966586999205841765278012534103389646981864243003414679138061902805960785488801078970551694621522877309010446746249797999262712095168477956848258334140226647721084336243759374161053673404195473896419789542533503630186140095153476696147625565187382329246854735693580289601153679178730355315937836308224861517777054157757656175935851201669294311113886358215966761883032610416465171484697938542262168716140012237821377977413126897726671299202592201740877007695628347393220108815935628628192856357189338495885060385315817976067947984087836097596014973342057270460352179060564760328556927627349518220323614411258418242624771201203577638889597431823282787131460805353357449429762179678903456816988955351850447832561638070947695169908624710001974880920500952194363237871976487033922381154036347548862684595615975519376541011501406700122692747439388858994385973024541480106123590803627458528849356325158538438324249325266608758890831870070910023737710657698505643392885433765834259675065371500533351448990829388773735205145933304962653141514138612443793588507094468804548697535817021290849078734780681436632332281941582734567135644317153796781805819585246484008403290998194378171817730231700398973305049538735611626102399943325978012689343260558471027876490107092344388463401173555686590358524491937018104162620850429925869743581709813389404593447193749387762423240985283276226660494238512970945324558625210360082928664972417491914198896612955807677097959479530601311915901177394310420904907942444886851308684449370590902600612064942574471035354765785924270813041061854621988183009063458818703875585627491158737542106466795134648758677154383801852134828191581246259933516019893559516796893285220582479942103451271587716334522299541883968044883552975336128683722593539007920166694133909116875880398882886921600237325736158820716351627133281051818760210485218067552664867390890090719513805862673512431221569163790227732870541084203784152568328871804698795251307326634027851905941733892035854039567703561132935448258562828761061069822972142096199350933131217118789107876687204454887608941017479864713788246215395593333327556200943958043453791978228059039595992743691379377866494096404877784174833643268402628293240626008190808180439091455635193685606304508914228964521998779884934747772913279726602765840166789013649050874114212686196986204412696528298108704547986155954533802120115564697997678573892018624359932677768945406050821883822790983362716712449002676117849826437703300208184459000971723520433199470824209877151444975101705564302954282181967000920251561584417420593365814813490269311151709387226002645863056132560579256092733226557934628080568344392137368840565043430739657406101777937014142461549307074136080544210029560009566358897789926763051771878194370676149821756418659011616086540863539151303920131680576903417259645369235080641744656235152392905040947995318407486215121056183385456617665260639371365880252166622357613220194170137266496607325201077194793126528276330241380516490717456596485374835466919452358031530196916048099460681490403781982973236093008713576079862142542209641900436790547904993007837242158195453541837112936865843055384271762803527912882112930835157565659994474178843838156514843422985870424559243469329523282180350833372628379183021659183618155421715744846577842013432998259456688455826617197901218084948033244878725818377480552226815101137174536841787028027445244290547451823467491956418855124442133778352142386597992598820328708510933838682990657199461490629025742768603885051103263854454041918495886653854504057132362968106914681484786965916686184275679846004186876229805556296304595322792305161672159196867584952363529893578850774608153732145464298479231051167635774949462295256949766035947396243099534331040499420967788382700271447849406903707324910644415169605325656058677875741747211082743577431519406075798356362914332639781221894628744779811980722564671466405485013100965678631488009030374933887536418316513498254669467331611812336485439764932502617954935720430540218297487125110740401161140589991109306249231281311634054926257135672181862893278613883371802853505650359195274140086951092616754147679266803210923746708721360627833292238641361959412133927803611827632410600474097111104814000362334271451448333464167546635469973149475664342365949349684588455152415075637660508663282742479413606287604129064491382851945640264315322585862404314183866959063324506300039221319264762596269151090445769530144405461803785750303668621246227863975274666787012100339298487337501447560032210062235802934377495503203701273846816306102657030087227546296679688089058712767636106622572235222973920644309352432722810085997309513252863060110549791564479184500461804676240892892568091293059296064235702106152464620502324896659398732493396737695202399176089847457184353193664652912584806448019652016283879518949933675924148562613699594530728725453246329152911012876377060557060953137752775186792329213495524513308986796916512907384130216757323863757582008036357572800275449032795307990079944254110872569318801466793559583467643286887696661009739574996783659339784634695994895061049038364740950469522606385804675807306991229047408987916687211714752764471160440195271816950828973353714853092893704638442089329977112585684084660833993404568902678751600877546126798801546585652206121095349079670736553970257619943137663996060606110640695933082817187642604357342536175694378484849525010826648839515970049059838081210522111109194332395113605144645983421079905808209371646452312770402316007213854372346126726099787038565709199850759563461324846018840985019428768790226873455650051912154654406382925385127631766392205093834520430077301702994036261543400132276391091298832786392041230044555168405488980908077917463609243933491264116424009388074635660726233669584276458369826873481588196105857183576746200965052606592926354829149904576830721089324585707370166071739819448502884260396366074603118478622583105658087087030556759586134170074540296568763477417643105175103673286924555858208237203860178173940517513043799486882232004437804310317092103426167499800007301609481458637448877852227307633049538394434538277060876076354209844500830624763025357278103278346176697054428715531534001649707665719598504174819908720149087568603778359199471934335277294728553792578768483230110185936580071729118696761765505377503029303383070644891281141202550615089641100762382457448865518258105814034532012475472326908754750707857765973254284445935304499207001453874894822655644222369636554419422544133821222547749753549462482768053333698328415613869236344335855386847111143049824839899180316545863828935379913053522283343013795337295401625762322808113849949187614414132293376710656349252881452823950620902235787668465011666009738275366040544694165342223905210831458584703552935221992827276057482126606529138553034554974455147034493948686342945965843102419078592368022456076393678416627051855517870290407355730462063969245330779578224594971042018804300018388142900817303945050734278701312446686009277858181104091151172937487362788787490746528556543474888683106411005102302087510776891878152562273525155037953244485778727761700196485370355516765520911933934376286628461984402629525218367852236747510880978150709897841308624588152266096355140187449583692691779904712072649490573726428600521140358123107600669951853612486274675637589622529911649606687650826173417848478933729505673900787861792535144062104536625064046372881569823231750059626108092195521115085930295565496753886261297233991462835847604862762702730973920200143224870758233735491524608560821032888297418390647886992327369136004883743661522351705843770554521081551336126214291181561530175888257359489250710887926212864139244330938379733386780613179523731526677382085802470143352700924380326695174211950767088432634644274912755890774686358216216604274131517021245858605623363149316464691394656249747174195835421860774871105733845843368993964591374060338215935224359475162623918868530782282176398323730618020424656047752794310479618972429953302979249748168405289379104494700459086499187272734541350810198388186467360939257193051196864560185578245021823106588943798652243205067737996619695547244058592241795300682045179537004347245176289356677050849021310773662575169733552746230294303120359626095342357439724965921101065781782610874531887480318743082357369919515634095716270099244492974910548985151965866474014822510633536794973714251022934188258511737199449911509758374613010550506419772153192935487537119163026203032858865852848019350922587577559742527658401172134232364808402714335636754204637518255252494432965704386138786590196573880286840189408767281671413703366173265012057865391578070308871426151907500149257611292767519309672845397116021360630309054224396632067432358279788933232440577919927848463333977773765590187057480682867834796562414610289950848739969297075043275302997287229732793444298864641272534816060377970729829917302929630869580199631241330493935049332541235507105446118259114111645453471032988104784406778013807713146540009938630648126661433085820681139583831916954555825942689576984142889374346708410794631893253910696395578070602124597489829356461356078898347241997947856436204209461341238761319886535235831299686226894860840845665560687695450127448663140505473535174687300980632278046891224682146080672762770840240226615548502400895289165711761743902033758487784291128962324705919187469104200584832614067733375102719565399469716251724831223063391932870798380074848572651612343493327335666447335855643023528088392434827876088616494328939916639921048830784777704804572849145630335326507002958890626591549850940797276756712979501009822947622896189159144152003228387877348513097908101912926722710377889805396415636236416915498576840839846886168437540706512103906250612810766379904790887967477806973847317047525344215639038720123880632368803701794930895490077633152306354837425681665336160664198003018828712376748189833024683637148830925928337590227894258806008728603885916884973069394802051122176635913825152427867009440694235512020156837777885182467002565170850924962374772681369428435006293881442998790530105621737545918267997321773502936892806521002539626880749809264345801165571588670044350397650532347828732736884086354000274067678382196352222653929093980736739136408289872201777674716811819585613372158311905468293608323697611345028175783020293484598292500089568263027126329586629214765314223335179309338795135709534637718368409244442209631933129562030557551734006797374061416210792363342380564685009203716715264255637185388957141641977238742261059666739699717316816941543509528319355641770566862221521799115135563970714331289365755384464832620120642433801695586269856102246064606933079384785881436740700059976970364901927332882613532936311240365069865216063898725026723808740339674439783025829689425689674186433613497947524552629142652284241924308338810358005378702399954217211368655027534136221169314069466951318692810257479598560514500502171591331775160995786555198188619321128211070944228724044248115340605589595835581523201218460582056359269930347885113206862662758877144603599665610843072569650056306448918759946659677284717153957361210818084154727314266174893313417463266235422207260014601270120693463952056444554329166298666078308906811879009081529506362678207561438881578135113469536630387841209234694286873083932043233387277549680521030282154432472338884521534372725012858974769146080831440412586818154004918777228786980185345453700652665564917091542952275670922221747411206272065662298980603289167206874365494824610869736722554740481288924247185432360575341167285075755205713115669795458488739874222813588798584078313506054829055148278529489112190538319562422871948475940785939804790109419407067176443903273071213588738504999363883820550168340277749607027684488028191222063688863681104356952930065219552826152699127163727738841899328713056346468822739828876319864570983630891778648708667618548568004767255267541474285102814580740315299219781455775684368111018531749816701642664788409026268282444825802753209454991510451851771654631180490456798571325752811791365627815811128881656228587603087597496384943527567661216895926148503078536204527450775295063101248034180458405943292607985443562009370809182152392037179067812199228049606973823874331262673030679594396095495718957721791559730058869364684557667609245090608820221223571925453671519183487258742391941089044411595993276004450655620646116465566548759424736925233695599303035509581762617623184956190649483967300203776387436934399982943020914707361894793269276244518656023955905370512897816345542332011497599489627842432748378803270141867695262118097500640514975588965029300486760520801049153788541390942453169171998762894127722112946456829486028149318156024967788794981377721622935943781100444806079767242927624951078415344642915084276452000204276947069804177583220909702029165734725158290463091035903784297757265172087724474095226716630600546971638794317119687348468873818665675127929857501636341131462753049901913564682380432997069577015078933772865803571279091376742080565549362464641260024379684543777339026472512819416320076848736251764065967540693621758879307855916478777274739272002910342949562447661308200729250734529170764226621047673037863169954237455117456522022783324096803524667663190861011206745856287317413511162292078865132941244815471628182079877168346341322362234117788231027659825109358892359162055108763298087993165172528938001237817434896832151590562493347370206832232100118637395770567473867102173212375224325241626358034376253606808669163571594551527817803921774322823436633772811186390511893075901666650742952758384008544635419317190531363659724905158409106582201814734799022359067138146905116051922301269482316113417439944714833040862484269139502336713412425123864026657258130943967621939655407386524229897879782198637918299709557924747320303239116410445906907977862315518349593035305923789817515891457650408025109479123421758482841881950138546165680301755035580054944894884871351605375593402345748979516602442338321406030095937105588457052515704266284600354402823678768550982678161765520375795655481677896038927498355608791541177749423573400764161093294003899982199267257086957326068774974224802023307525187650255968420760693229988587579898896460744381788170081548895226516722834045277219106991415764639485231126794730865803195076455197675628957428881796812090026387145257858315277615109088631740243695680567873015235427804793414266495223833707117511265375503942372098784668049139473446530714079622597287130503077258714875570502582573466866613802351426056116197405543436548698005444879295970287590352258409782683598666446586045694241390729095266249932902973440568160683805726626057277088407073471496060064561454070734432782514087474275506722304845357006092214390002992981608211717047917614505191008132670375214930740567853311106058352912781007391749949197845112915913681107394055175208019630539350740248509553772500367054665162330430425087442324262404632115078997336929985407041656261041976700202415094892411856092409637604429612002364590706449770627207919019235964807048923636979860198283087284228564752353162882791324295524814447505521909672046080689545181712204930321853740627247421519740305769043602686360780792004776232429551829473522027244376339027721392087767065716241639751785859254426923428535274328856336850789651962072519416556061870370550218462845434257850383000095374518292958440464918838685793483961151297160581665745096703677495836666693121881763679644943617130416037243050658485131749264055855194018005180908475211868224616976149243238319486434415908558011073070311201502243416073157929528752936835820397003389112114170685219366589789459503154389589015303827143001929589074149943592894083097077078362875914484037045038618966975811201852319231868659968038583812370329156207578835948780941688205531605128190152647592807574958154564221341459378167056992868299895611982353837157880480478704584175394665497690173220310890070303362911767308448450372145669644401469545173857434157810158618783839278552609399130570255575559060947051498093487773320072797573038245989466809680822221348485873822999281794090825665209581655472475244566743697594474686376332428904269776106791933910983300422310293728298798903209391092682836306173610173878123679898645149311702437128285882630486298884492207415640607147059137405524665756971870217355287245439427714809179364437650637861861324348635797411258520863459927803688792498354363298457687650165065115345008695721239507544785683173631557153527046524235259737513408825461609661440746675514226836031959801072152463551069171871335731685485631280857834435623670959650949946968820661185118086034202821331801249410991502601435450017432730793625113070298250499417994284451146479329154599555909587807621636668591791065435966065253525320273650725989121255686842802077246487722010996631829559552903393312284364864475973560859840760947298389542433932623153239918981852264180831296333546356874828863465618504810632288805596737844562000941465603499280879405115310057587129552571964111506850340773710604380371259575596985949362058477512026354947347534748189262254190352671614429284899857536740692165271630086060654373736823556588626486343689153218095572204456777137368310458075584529612832832606319629728527966674362974800821318627921869044284342630735760703999669430789508147269730253817375694922751795354326156912040594832860949992366412287881226419148504856328072066418557059520375030322916894489427578306090910852410601400683274205583969773823150734996108758763704255564964086855071942256344966732430656259250474581762733281816017019698166542426378763601453035946538450325476674999737340835665138186025156520283637389171016545414882674448009105704186162626837971120886141357279611099088292970229692128180978798951391504270936786444983196420134566833908775943006442485623012124614511697921939634409508083229281294270436599146482749984375942113020418297308417178813090379558545603247170819195302771465794555475544754284434408139388908609776017857389307518661906505018077165001840744325854024184360501118242990702323417243674525365349594799063334540754371812699399833719218485418735979845348934592268515068182662490078029335012658824974226241885352526636702827662499349829488748331061764208429016923052899608978604130065109028179805040587107671179041130217482796682353001960220253185576789843317586806378359968791601538922220236575765581586611409199394861599209159917553341783033347643131635012705390697079326567812415906434284721360235218236741214733124499944334155915274315931687477882533155092770336202901222597794809855392200064527162280855398278906584233447552821276517650572663267691141075034845871896996434875775138479148183635100621466818585096348887081456976722020167991199462417776688907917136865945960726468538810778783002161368276697026223459418737476733537998884403427046803042551694127158739320398444374604547816113056625176412759821181939661101850562880555942566060032312116180994622129301002470913347150682268430458680300904242861682025562140946087900065191099495570815816505828983340739466084457565780636690272843462018587328252924796505286681408503538519837523637451925622795490290557907030283950104854835929834542814487304358047053315081510503001521428117175393649133166172621235405527863308002083177055630294963594201654333094094177196326234119387105161570101798053551679370860291366756986097124120368583812957695307798141365700174761356966986146068491439699573837631695824602513342108072621713601943018087209888551415024163818325975259593165531865833117126857941527206612218422661411825154657484878312610347834546749258308729985447421206445095233245050877431496166555251797168020991720026409374921907569936896330281391647208963581771735555848592706524504862516419540550801343510323389813378302497701822754906381499964723334079613041469739476372650869273347108415685608430921316240434629863920841660055904598506491243505264766067600344441618186403670083774114101094320588955598658670077863671896944089622321374034113597199133135946553685446692367652589012108413777432482191812747847892287264892970032371873456157981599834839100412601050746964599430331978810634913923812490503061433407918328004063907098672596197098311265960147473725330526853717742146554005873924623727617364905198713368067723952570781360686683261395014329509474851594724667527201684316586608807512768584755541184381169011622005552113484488960668259227431319007963011587084670117654935393046563356225311244727796669005831190616101972663073970542531439818457379449486780134618217875939076999602029083965677287846905736401564015047696448993947541474608339918696889271156942345492651246645507792554028105037622035967530558601856492056062879090769453339208808849477828894851122154743230191383245562993881020614490266876010207753210915684977830740859649857967152617010039475494539917698791323546550106407355816999409756248149967443278429202762644189793918158394562708173301582160225519659898769376164019861207466755048861110855726764507052622446130222335852072273620485057289238815884938754535229186399714380884061757286220950122506515863104258884134355431973729856217753072022629475552483044445340434888878581170341345342522354319407877972846760181583227097745180929342193189815812482832658950040704855206099893783900341914163044639163880549658786501375046341695655156618298878630705842306967660254053024811471007899784211830489010464056896539702885595530925558636052158957375114089564905844156774937105859648014315874614491250549253191164653821585197370093280194530320572628452658046046337816631429933076646646530760590548962888724189716060225882617577539922055131509377200624863085562820493575752724995567089221634233983602565328731029194007041176919220850015116735670101958971001797019578120892910969417754369904368202563024054822625401905696507710581574240721496339560365270283334407305750073674562260584649886115101689612181119058471714461068719761017456587373796740697137423238753839030317200200207205928488785123911746471673743737923283881966201687622191346233893762599527025672138622112458980212130501407288904300322535504095866818724139369938193069148744717186646183111942603161664070377316487001864799600243044003242241809402278533309011509880870678268835317200767522553138008818780431690190072804831799287414125476123089606833095828377667688287578688683092976001011974533898331952588619630132917094385816615374171794496319177154312506959853481285684619377669894277459170918802520012749905559407289696594793331672243621567896776966708035229039018485730806275670867658627104769409203565593025352743418965927002227049233186829991560936413757004988537304596396152734629396974951748062696451793018719986788537581415975799314806608557232568374305282764175670050288040489429899580948103534833934144927885925262192415547231997143385086637320926632728243514933640704589683852345624744361175256766987767597223439206357507471552918102762614012992480422883990297879925418517499129630283990729635588579890593317795908769073905646025623533567221552259468838298452882922966275137162422172954678670715840924184084147557582539385240963302051349704740695399567897981727860920462286839735779815111868152659884606949758965481314651150392626377749513761557248195116119877250344564710738513435927355538712462375598193813214238441581929070046389771683887207916361741432497079109658162746429717072871725142745898356897095534626820169085356108944898407100581920302176945120771774588795519510473384184739980796306767885845167575729904306971542642383498009870869933670912108394453506245922432312348278549660374657188014892937945147870540607924575900601219622123928720017215588666345734971409533721151655985757941724419889026167016101611557834315025460328781198424027484608510722406676778760855247617773833089502610064388350550205456324346167859451941795669874968515244883847513618180667108316165564209369270520611898517292617141714434655508706306063551012949400309759167799158426049197120954322702678432654296572403272088714321999645313202587109677165128549669962552698607311763718207498827399770601991362093083230736838206455732563765982912578131492224220427971241441629951265945639792759380383804782623160424325399132851123032247037561942321733047854078576244013291717992979240783390715757981426816864655382946847399205888631655934919867896962840447344968024077092831376408103352255242717404107673565424441004483347440101726441052954787296345898640501203608024451190350994974493973617181575277093780209236668135841636268319263406714182797421342546220705415600050959674045616840451771747952790353254932589120483385746590096781730416000521088934610768754004241977803082885181200173369559127137714195011361304409753279190504891583246399143483531648681548579178632935123925552510211182788573696060276931301469661433449642302114382483705633532793858895267672076688971274435815632088106650149568143558796576909857765902768707453659276364975553449617308078160987103248013795136170367763457594975686208013996374551762425147780628722265971455482906769295713643572152674468987889418820751292225756509143552828874614195097862427527881571566400763721037803194043095844272549269987169234331890022141503113998765260688761566740210197201719602390861082974927639569541153032275460173870795625993579785302443476716399591462317931239989986928437975702492369551587297683854005227651495614447105971962889888157109415171701518114743513643854005116246202131174800791983749700100471363432523281578911355450453371905275068229156185003328469567926226208190442473340362503892792071585960039363153368842724375366799698647934741133198328619441460653922784099903143840354565047056789552024827176011874335643690243503085631309559055250390492731613311734922584644609024535079190184411299321699770451832853586480428556822208737213616490586303256368913084103760215679927020005322355439804653119339775459044045078568021398465009693429547310269249947586466058091669984160684646087293943808274308285817479694172872990311013192675573897984091364253479694943480377703364634958476862982590103470727861218623001986607987782684245933835638919570206853521603211635230064988744600200170413056985365154668752023859375183280372851143274811699683692849220447380570633496618711240947835915869626858643589141359854253577688774932743634514754488640868818030369652431755688300205860773256959716086485415834468432489963077011371344675156930244885482077124133557732306949458067267845235943631507872728157901573070033178796854436279525719023623274614262868732738009497741122856237663214904653294072026197539071740422259539242888164559796570030957141389106936845036268231053986743753240052701534745893325679514941854537808827063457295962169085383535370381418115573816378209032561519869745357646412125498076005156141707298046994813593483150568116642793219335279822714715767340186088721518799669350252700757556099719882863064285448128275139280694702750148163289727314347348528529504604883271673978981563678804780443602109007320727369749344630499731442571560433133690387618100948873120713482710815889857483265854207510077953118326861708037070935927614936782530858340482351003632166378957426202550350116861543407379504516482896755698358935522020173679548075781909502697981271148703431190363112246128295303820512870430929471974594690821025634788995431771524379696211281224503426066399268852133079196370277780448857920573046990800923440186638113252097123096476059989947925759851008173039606822219975327301606582628527582576695078547260349382981335825281786706085126560022688717811253597829337347791412736284188656175920832879447410969703879854736984025458063294835022359393543587480223989760916296250110473931169449100666907230634693130169711820632535269244043840093724284428209709364856909468920087371753252557030543539828727812301139808093867015474885803445631871319602678548793893316205007675264112044390237583342724298699654786368534102848857370254725502365663418680919038388670787907208403619402164670121534837978151832826472578628815207101081499558980338118961569441756761340717046538512170902123777884333649651872119905407581877394397528364143953044245913903178813004188791887114553148267469987055587931040240388884083850687341625071657274185134952084963670955542450439483948045979156228282483787934152720362263369561805556371076814888893619275742659935823559431530887933052767558747512365065843969475604297192002319868024351719937868100361102312568364256079597410574153628297180046497748573718378639037039015397374911654685499716453941611216417610717145401765190565052520662277883129045719693205990241375395983861982603205495839501675552509644137118222561496014003023035407899209698677507867200038074267970530307167932296015648622808518403352350170608589512912223246117830253163628943946073652771336511631646446199099021224922412315168992767855863736315526002503488487813233001910189399616702731416999626511945742636761965002434737172729028462209798394871065982270009954918877696188505432653211802219444282228425152556141187434018041946141394514712872527592391255964437356833972896331267678234910356332961294719101515714311579549093390326141191865475237624721531102079369115848742205822747343201735585077122437969857965491580627950274097716886114807616315161855306856692457171769220443668433127398933794111629722451699985468562215702417594711769952916550211685500108985761934639455908826270775311465775223884634351937653973498480245497607602440308084489010683878697261237097835782451668011714859836794055290461982621656691720274262854823933960018254599409254308169691032978411234022885600190549342750223185294712829609693976813734197704278121300147328677605719405969979275512461718434956985641712872481183465420642318714551824152867630567513116267717735061751124546338799426529127010578995671805721436557918350691777930704075732904397494995822410623810514917650238504182730096620171750940590805408957283755406355152219965820757351315707592361539863945921115586400098809755261053838256899272158478504174606516151133788336097601211484870055601658124924706825684427204547289630942030665044529864622359422600855499158914995360649842803457949275700949795945060237877501947062463239495495782308228306684081880252107663907423097372091628533717680621644693543231791785530583317142084798863034084657264269395570026857605753934788858709460058272323051910811751423491268733658596079989173292891589600181509181633740080603547520005151175102901229924870961545928026206076169827218102916731554892942374085196743307916607849905578210193571366243599088361385980851615641747694605478554008195353067080308969763045294686823321053287823743894411568517627171163630940147990964945635459295013073900362682100732637008235615069126964318335171625439030469898931426154426359511363466057378654951244574752621678954703628904830484996804037722513431937373441236618586944588064018584073147633792940386340435919419872355263015654608051868676068043160845128459160424413269879125385602991599672787661951950531764883134693257366894644382558139108486209663742674579831301222343872583124422033094571457541470479293875858238997738515213523723895596643122356432626286011474890868171592810668727084008203377186921535235269263472268090825989889840026208152178282611229313118208660070996860365409818326807558247767069504109975861436243552161945353029200254667367996485043373133495208210751199258926638995647569858707901856123791578864374469037871509500112550210038845311923652965599461900474846620642347942329670060529003709175578188708193522146871427235277632559898086948721113845980014123842163827824412736542446748833381679716201128861914154019367129094789902646664431560983729615019686242282506723061667209435465714251493086424887785986827595887490650772602509518295367651811823686169447243607837642947624692263194989219646440683169287661615060508138463194151162025779078630718012311594586038965625265542233462344545073947886902681594975131168851436945210216883190446168629763325229863851818850049286935727647668238555646365544964006317648285575785866610228551564859908820958689444362546986795238226861159699100563660829267915337538160661122478695313261585318717638859893779291889029987938798100036973078489592706254104848593158543233956831042390299070263443797875691855434089764407601308444819786265079476440830134942435834281885915259293471436317533749589701072873501270788980481635045676667693207553051840432446100740321676471836083708475065126930707660849825299000317850305853682139512735038638246056425103377755809864643398017186208142663074172592226000511091342681074670129014301654101064933212283790827515001003530015654597508323772965439697382047741626571065740821649960626227496187953347907065988974871779564334064841745645747906925170149499810095353413548908754836327579522407206986291024671703579251441766703886609906985726260581240825336225218992000418975745765315123000064445715931701771688635483333051921582055946117357716321132233931965320386199005116178171334001070576652689919708169202219464704323795356411866063920558609034457064151797782145054722278852987210197858846070047420028468873795844228949974333656271877991721137916164492541329715652879529532639759538535920950138633380507561369530899547584883024261962758985941513780515805025767540401785795852448831172105089277089227273431973823884687307168230248788688585510108073522781405371406520758107270848167263977098731455162646911423286103036932984330300323676162714264067587806731883971515002798163374779078775038307986759404591073921034587404219617034925808189907205961291586420202885734009114955238865107911371495334639763988183948804530075074740372280936820535430494951948332833470075161979008687285439962981575605891637624723069162871111137676086480323752459664930411753946136464337804671165055504670671836221285795048067165630427626711429999113487698447050370637900181096888629721757951732433802780617470496302042492916619171886243355599282093243919445711886321556320161654247055375938696624656334121541014032286990930159132885808831241242882876373872742838038590710292748633351503090445328052597795658920554562434297982794134891756382400771612173324736428540160610044337641457220785921715591401037832020132133833096380778904095723810558829392796374381660686835195059277019515361601722158904287856784820682919441698718192862730827044416303962547130532843883379133747687358261221162583602728961624559041896770247453827583966522993712351630489833012421417455788591594256059792427721819908556279848605617453684478923796907975594555154646853163024462325674034895845462256744858202042457391994253094264224504202689038150152683602412559807597523648162809304891274615119623154611400822056396780658535407668688227542650381225999162076017089556747446524234452017661650325945665912966786324621379919222961458671422482492880647680321086477994100410060033906792752373625460277429600734788038356687522003482457694908456862696057715701919174892260635208129738797443835483286136939562450392976805783223402171676555917766840375723484409461762931288492689936871389838822271060279037990019045583360079739277410926655739233147025909233890654388422351324115388018559234956139930223919645050450369352927011566305153351918641864823442499919272027295345959906304872360804159576002966812111683172366038110542803591445720248256456105714055462420821343520948108417158289572445072063546816002305120140848054358742526171017681853883557558717415424775449772221419261315525269109175563331932322243218525422182729149159810583689702503522813002141192486014248068079753699647771939490680468355280834732761030604940973309169031678309793463661183278453186871646268073883365670456601042376850580139507443647963922284112697945134773004924987864965636794909929132712528977651918175427962806084932375520815361113240339713165504391887960198382138585000773242461778849187581459642642337889793330819488160040113126525635693244659398400636890315254722923991414474377069633893576192603918924793631780083102611419548543605157787160049557886565797066588551042882466363057207778902266777042512681571979533225107638903681976284402861025880539233932947467202408854127649238644760216116262082421299166036229918492378223630098347811952291382184732634228575912097980547828525059183798336801787411242644746002256241498069140074097972102327853957561512834580616541111792671042799057939449713494632895045651286884784187175802050458328387485313736911351025506201027753458094391050010218339732456504728894768792989259450198750767122363791875864720121496606115128048709648863056228440839369443872169212084920085155838125107074195518720809374694245973117281172105192890389637039423577686212766821093182763664984042124938144097959863114225436483965499983479084307021764385554351257436828228153032222380834767951113557014806318200453220723794891863572149106242526993994671015366846234105153338142684770627585203524099207972086991453730109551641503317628200196916411546026820723669255275141842996992053985343307306805737238050416719722112737405078927266340638850686734458560773266648384578027718911475801323105519878413365218519071460681389868867103147598264611293795439526672867275994833590259744587868768496462683484434414135917714587766088077845357183932937193739323640835633757668846821111799350554102085561884901020160050563954168745108220603555410817666460524124966224422804545243216032036019464135609792001959024049792923673298924553990101980112140290868699920575891777188074146122205024728585715367530747814389730571787268366360157613610077228631963885264623512553807731945956356796538236249992655180433079635962110674552852142902629498265675533527310046878865731047246649332656792733134512295505918623293739332608607745135077530901574443829487339779605322849358301361837958626480321297368474817516476913662110360369509106666505171711508278200932788358722598394046306837631811808904423626219988123682680785795262197216687201745517472627818032683058548803970977047934831035439855907843552776676033139884605271503138856332467688927104595851932895139167823857735772658100479825639355193520055204080028705967824973937478860528356493591497838037796496000521244583477900175604246586665199807702883943851638095504304921960324436090340085174660429627430976838715194598264473594023424821104475729111777958773134155360952759570898612586771456252399450075938020609355024892008476733229308574222255020645569023912654366357852427242905605320575403082101451238209021746697579765347517250146583747884808053773515042222404295760361375432486199655891939220504699982106293160967565179075132296077785755331026585842576086686764535520927748275567545177169950878941180593630524994496701237598006553499873966639539441701705969810151271933311840767923271853953980976404852784674387231643291002906549530861283330266400758012961849920702200255597215695758837616878436434679275586357397225356488413306011928957464280935785808113233143311528748217976603971257952890036407198923328131611640416937736628013259738222237426818917648959642270338039059295964969648213311447316676504197678110849096646942571706945700787126401448652242846948897617256746535220506162107300101926248314682120355169950152200731638400413203033324231216708268546893175843663043078435078592810447849266395265239871864417338008568169232134742975458326940216125333283790096064862778549412667951367404587741694559614076265662502990069226726787603658713793279604184883939339346926354341548095183623323317522937035210291464133127520371171667548720634738923293785107290295144629274154676194794274716691603049782928896147458702649979707920638724082502300642554499590401197410853516784440901880646293748354439614400353523310304041178457228902958180581032123743825898702747370401068377771592512645357065083009214792583498924751274536220061058545759973693135297078143742841340551954446721489415057452839171603715453082525558343202512542416624457524562964457910769717152147095185055003550543906316882581057850746356562047914667680556984384552027709969719889807233714869563567031776877637897432734928293439051455670607446079704769316462781214171381827437856146219708808702106421105737785147135883737738824076528045191427137488110559744718310093937519765980210024101251123081368260338474491087716132285766026393884928495989823656572720426357202637482564949491262914191713064628059566982549360326132019252804346170439028926027993140436137026582012131285148815857311178210413103357288871817295262711200081475064026830464189887697478791731737038139991888242416994212152776045185956711909418073734793310997092831554681656395271010461137625406644958618385463898220899677832955011143149959368039822230371363295742321735744647342109741491743641994731958840052638726959231836423254918455955045343778467094704509594201202114220864191279049359945213739248711074323149511380429379365543637217263481907571135312709307952729522112479531498969908089466574769556512436056114200866399056099000380302506124236077503293413472890501316772809713162683495963409292243031195084878867103533520023712730202916592975252657039210421496349523857085605723434621576956985134068304548331545907536471146996824209102321431171769227738534770417794076441001301048596092707211320523185382227444870243327103987811479127546080836115687792151311310450083663631007517511025900280864277150209627136623974010752884454683316182115027892643072976355761055112462033248005310599511150543148482955343295983057427245173788652719300073232173623758732731489091094553740270481185557199051683938745352067970859211896407854895041094056996598871598863362077955045219321563361246853031747054439402941829263552401554523160986825531389701880153970459625016917966481250155593231148267300563383579726032860177847414960045697257834956205873287301245145557634523029864814954410090788352980120701265410952518460666201767420452573679946907719084537874820608029048251670176619820730618331239219353569004070521549893903446593880904750772416954365185807506649045944318886297872357160302248135220460109063521450828063974927551284769435499620339916448879197437902095718886320024750207910237907307296374632633667459427556378453569136734552401489712590948036856628232100500394007310663207525728314711519263328928520696723934717509829526021254947643301953574383509258283111339115390633766173730772363027988986998579945016592376906754883798892940060516282614004815046948281403308391643424865093963545890913280595111633455036563482451915058317949808318272813479505077271733594966337188214919283787116463903566925779942457394355473044935559396848032790208614196815082606481092468854338332986639074547805263629161562798803187828270745163032786390756653362197506322424864576945975359667320060389826293000076125149479800895671245256955982758548576901246368659494224227727177151849641751071598416357207241224371968067203927064789427894217128426413342711831847944133460647243141150155098551171241466824331235206284065722692606904747919644729752832274956981963277872816259540120205380732958250049744593080978240952991296542331849879880077168163198608651208831586725650659441406184468374963189291374599342160348482288315828973094216147368925585169927155311558888760072170341024458744020844342827300467309795555666811501300338889583802314643138290026007632285034758307808788951803139810207627889851743534782251208467594974300244378958428956807526632036276962994601808349419949127065591308400058626563996391104068510412820071532462564263714563557576945284927112635577196325065896545536482125459263355257292595281499341587877651569223119151023373440716991656476398200089698462984399775938539811213321810328198969945792617649358297483733877523528594640351382382306269453634581003193672502069828073843334117528315731434263989641634712705303477569915580031181591809113788026883854757697292339888286032302997704306662886955301210272705763395989768941024996847949816842011992561348075644040655946238370872368881254894914879487348086141681055211400184551700844448429484755073273664282722206336582401745498808291301883914015680905000084954657373000327477972099175074617859515799532022372852359204007425152256386166756203188398117618611960221628474319079702503674592828046781785366473935600354038278281845766947823374571138221219326167295010427069409520265028052289859093500239449087456262053452217311940957783019536051850385496140621825306182036518273370621119893902448897538635818099449181578487833652886543654224830202789241704968965110417275947501781226785814391748649424357300909171264877160595920974458114629554223100220085120522589764778114827039426776664278274625939511743807198618722265586504030028469146927864680031836034638172640570270742262034297187555809938687124046562233389146465830554301315509528510972630050805188265272685335372937338569182693717167730316118647494810424215127915910146065697953331337740959367493264414637024275245393350301309928336485407069840343991212452492755802997988240920664464042585966200888741916498773027540372920421581093781471313622628866669454742124495528490914921933719362340294337125575569988652966236450353519202677763794248208286056893623152152317885014521313214914698685483594470686585010981314205892676416115162109405356780736810089734245872932705210853572676380564228840929665884477795279546710735193295474713015079220840328232204428944678218396547110902117340725139724757357008555312743219996751259582568063235880883884366203262266191414934740436498000247398332092411838667429609269460701418388178110714282439657796388439864782313715424989472583041145149526872423618996763058816820846327437441210390552765218710735564525713360114558045585684558650432859917676519619327114349866540777451450047307271171479571222757201812886446440777517460328242317338533765298981044232240467724632047951798097157602580088576897513405948054826877288477629384645496040270370508539419092769937066804551719416040376351180185513657545109524703460226002074174282384948178225490636599208474903758320574467795910675566064077500934712981700581876940802799269046059498721176341519148822518670439557310017937100046657292180372848797971569227888839704198254565706428908985827958625659901375968750078569853420944399597152366767355991155709006141301885395600693305082611578831597901882912877765396964067539208084858229047556190518637549059417647208090848523929966365377746870985680142361370763704674236180292186795924769777652926292904179839275053432943384476533398501228283627985150263745427966717714841975733906572871543054321575235449320534653754238204844850884634590853386677292538520444984413136863751894117684862613603681937363513393254080685226921474307329134467625293226408453308449386471515618139413634350364817794755097633925598827869036963238633034257944529229237752032874489020040532668139354752855017464531717214599508145561364692526650227115337381817597855795041988075485811336289154900903908060775415757361373755988018757307536248737001291223826113438103923437231353689889153374949378632498494176428141704528408296939917243232867725641504837657731144933521553852300178110827616363037090205259503779092534110470570046565251977925679331410886632640592623178893126031528575871642421190333798725775874290129037593626972723431489357257241883794186276864566775868692027601439805016387143520477673880900578928363381779738845734410014996643323582225792535171105948560789182401521998285226946509587631492471279520164467647402704689545435103069826179991402234072854891546806842095743207506621154487626644675798636443880232586360886918759442271521429650664161384963815027972173071265920578266002784718140034209265693070309044570245964675764901852781393148131509203641049845969060225314474822945707025270436304061114455142227669366501254252372074394018277525089414329152151705997454593125946821214351062276330331850433948895127672063729151249368193570319104693572905276288768782500485054800597323075326522779255241991315961791152206941968547918734156699781096702562993993208164507174173490564339865219986639055709352119852439067986150214486239284387398201876022854712303949459661572587509650320071247665759381372124801134153550616754720369579105597461067112541711745369543014719141993731972279716902116135726252431164722893666441426212438549813623694963571282116036854416071082317751078012983042538141908922492085953646108213956481132053160737077720760559934981503424064077512331512158999246297497845474385785595227089267102479199199645043040166005621762962340149282181611520504643814051201017632797902693271222701259270816304579408695938850308858577776769880577120277461858372818585997017721116037109827393241471979376638648431600084157927253061164085015150016520300200142743376390418788622635274702258984849469077694747613276391052599405660382382371636943555470658174827307182474182726362724046239944028444473642458644475104690299765267497344356985708539057819159958599609675061283091019474886565075126139713632927641583491304208300950851100414074557443784927898576072610576974181963369679075518838322017344376439805368296268732851893953081597213840998753657746635493253113936255978954300091191426740753859254969015797341918371040169991790094567835962857322447147907320456964719786315490862841233325174812784828809848761022100974278347516462790553938519668895696510876062872957459088920170238672074010602453894151954739328142466223126892362650272056402643021776903189555520611271146314671703891577339006545286923272080811157875737499103532444669361653517522124688660805939738054689486755602588706871030811898922024217495293458219535300991561355360731590956734699069924874268001953821752462105349862701061321590757260240804300827868356293198384271052198354727511764233027995892687273053118355805687527612409197424447633568095687484441045467028352365141527656270080436309747745376780982087349803849825992488106702977549495352282995165465598506874283176285208571961393797828505779014996232139220462341524168238038894466242673730018965433764765036341251828509512088864856294714398779566559280749164896256218592671541469217676839605450082164216260561064231444357982306919657804705747148460072968182372287977560496089158178686729363237902415792047283646970210313975180097841598550007055364938753212574961674875872583259925957615074339186228437988301346044540880817809685491194541193470268965059919860410997653211196581062966550051161836517062029288087760914984616731644268641970892306484630567545738872024760165257760852937721093358445387107402729259191524626762353817978693064215340131633701135735635111098141821129662210736726269615672674830775248874448416766573702400485083937025583859101226694835806839154547916601645691486305239359779324467255886717416048550387114903176075537321944728305822191558078807524536969327446017473605242058646968697577061218677619720587491045165142715495423853920232526975123495465463090613294600566507283098728033873735155375223563183570253700649409263808031737463485403611466000484687624231089472379165007451797052486284672766337551730368736838564403704980661790920083171078821049818331552614850537354075035108223939247445630109692042278844737169688950911185736926890336659718522537770329622016708106551812675800940852515068477579219138932138092869611953122090503801810765874883683178827814252786261879667606821977039093260067296151275571252786437069898354444096139173790354548518040397333137480523587910955583040481534804539187854038243236907304310274062641777762657301034703384021129669084818046162496487394734584412155302581522214994582224994194195472564103175021144228086523028022134240931939327276781959906081125986239673394589896190716797777802595116314775762640285882625148158216439944135061960811758904619511585390826133549603880323713522245169681180597512189590028591797390866524495280407827130270045377437267855532504850397463757394646098408565893018482234161498658315034660821862236058019481145549035154742662660612950268784097547798140726823956931472487609828034508118938340409615343148630112486764653154787584549465222275318773560890835043837081120882441759938586466309397048117253004020305813409044745051156377054103501416686191248525269493348297851018111472329874045396127540222219095844050872306623268888497042234567000119497518597964940991489713853622794588740760990432854228127730581830402494510870633698694686740089481097539710090849476830410711529550638887652490545659994260773886347394552511448972036104793757254472396602354774812749416069835101314764023641949146105980556375704465155667123652568282701574452847602207817539723371640969862649205576687615644577446446649254773467297255570538828590789231759706768639824966294555601938731527103627201242931201764252246448031819544683337639946131383614457041608883422253715587835807016115602717754142472333152781356694009898004445823899842006407489589238923892752289147329455312404247755208380523795101239384358587754549990012720682866599985790984293038460073296238426290797218233372747669464015269204881430422739438838386988072365034008809524512726001361525704157749789546427459286696216415427519072078965765676204708762910259298887712834058061317182068879509627355230802280366588530930270461940061446449186278566424494208162102038327611169622442138639731157130118991853169915158165025834281284874149275360507355014927516496556894986881445782807241540090116176936589862811374592790322578489093397688160867085700299534572157942098099722053214575142715411220939886987456280116533207925455196985191038428157268351201092367995242906867995456830838859301366721852113536417244228370492060364815444971779988618739061970126506684370640425124459951909006226082179845415139874086156189246593084402747014710167254716016686017397691997662011119989301553540628177813282386798739883185480936514175269040502739923269532293931036045698425205947108776022321016774679279356253076833772206929809952133275493410764068293696256538097982992215020076190656713323330719175311095376967431445827047452191856565617305618532166042594645538561688375993453276738278878122231537281113417355451707355320827604407745254423078545374811259665463557459604327036854215738696224447960925936750083098914000685383635881778748642710688257878740799283418251977140842230489497915517987678274684754084928993864763498391753924459329312913808073876500505220066666272734384454049896801183432553499976250119217678755809806723324167826178257089116301798088195583791075401180509621601093080422570180549297646784115387691430708824753121723137940372365928771043455446962665999926233933298641137100126804081160276969402287136507298106445252016551733860468650406212924578927147227426763861426823676408516411947662651437101393855680642700778296596804860775179492212156291738671635464988985383575153249743158354139913221365051551384109030902755433236441202253007704282111471419181475709618331378229434207254341031555828186693283866836607269163836967793201021420290468133704915343805924654711497083540122724100650394974216418866922744736899506252894502777189894691329634675858792642352116335464746864260548561315778403611431490269544275056480384788879432956556048443391840602027045146827824231514065070221048519592072312004933717673835237093088565264344841946773453824132968854306302477825543502819595717543326873583172827933774101026347172525800055108998087920427447783853642749720654309224796057214003306615979398156970613660983964055202876699917225472402063960609642994542705915460007353673154988077390830015813351603573011111410928015412280666670587855509270333850098311567628516164924255092928303908770988934946072349028658560205422067037156804635003826052763710823986597931848309367641656360790706605233434111377931216120205880951461437739476835388395047212945283498654808648378850194676769456232670199871331845545348373608451276718005678754235887195105895652797804537834484650468146951677538136951845103083239037496571621433079638601544816144955239351112121894430238269540578601164673736647956520658725081592753057131343835699200489996180432549502052195550206179277993056424583665872167535192817503344992391833256236162650208149035578612440518344040381599135827173843373404529744999640599186566641535612424308001626179337509214296580882832219570578431716979462845513309683824600036989961805929879506603760712432725597536508820386360958809040038001760475078669744332587723215438325998399864395011449541507700972822653695839438085091284110416290966370127424988176163441016674234005068361676482327103889422394820253086967222925243407506026512988576358781375008510056886874328274718732324289847733542581504162589550238544890684967676489282970728115843511676077617260489135585109814789508429849836055936593710532020599790443697353401662876453206371886938218978015732190762998103612568387648387269853601294481607317618658066805968373389411982650087326242669600240908832076226117839991574402105842789845063036014199339283624554027683509989720421859620902016210156519223584211948820209123783927557185605541656205455347196978661235058348962821286082084034973119988107725904545863376610850509582385030751284259642859749471596754259240349558609796434019664667217572372370707851846466383706717029954169832988691247281876802738125496293898760722340846570950989432016548760479339467946851343732630392230933179068730316994180074048000687251365978579585994780199496523427286889887178135161715505778391587138640405789565918232137081400587138088365230471671271822006018608811257260339862403542067521276908921081552260329300444101890637236591957119530302882485868478256488300525181260810354213518122471584004627510592444870583709540835318975215236103420408450764137674234730058822034323160474633043506281423210829487240902594764411891032233740497947408578277622048261821951428217981124372676625846895195106998673740227323002602615059706421527460232699949700615823592828222978328684019972903653781681600288411730673324496628384032435365041397536205509105219749095799860595726941384024267555967486377429308583140664803184453153290815321549434582880442937355680052766701800094788733588609136494945838526892791365594342881741864555941029617929958126080970645474650902342618403450108124033539000610734694120978386716277216137083614515110500772011704214057510295511491370255453350206814116524476917845869435403411879135071947286833389662476101183017004972618956118398981605390920089117277245282732995868083801073781314001876067250126926454645097673374700236767820135235673242624788804823436290099963301097657305710745086213218779682807434398964835524271448757305830321802494521092319912041786298321106456189823450495054397161803039568512653801492251694878479554724186382786275823278212993978207428675547109249821824468614795808140835500466875596261579061717590219271869723784547241129855757317937479535182955842991336928140588480421571538074685311302335494627214184400563239744587537727518071466016570650353750000780005476100367863699111323985862132218224624643435010363223985967017289928425234113154343262930390735953429144139338742821872148418613127907162685826684720595466403565113327927292836704215333378156489787872434723165771081189058811592205341344776752129774635506551109801811454708921701244106349239492424226738349439407865465836386859700260199154168385586155789670127220023220031686195419702892475742166676680152480824022111156190982909528829342278406490395339672008649956965447075211846134340977857777364263165869169876274954188683133247514531590023354409517149140813592731911461920067757921585633107612547070933961164415088007272939456368492532718589155168814720960114154056640038921028118648545950411900558007928394716199676003018770007299166134878103899189799277933082603333383340579193386012599266354350647100912606346252385743463526847492979065780017287665968256219468541077987421844550471048251138993654279944593202443898985134425672669327861329504851702042670416810423988787766282835019312545495101087037669638120603127617996218893187778305204501948120474270520457321254873390393028668085392898551453951830701677372533915679276903907336248590343351476117870517797664710107502450768161655725395482009480911058631732989175311841603640219503463573219594755860083208292675123788495516672506492207206097412031293135743537452185545498302580415651798622780164689374817239713381123695363735811057393910536917973929343197751880325243525860808275537409997210154008004697992794342234544768970758031314906549976457271996996280332692090891558381760321398926448802376910082742090668080043739925045412236849719409774670467316737887852049416564473707132543728313954096231813376473848894121827756876058275472115348406411192866091980614228229552490758852587114072134140163523811998912747789131397574682809342472823110218984300702443999642906444508447880276686539463578359786330143574307385522480118057855163003059480351702305291761937668044897455190062298141740225468793859809142285837449414294668405678447862996873037366863397510139100798455883197189398404205851783126255609907516425666609144857660683679374480652972403709933396292834348332661041368713447259629441715366168325692987460751934900436754871245012517388228959426432206171837705951665664903889623415903428365924676238921543162109473965009869257089507504114157819718945799485168292399767685260590940847692555560320947301798892618229473834688688478774214747821124629005048761624209757229517860733959886964186053995691274261105379964864827288214729865447937270511431036415399504302492489038987190473804812173705725663713465147154131222056319569952971074484542325785409319607037480624328873057403741431323821583556267142756875575513618201917633010862837972585511567417230504719060873616277083262964429580482797563630823764361615455540616980045819644670667810243347845988069248477274895298262045169437003711201912953531129197138017595577974532179706899810786979967116140647258355731385280378144794618645821634745203985589751231713640797468385145592041450052177212291446699278647652010036539788997094195677954229000414384548714348852855651763080299251676444247682186490621512191723425686851600605859780896623668832012839653122703074654818211999482253881430040168114450362116720244462048282967776160165637897576349795548725510809105781339420347277448474876989841921828085630416492602991762303626322504418296296521543856287607037421868140047386309450159109132542103032561351107575582873478656260809325645074346337233422408558581633853715306945878269202052395067272475369001398011496431659458297164868632204841795219642449832794880631346462010891393287053134556150378876921145927268505146771355995890632238650764778282690168036013061708569828863363533982166411661335548040370382100344583808150558303401797120822493909503856609585571395374634762832404217519342656686392559177433783255482070386105633012623762876981734728224250946153189070215082050421810397748940765721499083247852854595100246795973930841106272522541569649389236827358143460772759803346264312598278889441818491738026870449603886707186477083156478758911780354308201318656582034354073422928347455769651498683915039761412613360789480997559164824906255168553679482474050984649608568188917203699873757964398001165295270277237226019357555720232631014768692847626362851893048492690926409854724936481814128316893832831257956621359883554452066740895840923148625755911051962200050308020425737002899660124136355648802803399956946560958857632199260300046853975598028765558317107063997506660476148677763563226116127152242671096736184025291082552446153885776660277960808983028370687781398492381254517178987577906769165132460310875518147960012167620168554361388753511114464644596594898628685003842938167759796191272999045913439604283622782145743849108066267372039815968331145831327755737193964762139470369487134483796533672088650760949443106748938628101668608093548762040629531426836790162232434421625009619198865282501847807500930929896168789351440485278448521019497293149122933664283836109583591179266973210503286586371961913064985733208661524319891775175613307253369060628944014036246735791686124190767973072153896099260914778003921829096605678051574245394812705158278656086176628088767548528264353457929751091037432431480490509972013400938712099679922667327456972199757397498352955663444532434557032626027829313689388962967691490051117916415739641516223459624143879984997239721062591045242665562829601459679012861764153524786433047855814962571113956032515036318374506194258790732974799065403378129323435496477095994159702169181036814733833330641513877132215173398409381746568333237521245212042635149480179573706485748255881296241114146469266177478173860156155696776808063542808133926222268057358604395739162738771435084847701866265316974888647386824309419601892875891202138727709615384880950656532073442058984978568214481099344327143794129234072975479326476182962040361443641127465240436917542835856614059594332610091323144864164204976494795520171710865170698122416084821707217101649482479807749180166663180760457163952518386095827183272086570529825589266492312740506731234877203497799829560941063603051658168190384801114703042390182045758372731652085922539947510938900121122194266654459086779269137115495078966657667654609628827777519957055450729792366620852350781689434003204754374040076217990918813510949939669431342798599215806292704213826756214353405924672023502064258541096859551282959888016794748534882762322608988214260279669494883399735380911531026157275260615166467574723112673113045630210164427562827821914879246698975320978326529216825843304790854783365426975843307795571952000101207872401988134949844384367638270411742100369511690111801683269994661201008605320941579019288976139784035165111599346420444148276820545506341848306161979946027048964895243897025843417177319031533093214798054202089619512507592936490162781474077322477257322019135045680559997856927754305465787984285946840858678413411453824124072065675598264826257619030338341742518485385403847037100690876508085350864021762101015672829143567367711035116439783634404283023478073545669143817704745089458721178783915416653092472697951952686392823300371685067876207877548178391081973218290478799329139607887417683308186531819994065979267822132271345963247140952946307619739674998463493636097580672536615518078598145349535821601480260233176252015063663993913514287751153532124112251505706572311520853765028432210158406189825700470439171864907241208917145612024917300437993499942065866379857873460604806192281194643315629256867108796971234962364061937388112180207379159818010975908011327225784300250111378803495792043918992883005162429217600337641079337196813319206758299182607848524757117752420168349348194140053916463935218273710489150036580479259761583436513553494384319150921462930819950183591670942530265403298032496761584396347114353247143703922148617843828261138668855215984613445058033026369143941743559917537871666881400452968934351987652723008458465501565659895211301104852881693941568670635178319221855955305000298648325444774777199550165082658896713964088988056795806691606580609404851392801022276976156138260831907603324548465286614649429483966773300807073200675104262514142962447145368750970687850660059394026518778610327654702806325729906196897591887386672305110123794932925976495748262551959273944717640092556185211857724430888945893130457097527258670714556514236034181989031519545721886211491710345305965784508261868074364977358317577008647587996432274454895007809667119616215136769508530892336123866628348110293980460743553427272442810490328075676700337727112094912843448745081356882215603305043883517541081483037534434208412208168360581326234576775427931619860454305044485105558004116794337671320558147058727208825360473106496793184796373527884478852058731828660065633493256023590888983537772507970200505414402105594610720764924409136337227897399466397512341178836631250900614162322765702854104850679744981271814676430841410300237525653730495276727548454599978716332533105061902402151814681001465126285103975983941288236986211318315247764967957774419133239479855287165302319986980239839847319817881713331034433989083795800005131965345233833901090970444714347942650262857403151815203546507282311838519865802936213522437975431938019834329143125027577667543168698886028656770135003725896964458686834176473878390665444218192358577310787002319174454287141600302682837240494643603478769035733261881143101081321885527985897303450534403303722769151404531823618783217199889890550829089662419765855980578341428737306480985290782145941126494992196511361256777307699460580206407239180866900201756956417595527211359337589791160475982315587253564456825714374658566889820373705497045290715846973763555870609280120176978053293579678380795022792200105201676898873254108389319250907174288810810708623207551018480041769696826290392399839381162366384787130819320185559267865898070985022953739494217542469625354704395473241339247648521037611777311231385001618713047106477839324875850063619911967787753268071392468984403882659360510854652369222619272403499121038316226297241144083556868049980746048371359252075390170144693739164092864863919053757393294556536775435632948953085479197356181168943469443443643030871444254910609829482881581159563562993377947392209785110406721664480320531067091303759488434578734398473707653747404793080903438244339705830532695856299847938304808177975089019323978819644747281348548648563997367907690393025212859195095945330313797518529818662620117612609532139263391827182563275830591189372106915776438388722784228529009122612514080523150812027262477370667161537297962365171711830918171522805265375933737558128234864296932266784713386959887691580950811504993633735690590084289200705482525461768954164710778011758607143286624044830552364259377579855244869608072673059076502488514081476189179998962929079540606916509862750703309100886611993183653478110689500553232123231040994315669757128432110589272907562665298306834612688174350276344573487313081278785396682594804502445089945385062622281565720665625908071060090719474158064342896173131515706055811399896076568427723954812062465492792246644108673930170526784065224750410536043235086881525438218840578152295198789560649956069827453289227327038537584520927092429466734689593377789658067695128590449057399130794876253979899894685344867084276328476440980465348855120943606428893738371053515595879507510368199958600924794052205154880777749983061313790264128273715757106128173624978364745020722775619521267432735816854961196988825831126166950522240218811466930625749538470869958657459988789278684738719864383790480463746222816126871276345113094783166175997075950853325746028493740010436450345565804494429503453183381290785088833385837869771084982066510206279570766983344517793452718037691141020755747743154293290326295321149788262035159874125464228843952777954992895647543471058985851590055084900569690369399463805412744078272079588120610950182666750528291004286440115969091560260245872117456045510940768469797368274814597904045521904841801154566347833534380881534140372398178819077576306472338368480766171878875254440731865830501186475632030171398339007898754244110262777492594557872631516087487025048062038162606284156754299711008457236079436838831775697116071774760197736299860847092256124190334430386806075160778365027891666283609317675969553014936812797935466652393898654922082126132776378982029467995816243987059362391705117507050493924429371228752072100479003695203530541747026881003131427531174456246407354520013033515441611612845306363822062031827141203471057333057060956104199977441294378972333619529368071162946497417467460616194428419577150642124491154067073122138420641412696715456643891594717779694935195834684336783221413037431073429174373437635441590737738077683355454522041607558324500141271289974101494705488647243415899129609228298624074551605891496310210005958713471920979723983683128011017526431868611183517017358675406492657915137405821629724201883751029772027692280780173235365852486610373552463605197417587182349087381977451996041351604688086082725590610482822257576746358191662903439070547597034809044004304333317413461423454127456779872589232409091510873059202427900149673701513477215142571480238781897278909931923211885180400304976289387311988687633977056903190741451762975055829507905515712897726034354672225187519472277750347806298881580276408830585887321140899356256544526325626293042854399332825503295028936990777054902947079622008390293221444112657382089568543447852253558437312693375479376599430699100569908215603145081988649438948867959773652023776380526949555871454270658517474445964682352694105685193373700491448623760659795743742949313762849542374769629842362040406990322328625482822335420165228291288443421575127060202153831784521856484115066939436436446339032946286921500120033173722315945993702440466546440107095463778627366769045642599775860341423376275925853631264370897307579552699685031320690918306791326542030640031482455986239265759757317759128625308946541251662284071633701497902673843253016190101372978864695403425694557263052203876294232648064996238163085500312651680544788556819973108967957554426839220485130919026882403377120177863986046398002560372060692953460153673513009351664904759969041534844228406494643578396273959796970119995996897055007139802671431539123914611613581834068087605346672553050422397928096566221091111847789650335190031281930814047064787403671555521140340703039890722323391594235126529717112144915912874696964544557092280434733841013858874280507251493201836765498654426190687675030397956939024213437475259202844493707032198240950852874392941278159586475430366953365464650438122955385696018708146303600068102231935356775884221706627177875228953937497394498460688195899260579042663242818188329768257087830890164354054641753677975214014916981613499304491042042741729907318379698513124559586063991996596689961080050494007296397098959517574634950113152395405436384247715767305796899780935112310127000606831560134705616884208186210590658438546853522653099408095506864518196431045500569852864036972272644964072209107280506565175900536331942571882619016852091109444623049387276226013009665098018150216116189314991755448664845101939640892424535185862966853588072370252086290396375135442408416767961062540774535439718720220389829258815048817462632144019324591263846776453878214900321873605288401615814676934097243424966959679745512952152475413003838241759677554225154868903498467584610663159419881211797133452509275307014085614263503015271473708797902296635683001787990288084193893922491884489117670080380387588878016977011134533491153480210658508757002551736325688200975955274871225357182551697875315095569086898546483794843035187061492313573402963136527912761526230610431409239565352297493261018023574144940020107575292488958929324580351889348336232266211070472227951789643113533222151331112813026996570565423666607124273606758337678351910125109944370304629076346614964495599673032125852284006812886320601384391535239320911579060473413936297323492759180894233656526093948313364810290643586311830825965878597847150234490787476787995667424852051040103999757103940220630691734742020896991756005288898736759396629367401720982195418337128233932862477317196438625665314551269922236776677708198643496799841526045194640459016395789604927913929104349027568381726840470522981408906713149152625044175452710112357868012989368284933913963833660781422917945543449168097066491318845378120257962155232128839888294830960254154515830155645623132845031741857697997991078955656799608252916553758612233838070069219579639419837426117676769100507357501471041273917783596347944115924160740964918923864162314431509843379999957412386084556879065017966046590401190093106491459764550874416917093615978054671746589930170413753904682544419849306977396303361433004032263704413884245648531960009102403591486043419567188919858561565546577508901443177712861645686219001284594607421607429571045831400462012463901102101932368874623187463906390518460908247466122225868317169890636064025404893508750600193538323584777977777184156692711224004455167705419310730388369438797889046242175900466660910401636227006450671672563298135619169577585613333903982775996522509904038709327898622159549437997063064807096494177080058122705593309162118440046358937856324358641910615400682047879016214044578771739810295260717300099121797113754243334882266618671805934535003597940626101694558948798528738239461925927383005865786236901271929638265926393781959687776344919278138391527346851031712835011677541289696340176336880334761324250065479448355160024231256646080107867025860376099390800451756260090655554130984042735743005006687743313528206170729903389370532225467004205889640465239361428307918540416966678324070955958770942320094156109555343344349138543884086108248624289859619741256571704240067876712368593537227109156704060621943472602040994139547201317552449158345944274919192913502355834404187206974345886053833701858976572062254668638991474061713844091114054244489241812528058737844437599033702714432320785204641931475594758314291941697190629769790449882130801925875904858757010280498900927646674318174193127387987919086670564601741410451836547363921120183127264213529907507531674186041139085079174044172658009288966400350856182993724721368434131495692957040198130016060875412795746641903179733259392402107416767024235351742211828571516183297681422260730902963694871330880778555666323972833422527065650730725189030903950229751455450814134444281654143644104921750622706436286101757171120483665814970582463578007550456264537446280525932841567885798506901058045279756262857220830478354366813133031723323813526470752577952330152891663952865431899957317457801678267281460222640381899566937994842421098248974200882331114001341044095160930831309054655031595551547397748022146240676110527161375799862835439696657835524567007936049751876795850043478594444834874734552599963239258820104452878957672333911085208137994842347153189526128187510890512135465496924606655767345185717740511398090050749322800709405692065544287992897680913853288239231274264963790719799785249090304609585020328130118819189798753861277050983112679686721178100609428860334160740802044853244141445794547210546989291664998194159975081170839975855253125347930707237719482373833676065541850211333735753571160498408863069626498901511556298277922304333498449367839151985626850432520084479855462969126299788313029363064633704503315526375204047392241570728577799880296353289006984007678189697563540217661942944247537256498457226550678735909340572389793781914608031982711392480497941100492298143175949919931032808979574725337681460617454331326448924803701346264266926317342443574270517747565067556341333600591783137637375920389020426517169186542244841360946598636267754333221729097280677212181229450177664232716733109192752337724245059080858927565564344115484438889532132702856054060064352403401177439426383149269420366767731249233446046152792228711747373206820737950407753807024875139736974872208079418362724579267158605875684373825696601528845015936360579976487955466689796317276414458267140983930260584443731183219527357824299238053046097925321759529437646696717859956554797526010481116090019255987703160369289053546421969361790098547207855125725975325768780341842823941930116764712780200132449054170687194060874864250992490041243777990256723623875213448754686801805700267716590457174167509358537466327846614717022291277538164893581403754204131631796620462601683005835840278084250847061028563214676349216441559656539951244111527225209885576318078808628374443953733638662891394399045918693562979931691320743108491238782696708173798380276007328352371305703835388120192178074557053921312504821976693406394280234533509698054521919641649696642051922322293325224980990680943829860823933868677395445267363219444015986590406652867020651004940978671302450896050636311474978975431863273763793202279530010877176844026182180038590906077029345978640932969511233853261494565585967711754424619462086741789881434778027023789183865475073672507012316459542104230368253015499272923049706500688744552908893664655148193848056374554470319717186422720965870630049834366571830309458525285629892546132607901723746233601382089476404721767102107836353063283918528942630970835241842688066639724543519498745949527236882351106475938370531361494523326299006061354420207900800784435918514238109540624635928800749174723260142829150664735646949149075313040411948746127584251725422993376561913228344136159688451230509792290809347780610001202430793367546069567188678475890291671628151047910984819968795053757476103438392892981834755913533728342888492285393965950164594229684902163576984603656667706884979061493789586623897851395030195525207115947916243038057133910441235127977174258949971813208993972409457630504381765420237749372929236666408582635630470188942847136621796280779475814106472039686900573358837832383938515643676929109532126309530237234188776377595132558571988684156351143465444921346183625820017739111963565973620917480289510711911931216161504935661400198915406771914740604502008489007852104489840715587249131814241237453147390958592854919261955127528154045555489486053043951830551638652963511435855426789578843322470303223984629694037003638667059755189622821668494721551679940102372605276192061750456049663717076263845953005334443878994432854366301464142075150267652998714841483859242046843515052858926483541295999641906383622255006162029851790807999551716142892743322162806963512162902965050345455980024292038066113122499875748777814543334957813655800830045879054556552375964308994728294156584689806294311272597554693021887912731035300216864227633661031890511086335963986070974737419552934178507801365337868776791151473833252513002371910235875886798039385529704998321830389985333735331510345804434025730422758682609723983422315017640803327317622631967565989772971839422971652277619673408573444137475914779317933398924359940581396032281346592478558756550575159428611613176739552834815080851852071547951439266728751057441386769718902087776119592459359290863839696200576865099629303818145491280734180972040320363366766499443919936264145227145073503705907609385752440000947482297136237721592630836022139158855909461407406976301297086569690667624421861836355204727903533175309360779778798470802390218595874487896074523749056283747418931026806280481743381300198221277706092184700815252327145986723437854310497839043649305860764535756025983828162540984963998318112971881438639542654408280086193057291799568887988182572440923086077708626351313609463097677409970284727668296668542908454052022919003034322471898204993824806075163872794566894084973666516228133694882858339531350502170536111817502101016960937372882174683892618068718872117122032067336498312812545726927631056482587901068575208080633928751364817583758109695596993384841991062692241136561171129547967778123862393493414008547053784583782851512327987308840937357211004586036545449453018681073293761108679782828034366133339780538614863594371635008771193119559848021828992677797694091393084926892397161087516259813646427951911630339179612919001760953221655734911037471209457900418602899221551175915683036249471608650518632279742956136519830351897142876022375071605999046852270284824202570096299382791478180154066416917925969650230616749677247841947414200924297729713888325116655222730338964447305270490241477275647154092376806641652822611221660551903510495321695382999570174114651029984898251643905699093945986820498552583128764456838984342109365894310511407555838492789369974095013891988212479916209888392435587365554523753623890641072663136573386887150143766765743928298320734613140394952617095308448965800565584630952329631871245183661663042774985273620234906785915576936220534724261112532638914302528937667373926286064609916642583999874647434141639526777322469333134089892282135236716095628251349234859268040735518153607196567395027069135357634343767443117249084553776703266698841449114808884801324930258438177011878566635729353987811406465883694172838736570843375751044799123597365972434455742718384733620516409860393102195921211225720343651001396389064945296714205608908617698288316388283825229707658189611895457298258107339454017277497834540687764110778004407429296639807958026689312946890891500618618418921853041643322169492782133921182771902167520208059672627494630028053887779459621856830743842989256463024089063366760647389704968736267734714319346437826952783760286146583892789336232361603686965888599440717090143857650085623703570747288123004277647474703779463200055437274736584724026183902508185020399413109503970812481221077612832459563995640730378422829494179041799135365337060929535804128449019567717436326558733430284401481499075465103281813878210907214339837454150957218087233216393141184885404882476133156499354030311313197143885666833802176668360829503236040595136775927155165679680295859733803613440693078137573011613002657970242655917863431943626466230186872587963057556366078289969536349814522388660073014771879198641606614390805777255192448707082910976735549911200612317536184781317654395572950385452923653669413348562178789261547404561504523088531184389783350748069944802081583047802929139502742186788691980176555468181445443074191102292721931864440749790317259939771362180997111761468900013772407009234849963308320304297321967582789400084665235071155111834810320144835294744885188632413303960676395857662392727435386476553325926113916010589720694912160419438436276922502040836018348118271585534392555374582362825523726253314359699646366678255933821009175987444402718522512906425157453594796130527189599488847824353172256275413109599850442774753526388871189264977071705502201056823253071154389564758303122551162876396883514326272862981524075588799596209804394659688932951904490105741914199814985879000053348961206916311175468253485829007683953766264145205273936078651380572241506897185582776538952151358565897640730148811113373869245888909822760229733951244135075100387258948206647854453929055116049254655683017922363526377554626840904947800372684716102649508826206935748463164396897896270083376303743017561945738907884810424309285523631029835517451745446606529767081994743205995165291596008715652115461296735413957327751678443484864598339137584856250554601750792209883587719338601394896751483376380213903415290428362645376374580878281537904708544575967614210377236123296196402292022895146968811447058289309803570015041036948417054728692275197044694697292034951969766217664143620321098749717299081440003715739281891528408319742294373367747782587092187172252984069305556935225836786253877699037108329877979505169169629957607026624877256111532102452287179703093738005633540592931089018740049575133056457554686458819253443722717048411076045834505257242917684423561001394566824566042880004740729261916575440953365000544583331333348665819727492760012423238225171846893069408572324615542392813887422027661693797935663441045037115598236757714312491279623141150164528880440942390051734645637803629395327787801636044104275918642025167711823591081249478448954880725855125745496079956918012971317205403842490960873636213513109752862098622426241874243578376772912641791880137675200320563326189241018616513034810244006856808606110481129427409009375274857858586840922973157793668860861996442907361574905330345107467921392139357341469378267840533131992354433034607195155205700661001169301061146455648916805009145005561378494045436931348591061841933018954548638521986008082004028633222685779286594749900693607510578023474201503531773730083649498916728935090935421209752074727250436661880061334959093061140711046459924475971754240199654073065408416973523925041563550039026440029227515519108629413672360002694120712781130876365316152244335162266919012310171362950133169807700976703122592334099542352764898442089109243902756481617004072173927256602429583715571067168541418713003571310230544725937706454206437302838147841910218688218466567138326128263780697530988608290663303966984683962467476885114506491315186155246294792481115987311090797711529805880920928581622770652756777195393112035731943345934347337295189941572147227619036780043087959047999266424281962016300988837148845043980122446245560266040861613319972328497876159317126814004045056189668690984708239413708551813261996376889702124152313781873313001560112199565703541410653535638452439655642672721743450531708970862034765475867412814640719792280574469540684927959945904582090187317658661625178733129693572624876301827480530656002946241810151431318690240874938411242158215083730741283373100322266839576907350698817682754848177304995391310318465327838386562671747600180627887580492540088784039279856464964515527892734502001541003131905096271080962889523768982872651391408194511671959166631818853373127982279478096384186330812324934368273270884716848408230651068049840198996614184868219292371243226293284424830236101798391004269904077447991908376102111123960672507192997931365177067316450479862322551979702992566531510159660459669015088706888298252728640598951425047655646438613971390930202571945855825271392719811327758886955446292060520268767522136796682746877587452876077863449138269956348008254414413182534720494801421265432982967846686054377906133891020607653897467837990904198226428291713569800434724666969930157511495371520437403191810795486894324062290945862326245220966757449528566016465787368842465402656045769732900129583787420171151005742659749253328682586625702458378115218220127757607872278753625441767851681849197994949764910003693490955081945020556381122496479676624965078580232712368944622866979631971539024990109911767205329659201024327415836646285103519400541457190714863882469446903822456883885007824410392501635971537484905694524560531254037917603310165347750019986495805835536614207169974117331055254042055211077318581045894610462735580709471466835287835222442439519510959648019339972822544123729119753352333978820050032094830778066283364606324667100180087066628897715761318039445308517785997967916175623642457991318747995295187367560206724336078627831644655047133342557745622032970583706520846148146180327955657231128913791506107878236724170631574279086027582680483282048253059594486535530533557360894366837877887790883577331658156656404633363117896557755386745135965474379288244327761776652997753788443212262675878961266383306843849005800577613730946043245733141597876165553722630161642335345100237463536829894247824255806480766433618052377415631403789337126999008115460840814240586928446408742389124577519366466994637359158441193177950085848065280520451386178972329910964611770976297169880547414864040358883927950040568096688268252678332587535835160050579458531484837770296761832636064913660564711850804916359111816805735686256767574836279625954231444084268694441780846545900109830083247012732767325186296528101198756674251237185471917419644610996381436922527648768652429643328488026710488044888015591064476982918336443256383798347892249924247347347492558557293151861103453413733567227462578276718755128522961571935018632517217599994227794412512769491665964117645331130767839435875570151126833978807782308932767292196739065650167909884959899971836201837724669791646815888400401508326413390170244028639070088310664906834976762880088097131577264334164705251536471773066139272240563257100139729989909559374773055963634856006159849612535183107450428280599101135615276461371873230740548644387095103762391293174413926799644747323618213633118585804069936583777606558414953328326602877854696894300229268531019343019873705871735821809800669389125076625708474659506289918468346949911962050562881006235243400502407512125659762183568345522576684049165251570758414614413289520970093068729022716370563859061059216969457351312296992925835675318834452109537570173563261816644245918307191732592805373518481830987229456262172540444189864039750384513606111006210718088689290538855653803212319776645007978808922913907197183215533766071468815888614665937080218118486409491244157801586964737239095958580311735493963934232398121883858322269062273043691547964773290362031023158462282118660828589608169094090006189644213461734468252143386306086410764913030963038606156122694775672705661641983226612829559405418526700993894418145266998151219653967190513843135365503213138068242451734889475925031241924841752557403818235113902616355370936864688471015259866820062966604332671588470284672528273675136369158934985721514957696957393793129333387868587015586438472121908813119471337087338232750005623992374477172103479216899958700150469805895623651885426829398566671272305833174739467989387917984475726396699725651509335049449623932989411838095115220273859361991620893155937352131938012702984818829682456924664015891024522408334073529472376766018719083566257343946835470483622445461993712921994552160770522653798347510666769463255511566494911680705230528173086908826823801294125418146730584593435812734334074634710981016973378451137000361466614777973756676762211878253942360370654923722566475192700250824888860406223409811545113334223901773684113599153372373184676634050715689668193810358548079907399613453888826857567243504591899740069104470411162878652679201061613247199984482371523349978363752301431351328269553952901086494205818604396159053058259754001573475299749827230953870577210005396418869704874528973591568792707994416581049442687939022278200261738842463895922113926387495411419594330027084671423706812813778229848743892258019606732295576646222560726500832043734636892069742573101488777832814597005506211252970943955134820697067809204578900900556359931930300746710425701791847467995201645098538151015396961735455277804306267757948771097991362593662234937064837059816841914409008692838417581369607702626526373984217927518655855340018024947388424795076359369625165815980054901107970726953244886137434993884408366146859209020138746292972909384539568930915524703254564948483425584353927500268398089195124385714727889228818004727979105941649371664175676509443374654097289014406328130189143863392806334434942400260228810471699972553393957076410706789505905241632902212917615707202813379630649859882322426710298264264548227932715480458764992124132126818276723090347559579303115848248948301417317193431046635619982934226608452419772743000894757519064436425070401157381317794809599533926915579884005478289536523956367416572964880463463057367371172158099902098944537332554066492445556570479772079145812304506188806693477316115492135285980811109640356420103206503138783298144430856387206579389407056232795868744608528406980628390128319940403175369817291011930274216487446018619632159446845380755709872212964758426105804371014414489107488133766721383545414247871366665387182071284847617070028023077139862001523285284674980517160094177008483060781630740674129158570458579809143541609290613494597096889257105679100556752900747504379946338211192119990091221539655631726332987359358386665001897021037681056553912581127425650365892142910191935677400796661271382307140818828418649325456700504789023579983462966520539034526722973679711222964757638427953370703079415632893117466348996286910518604722726888778758797953654811330971852577488362549950780896238311682394650511685470862613640217820445276226218509468771458466676588999479371028457027858288649455781921024708840980548840494289202758632513512032768369165509333757568774231103616106683832158080256433346454271722024956218060593586057783683982546182236449833541991908181754923962168710528049514224637589120113615979984380345538987436863794164300305130378895831279248454986839906586006407899335281278519409840167197297270699322133907184209551782475206802684636165397716512345743403044324661478177119961085537282430917112635195011915381033226170096078197922946035526018787669236212486362488512903544283973792325138955506401423913076654675381145244024706837652806414248720891345137963859994493516086771074601432747723851028474946663633461941723016077362976288977251283002580846877265301516820292508730013462199231565387199041060550741930363390184442397874423384998260696760570205353684564642727270348943923664845900245979494739486041667113357170281209226805278156883353132643317590299465385748521847109720477182480567215619231319966276378282067062797786438225580872740355388755763722582999050673591541471494743726498397870576633115053342116121745340896541521554977462478886291183035260403687328220250708935308435234580815071956958892412605287571839649630550766286009111672617530072817388845881237359853726929926264266600217297690409322916645780080286157310501383405996052151802023374674932941095769139999676638521753746488507214642276836486091831973323639215924903900069678881210112974635837340525868785445702221462087368587279664145301762633541558879405907321222539467073782654675608107464960418043395795387211330646467992861229485713933856329761617850891155827661197902337999866357704749637968223993509579545082055051118930347793570244303528304428347024105904612246808113753997074287434351207241798271000829331913714192887714098986370546271136142170603160388771587341075626603462603469320575746363265306120596147410967864366328128489246217276990604400356483137270171843261107628690706296287678248337252181678495208701873888835266818806885615538210291793846881259759223871757568737766365217279182935988891248129048499965476445965554595153192301986734214396269052453374634498603717927205427968168892955587945755341314658812833102455747928050200866695716939577801534143906770746884443719972294731420962430984645053185396521906026711006056621714505652396167629158214100393073338929186256703337144724170924079448220819579349698115524925573254088088316481951994849251885979718179165071886497535369431957636602624261722924254800560595721748153559340925382832433344777942345089465946829548015616400884023550373234965498786621710766801062510274472340547773872282337063244223465713099833535636179045129664535920772793879392700954660146105091802732697555135713654909405170986914333834373538622395662531670508132212346736878144276185478830585005810785155567880769397324212208730661826200908305041506079878672078008638748314710467962218043947575563099086244244382809070751636039213609739671934940819820051893084634184185137758694213859700251923572103523597814756562837006498935806194277478376736716568604401242535394254608374734622249608298272472402187537341510443884271408930329039663170598527274357572249198043964068936908330704606903363403761135669272008017206016525870166209246565318321783590348318466849633623177354463039337934892379583823380148352466207076888417756468257271713619148355289440361157962468253470999577854148164846673573561133803192065822135496782962945837948992590906571508585899240368777247095602252060304105945472235734307619920200387034244022234909496718095119479811812317662161328126574188879267178040238578005598529232561568824676516359048340588004483845823024199841762420397502821442033237813646956129181609088070522692744785023579437156142854961033099970139477214606174500788247541700679178188133730735538786796010124219243417398732897632280986762293745343728998117259300822232462437598540018372660873832647120725544913064336449951001947825445255425611985444689633861923341088611902366362520061671773407268444876708707863399288518785748868906955952057560806553597236255486657680659973002696144997913863949137643343951178186561697245750119555271398766633102419936496159367342333676593518995108210508545586590240452439501495865709751688017729800819922259725289161528326432871330191207202622505599302105520059364272067206743658081959198389468624150753802751656622826042558448723696342315273704964736012472937470582351894637772876085862713952359990692232587035991070927536077178731275481509403512701381707948704002794636433688427716924012826404447538300216806055597399111532756743042507916896649365346106649030339264547982624507527529703551170293895493926050261167328050806361911350415038722553548052495030725922083212991676993938578960521919040226593296893201528053855848832676736575685837994286855431488484598780431993710784840893374197790800338636966596327000480075341073313028695828601359287661350885694130726895270622119444657090135000285078170081732969360699447808011650899774698383275335446223117890041424456125659236190671377822188309901262050387138637461107547138243333426066111911249960431197487300355784675385580931940536564143872408715930702800223362024034209266924841036541392460325281513910602580690086792469478464151377425304908113337485925659032521084378705836901803059338532970010969600087425044814184589259856965345569808272371276255400483792707641017020870006758524443257752645790361826803605262387899668756268684575871134948261702787264207740532779178396605930246805376125287836224216318147642047643334565869242915619461741479293032672745331987962759051058255643906412796059960516294105583577003536563242856713972433093599861784854409718181725544777914093209591840501649984386128073788718816754788756505663196319767304705864894624045949269766453285109198744337351215664488814513250978299799856828301830292718126587579974915259421426066384493476182366943613010007783474504544383940594638253164174696216796375403949152116008355340458730070341674476885386353724175911919125730296287576998669830602845055125425577813049196573537081097538898051449828195851720963288792497596687858557626872836385771428233523466567958926948548919544874241952228540275810132725725884846046549518516222527214858969727263289515266100741919597178328836594559768570577262847855954488372407579162883631484906477914553487265755850111942264869962439109009594842195050118285457021898741034571838981790486364649082967773150836776997335515074170081220258053885245195363983453187617781231829233845161492018946787202174802452815919012422558651698747259021550762497491226737659456330761660211943484032397991440702488173434330292725710928657389894240649561810909797654985118424771133900728809299016301869411421261170343722496674766825988818337774891530013580023146024260472055275799319899409643161144298528316114869897317486423082626493416316845278016222869452176524878906995560991510960158794169103884595635966852936125991245729283769357494996000637454051029331252353719421156501331547537362809071428157731851185927633100144847811577305157277411636321762995559710643742787164040829830710463054191559937148153916125547811264374389039745212073575767777507421150508298100857375238351838357539933202975989157824880504120705904644073227688483087435345122645470626940975444513697572570891505730232425735672721085168470673901113721018280580460322479166007383269145415931982924325433746486049633965342248172938325475111403759384377805581002679023593384798958654860787419414168840730434173496904240691742895829113388157394322771015619624776355190240217127468627824721979967626629009191769556438105385692640185914761669543194077693489655590603130341579094455197560296624875454879091117532699370937126380672256751463060740233445983148205780778552538169343648053568079452045386888722145805202281371652698201162506165729737974807500297233921909750122049474941700659392967296028738767195222550630864385036022864184376624009174719032833908399536747468613101093275450853701032488164563575489558603679918936112978761908356737312274823781827018531064263096134724871436054931890377026133291202074118570203965492336859086327290034787222376598941863189523397575264482623228467814741678394175878779284134112230198805548371919662085993112969783033886516758544622791340538447608394235553449033163300012475799652761685263194532930959627313146726192661819832194566480048912724042165730413638330422266489785155626456553219711447297326058213214861528010097276801510402989652020638606860045981614285237499912085209347292307977350301533905977647834289074748778151734815736268828728847309608641886645303294760075330935853802770492600732884329411952086482971131759375253443889588142555483851732952836011377915329011335759811747590808295590475065765845686049895198699305066250601709707832987606304681600952109729778751360186320545895578180059587571719117232350915787137515399125515052606959476059331576350909179773320833613680719455156407495330357188422563693171183439732516057365037747321453500563595638262474936382247058368475214260727919955251074551304244338336405493970033337134880029978594657544942765183034121119702102998733619911776479300476493264915219099177723625580527127257799284186221272202594729578364241569518389042618629319498502398088279018227708670870719353980183576382804721762702614902491846340252361295645126001797544961312208728483738833193857402018908281767850298505262156335275083393941014555472125637636854640790946476538165508050017967373743140990894748416914300650811821039900941917142905544287434869177808284127163283349333738760189805192382363730219765007029919984095395364081929393544844337867252570777295959613871007157921472183707580415005441349860049290749969893790348810208279250693005742360174677126398250444798794775513836887538882077572120635319586500300839106544714907549279711557218460901553945733251863898128582468776959800827417655549925565263787184749887063291494390803074172603675896802548718373999961968293266122412170677133971378809252017026230147178208006391621359820529738550555820959403332647089156195552235663806264125747913463825374925991288014312614436201171810061047225858418500286341562115688441856620282727660065536243416531861727054704601829523329536489605733307453064730077394581740556221801029658695455429623213626808519358450025873573058666519561744637181113447756361029316422929997712848473992479149975246975746167652401333988711899350291995072594035417767887842758631733862021231433122324549995210226464191705902063721563648704410426983363333138216958848319812093693683591904114931623478727636627592154568410702417405297925694298191498174063952714478690511842343371955926123191937579062117858090932058847948363057956121560105651820752164895293647504997836425968788047609259997018653611113136048448104343137267327149325176406779591282704180928409930214809574578663493779227121375537125494983646132191054790119508054816377823175531880540483447456823482955282130638303595464797553133860371316576407833408859359457376719674086252518097818178803698601166138834712999153771123834154528740489956469028260300688542763451896235735546181582222140719678668431026826557381151949371316182349253043654779188727730395772916676035989068298497927532644579302056250041982158178336797583245820167033440163751943613079360668770605961550745818730074058855418570777129376539546111235520177374526753650277123601026263711408502493754519972388118497200485295407605375755048633498517603934340365895296086073448055312295533568821456711805760475884194205834963384542165377020226288732032814262719241911346980715350623640604880106101761396430655066646671459774792751275013133465967646396069944057031186056087812280632896781657653727506296728357626397482838464729501891798560482491985007991609232399766719647678330126384650808804283111098502554661296861855650350012361068529743566446561984920921101266375831195462401126619489300838284386599999928333379487659821355883933309759653943516874770254203805203373382317893878282543047736859273772357478886566858736092568691056377446851131559478673651648492178603892046920573921373965976293426617993875988610557138473901586953800144003377394259635248692636896090870539526251096127290887376798222410747678488299026259214172065135443271991645998333033382050970236703791891297771139000217964645568170138089418258462959876893635924393798037012604370001954537532094758565668626186913776932365553855337366401811426040117126345320537251244688083925045538064254766280934506039108615119488314246477393594536113462632539790305310615515404757043183580698889116850882783575406260470081334894277564198811046150339108196697436038560732670871560877665885891060896072087471582697016905626687199268158483351741024109506049761333221030468320093162948196664178664108925963354038629241301524764041519532761824707235278977276957745431491457204054179953185788374981085050571576711105815852167055220110024031214717157984645854332489073410987610992956496761565447188062442849337194222747404498379859647558413348941074260833361521207750192980151294656720842115507638816459889661764643697603289243245105302982505122426807037312128083935122022554084151320294799980575137686493365567616784994713349269562577390784837182482831556792981972877868629036310560685800990722240215387661471364480196561481124538862716542334288756197979204855730192999750041758818622035508435269374224183477542357560534672554956154189883817856029267690850613136595288039173555602456879717723106032174576049759502322562941963790630937955810449095876213591677865829539303065765309230704398675706257606714270638526055475959525321304780063261071076808321621001457946409776926800691390719372725319228526274289573895041376854774592960335922726252666683521707031894962827245652845824142546063037280407774797988541294635397999246474691335524337231830453538489080808931525181357684852728589173285917464503656120068829470503204716904153768678001929305063669577855088550542369890122298087791267061052356297358060222018294315807355521909375865774736264736992888812797829333934998697735232413759931554636311929820706537274786072589973120693062721040157239438426087560393263870639290221903085890987772201985593853726881479322882922369825904643093397881652299859711143887919168112556374983131611093190611563255289261205865159851493976127055624087676714060590627593678972863204655894075319271591295117018443755758535236978206034603081114085616222042904289052870934871938753668199421196787160344751165632170440416053513413901731366894638873855531386368243369975985970616457062670413045912643728498914835689045560909348101158092318073018459984087990904615749310986143133159197840606356831884195057075962103268508407539511046071367743150631865568117504568429109859360948634686959367227758077306072883798814246810034268587441953320342225922259113156871855129884383997718184817757527652868727478679975609559814433269798023224692517480084804373540267386844464825094568371986966198330889858783525793232810047849800001659240729031466028150564724110345203157652765771714505108046030512975963903369048782270839013310400538514937353749729516134897226397902119889634448662018819029576929504346472305784526520058067990645390049554274873960333111513343423239392815392857552418925427533689936707673603270769534071539778317693299858002902473809122227024700301497321483099349332418808211182569586232946518575636897541635746895986602665172871063731782115440732830840958229371768628036856451591525703290275690368571298831278118747345960741731009788473156283864948619310435016618122663037695937267645885383809430494530230302680142109755025038907214842460093398754399153838421377545972464098687379266027941662047086632843876627366087827215003598927765170744547706538396196028343102852384091338723785639795368257883705830489472663481348213171908883396336724123153639729520379956140542026523557331822605360301516107672701613667753472021089952406019019073107167115721315313139910873460499485588793055573290748667569249917791477776275257215331530591915437576402085562431149445372545956809702564757642444230904740701449387200931485566126738641899425494931363104759618933034909499307284324090098660429647764160636212894769517265674169221041267919762026291755853059616058835981509438139888155464739539002210859787185924059647802767889239242804773232416801150880994290751300672861497273785041600155380972786910116538163760299560019987567710528743417964863494875902284345081024845232428506194564649282883380246745314360076653939325316906934715341110259091559509809996077710819240434008174019090499522416945936708415512633504468374235408291264653803549416953846871915947864482169071971882790453741758978656539635436417496421138332391272660853829567746264220437486137508696560381441154467817463182415780125489762580240567221816519025525646655104178403139931552734970128274640783796773431039575001167643501232392187217369395615725612096294658612581792259971229360156048325293246605900074675382891135887696605023043275464415772720413553534310692302099040958828028424925456609225504736786633535977670114754779378951221639503917488370060692083214313105651140321659149716054503315260875624430397512016270444756654974450829108449142753286512578843201433719161950742434585426712768110260079969773273109108740407138883985930205685477056812837003241060994880891203723375156916771294476770105736285175269226738673324904110576188363433437399317405736193536907770580699187001103875506825865123396341929847330966787573203290483700569033536216837286915868224849316458641309955612807613543158394797965036457984422529399803252134609728622695362672470762899717796327633461411207041541483053044019675458162359860634665727330574033424675682539988557003842039565097719954100268376282975119707156928778058823190261710147580089737378346499210043057076158595322507336108729570271507431229792031372110315120578694581824201741832056515117533812845799817329613000972285911308282090905331476011967818503836753034704700057874836099759090912963034418276550511984294261174212501745310883761527721032091623308833571020857721625950992529864364182068943965690856477512431829030183533951091146751371853424630585177074434321613169130454456207295577914988904854785029494251869923015642048236729967820854327708171399372971364728551623691028094394904980957111479873532633610861544909213621071957862718265898464545958700906924924882052343511286873862691252933569556562440153334475671624094781182657115595475669936842356249997922772333285678478624526949813038295767158836825390348461671496801413859919405559791791785828197578481237247802296273427132738070171213159345402254416861464162064185495562201758027171741932960403072428557591403748752412558364868478265305790211293015046009300979113289391102092842221262887439723987929998722171268024426957043640826917512394728858097663173521903477402078301082500823068674816599291621420437855969070083963431749157040070491113309702304687661585748313508014447599285202072786040624690986245818371056631825492066663392868941642231681397853741745589835502398141347627568661622118636756113454018506123014505064146476620025479372737016911509105700588058385528775155356834613555088814313744985636377736943347307792236920232819512601988334853193084139129692103451156646155817184516091865304897119538011024852574989315864723399926745372521914878779978880756267375063872378056469764352686130677476116156403088981072299006136202913855386468368424583544342072490652694313192636306455791910328174622465230508681145392237903469993576181922838411783111273426609317171605472302748587000104786605983536876204234909356314679354437007086760444160809343038896416912293846293502166110021076164054661453282613302509899295539192759629946278263263211656587431955173359427872479954828722781079314977711035342554381663505021820047559845719470764296782715877268483623611180659244515952829152301818089716722717634965228375068073131741445335093301055862157197336759105167204885674541572816321725939792701826776592787907269759586524444798627848766953949146101776057760360711075086603455755571296234540663775844877314065805021814441457012161388944294254301272614399603975154880968417538877870997710531568960577955363596700780699856501195536169958191091853337403661999066186774586536593782895158619216835838537205517181966990029062252442971964776076579212083499798148310842533800664605646546284410595975870105383783766951341441171157658015291972393283182374190724182705562114292481259500862193482545185655397012584064777459094161077898448667987879836035943067050826469850650965071424287984166501330336475959713294583569058759697058365984023752645595142841527430934760028480597374451154823040085774538194414235491878380929229783184414022384436112322168850562433541858843251154472064328496208456328119410827058831893542884543650548453563300884266856935636428902027669230848663361182991429872638798806829980861239497632951046359133826912525187946694508941539649332734549729944898362994739917547441647197173177987268394360240105216610149815265541625403854517795215840024958798797410495248004753558164544116079649674374767184221183581573767370489681657618646684473995745738638952849566518957447866597778195075225888298702478900964065318520474237695238933550121847859966007408965038385951470180407234577687838560758095616453392168848975425983059917537610132320635432534424048860000309082261900373063418486886143876373649417887401204826095051275986339050977024247252980175882639229387079367325221116705792644140908543740148530459025037169637477458607191405425694381561170144378884418883091592292719203584129871622866850532460389435650023073416708375186459536802527582405209237446765733512706016011703490806822232723412140846959667332516156575806659024310130320641153751168740775678740603592587886171973634936771114265430484708113330323186633985509494314397480484078764776783277053488015967141016984435669780845487805182319957564073978831770271135643924204452033300760976436796999004095854955620131358480587537494725693403309091728323941836921932491518687235477393921275611794664018511800138075010277721713064204253265553611432390788203509453770750843488923010206936485172849761293833257931632804024023662247707358488505586196021481895075688961464986471085846445373294965523337264188383262127117827240693226571570786417557289614533829164489186520495527295263300281049823109857339430816022566981711150564218030749436110781361389682204877365185667020919787109427227650347063385085500842117094040508256992457562828262781375133270805294552322160845405765437854007179908127688366953749752286406714615345649011269387426711403621513820477587549428565722785336658487290869174951010237587497660723016951857365090579491818691542049514818950633136723233600179192443975940164167719835945106934272172934837133152708252285878147644954066168266066328173859064681708480980195630954019100230303837721074832278139011682082582389277936139561206216213391578640790409627777430623945887116813593241244337109448308742299489657270496966891909767872956785683749182662280759470730876390942917918464672898935038166571603238341300482214907355731011475604391076423070499714171792722498893625118537718445653611243536680334158347109999781275045931072949201640040438736891084890000220658968949509883554543303448063469068362642692622526048050382229656658564454638172578720242239306031674501605397755165542460307432569145384140667700093348172625337857836954968801819714207583047902504544932943440806547069667092081966871809574518223790333116866601065885464616222513680755807281783990499382032540352222147912787357337924050581704793436111604657520350964992030094306338515155701039654361560042502091754083680251075696272405400706130739148399782154975269620067771746125375177474080770421469498072465669210313803655901391446319337852495607651289588470395683600524056037732266484889767598647222236870457260025131465330278949073668317542852793043641684491309014822977944414539776700050476454539441997442534009022064970795065778667625625790416787951719322821604842790422281457455555258501105051118532051282481704493408500651110585967966113480543157990100271163704146255884514695315016137653098634679351398306442172125391421048484018069955555893386469844709722072920441600174464574485789885219133254971330254820980219920946867055130885041123215989403060607764070886215302252839630610614984492974704512812064392509526839331630165354068929280565187157265787411940217478091727995418741181137373534823204924028544437285424144786673531720397284099921075338521376852189920275476375155088032382034514104490336878610551139745556445344133528058933149507241545365042536863587651146455776385286184222500373544338608419457202578083624670516135441219360521249265478557979011265815919933225542147336102522035640035827908575507305278835431594674179374264974074094794894477957316609623021732397288402601621550899074510246296718368591603789059816357439266727829502991817957028068636510124544515441318142965418452451978873052020028802043389552095212624250682073625164648296888315050959701000226437213534878582602533578984284992642598493826986555915745522772230447836700451292620325907284470070718264639429939710579650492402721513090902016322578929364662069079114189091709554858581709996939845824188862304346386468537094692019086644250014237049070605479440163636224484204946141454073340772056136753779947174346418696144163556429471591970959124572988939233815001041229439585288124290316381893911829364047567480132005483777642241308322733790168055134561187865263787390846029832484496777676526714460909842724092219442087290507772474227128491998627528840954536122442608122367302636241666463676956582340509347865011435452230172110431829674611812712477267475584183473918296468924243908358983041077861222164667413927458084410934467091407688908115480426990464476617903706913186431644872934811624753142709479512183711895430801606136867423308652068568392614804784456647494574832329837112783484945756818482357381296729860250944563100213870768049043011088410435606595632913551363659537905774508634658418379378550213855073066062032361892026534379655424091388667805176486602355686801024443819982174081868308063265793445013660695883116352765901963710912216830217994317817811597562569334811817590163704539548800254386919502939484296333878802324540268683115920771472660964081472974256413523770713265586567292609352131356326973863345139232379491272741604407165332837276663606992078289885158189007406817883560033839550249105442191369494384025928975768041647987388754419071010073882502600250529371571205988217997519052515481351289265070350312953887973951968071463129797393988552240677107478132966112514244409425462058656056386484117697376509322232005813738988859893022336308095219342652281506753067731168349920030749784495333173923562877249889011049829135380994323467387064792939183829847365091741599344224180136090702185376839482371972551488138816352825082378087561773037185933102376901551814895668026451066955667635627033163755042821846935526079312867717163008152297052501399440411109952375878216898707228324155404378594936488165971060194170111775308197796006102061075809541843822637717441589308934402454807763589859838646004481913063291821212522007280634089056273136156282514259729116909696211674082471631451891747360069596699142308087833837868659015986702232142869157014142480704589721910542004790420726183894565916757662433748165233431013197777875062648144789623796854491833393254452263282389839955214350864723998824618234678333412034969696346523102970980070312729811300298748758845155628443101315609908946158784058400383614543062750283843451683679399431155194067233688033261838130190651593168620191839636438811828697041164945876942211365769814951731860439447681922394006701455127928254056530324642352419083789115209165207534501147751337617613160303463500158304324119830345045973111548023529147267556528539615498251732218702811891475582192510975188147499627018320123866466554470962703221196735206682568834873759645072512079691451687396399872950892928615057450939183524898641711515633710772070437194298978525854106512202087219851152011968200668515495090775699216193168057612255084107995644735723621151384426059118785236111157667462461676058949088473218825118818916537294130184756365083622904096877270759063075951737344653812358167205699861544933744135511580828599979725070005425695844829042157032963296954183720611253277818507824353239187267379753901060421898213335680014917629276358973974915103361029448548755412659458830826273087297415813599878505897081564293241595652057224388601584207810475042628112904425526350548296613431983475578851932222671869303645667271026495994005116630866373172740445456949737487485211033177549364625380611334474310806832630846622039370773105244279995137450193526614235225514186805510400502143876778592990110859251867499131314500087258371166936982497699408416160624284063083328979971618705057651962404924316599951518966497547503900114739890318968783264557847453725180452235972687766876242850753816616792488000823409032034807146522890222308061496574270447722125026619237142356260929122601825058373181197103907517533857713780776213177245287947915831714843227314735068371778815798520230352800599998697766693700822670880420433042717610360443602119574053183239775082537624353359925874480669523131409508267297420082719591871616960153406545781475710124329470340498901172403145627070070858913555130659474830501092675331050476766851006872795324432368964938724349140188685802176697065515885025617415207031509272651458735885771669074118956676294168134057842406773388665298433582820992092796000256053731611957486517297171140435836830233310269244755634963018267857351110563974947335708175806329870766803421309668272612847950604361526544217036355406583290195474112632161794143686238782446810885100608798206571969473153168872765582925484100600262887084707264146369814546760230690648480001950891529208834752002948330118357071474860460032318036646630113783461481020801040824162464398628580275352540541481178772578449824401215358088326311157679388344399416742552671812706870485790500170018827661154025989664563822695284086125700000312015134146214627435881881137521596235509096186934825303819680850849675713080265221001754452150438824469635391354522294838227521939781610063081571394734757164331002885720115617471919226677195436928312826604396069925463721960291425377797398316744381208097218818831236226603387075326789425385591691829772833273126155084174849512359891579860193104630204088365812328283393282877527485978705364732951561411429853246103430255531301949643011670379286563766956985479637443740469514404752486274767380255896740849630272538858173832095777727044265967645023462419588725735933861552680812047751364027860596714899368123712011862123490548171292454815430238041036501487535674543111800604500426130787682215885144267302962084048226136949742620817609999350033446197688418790304159595153926411196546477482084960353618894576122048571862646143232749719188085841721650249255612284867044407945280918253914446987618136633194396064637822450816138177872928278397648591104634556227172221781769229741153867862146057242015889821754945547494863631767227436470898021546200732501302370572121626662522005303961351678831013008568016798771386008087441449608596103041041197485369831113671070824797474197170808243016916661770771312763331363815453158913375254168398408478643177506675039488466367772146792112185361223631672188803806610698593702379096318692240259119146345846149741712192550199254747960048460063345981864608011593744703731663195351890879205648107281187772402039744024602129739110134992696648989782233646553651294973293415434068946943373818266377860503474934332702908375618011054934690179339428739905663796976347810695528961987646189850722086345874757753558684468723357249179047654807751039237363961854667533349597089174705010313969438090236340457990307072485296328514308887866880742498163585636339314194762523066152520565896307037142091574467866737683351558224442263717555290549395328823666896153326331493583928128224584932540555941071950713799703563742340097316130986462139379530870947165361256508033157850445730000941413946001474525441403816920993360411596583800506303682545663080628250094880200341800214558417554634801876535677644115164771043843669008537061169050325303146835437133581809292400768050958188888031319229966049866511923553334427159951307690820852662967740310259473022591776820132591077731585784477312075886450933987756187266253938362357576251588056203092312138665780721626116181270037560534462263494983862525666524229234436513969720823782599576261080998493754227356751224109232447930724282802917623537533863708763873518155274821112448002459124640511151114996644626198433900579254635394962288892436232521864025248104905959554083650286893574890542000912533867434313407342265195998144887626448318552732774941228785613062258218781200116285735213380860436525201235079083015059632454682818922475989132871694359851422675732581509249821248990518465907278237639649232119042056438491725564318734416229620060447190161161278608069159705072338317990240010621164747758439023757467891316957011822646217702894571191364126858718686358249327174656270672807513674315975075657747583764063380449448206683521783321333278967763836574467462017288395723672110981540162132700681687402313661948332501044648564646036412531741333323796075672937330521229745793335256616855892004375962513420306383429430609715847409538019741154953001028216505595925945919485334822732715544487352136534472942394955964530478805317945586293418901077793490276022180849918514125716531651374508750314014667742519764762046166931133260453878964516572908438615194431140161514230702247163939901004379068641034162367907418506463768256603895503347734896731133431362942854314887603124731335419670980008452642740142097631369587622585910093111299737936001355335292074829853672042761269847640066766986610534552072872187381806791058162907487010767369652166873448787438277199732718649255424806684238330274106960918550071153548924174440794337042318254560683867024205233933058031730647788593322929965546621687057128180663158107596988037954190286710515896821839986172264565237272159212726998561668843085968396028717153852669414793173289354584495315021859300866891179713664949241053953017401360785889154713408500397680364538111157208612956394709645574270823873126874988730970590053373183461689693417093000008616802780058956741522844366300229652650701385626568435888629758589271228973122504501939753988019599295859466744488527923464103724733413533839025948077395517640674147646580145330375512587839152060027305459805828008341586750878202182980291241797731523538577064067711668452133686650109064439918466472914384152284355957780524178692213439026209703590303502527032839798676548711129716415065768915393509094042163002921262342347128521083954216649117518876848901601635079499087251459442840907695196996180377128279292330631394632150965793664885286718536589854282324046387338281784815302092030883156972673439255833643216320660898884580711362776399966495706481333243008044307069228179629683286131639498341581788714262196654990514044999490513227583290203973389028542575136640742837719838951375846035685933196763654229787959796756828399831018152542366659857278588886806485189459707162034673703516804567897410832102068776915310505668766877329334920023893505744369544516023429794578060306718931576795190895808112827048686785651794949425317989898545584635110166292415067016117622197572925577322229957957026951427313412587036021325937476429476772338553939496080349432963081459079933815943114610237436482609052748926091149978175992425233969728695252416687315009238204121285426136163532491366251378662874417287369277732668533899905091442880593169617682577285592777855488912248808866962902222009071053198672733203501256083276186546860690046121765511410345328312712044352295100167947903133505342535567838691922343124905213327943612569046803304540642593143348598935298788225495318574248810376413754148449982952274890279695089814986469076164438957523435665064979825941525032426325529441165969405598958665076121533992974864105280830988791971237287616972907302953015863380954319401820266910469313930352663628358321962934195022055821562811510082783702191422318615775289443074012512069822362570413511621279344747937375070858534490402518946776914742064913902473152404739223757035683312553974447363697759131016724855642522704985587132991847584382118515249153210866087093894774655589097681500909155245318437110167970439422720060659347278649237655946958471716429025786327183436043870606152679931992517807196060181997889618914413296815327355365655317827878987704548492565683154048433686635893482791153784996014629433017853591892226871356021156380668887360245242861517707711106712851439717394625668407770725858919518657200283026878274880646248625804514333344541330861637868233257296257953800673509106053396523255759682415048279519619749459051008217962365670147705645902747898018100630951888962137903769365337298726812820884788701063082554158504213341014958285427718069494633813881682451903444805049224355100033141429208942257683134801951041953956483428383168994699706893612395299336477360596737956301617803184226182619920816348676196602758664471180876032530070874535085357549089483316670801325348249711806765228158023607082333904142811702294135253600330633026112455168649227533897653332750883730873546591411189798341977081211090804713744235632419974361958142327674056004446749156949455787149355479222541764298223075736651596039395678729520830762129957290564633327979056087360196683806841521600534098228717682054303049482964071437795896778917852651344209014796569969586033217610283983223252420909187497569528250236244494235687350103470187419905300293809698609087614945672871126806871959924240064653277115700461234695506725963015667229090544556889669490363819793746846586653406795597194462977563164582434386240379348980473005757098395158216139214440418894226816655348954143282061553926819933381323414313987908720655644117610051979103079211594464124822986954039586697896296360224807663263111856093817090755322596581714925458095004864281930723758653310934741026846088351017655232979279258864296905772257139082911909071964170853845945443359918962961825813795766195253377709395930937558695979150585469590600816003435570792205728418485855996164771561906337685043293655454747429793082284034010421477940049481806545729224483426104801520489332597893682357594775848939079653986132009777388783890023066496506731865265056828395821962580338070209708988714146215856544262375254313938425321275734074533191162955171187913699270353917235081499866237794428418843345714929271033322663099327159181177798427378975014789433268497205154307237560639987729616687253234709907174640540240739876530764999282725555733397102244685228197440635674154423398952240404254833976955371473159903911519958160949598512103745365994424396455866218951207314020177355678185319574500159138619106408997869328313648390096137571062723478005228242118426427552831612858697601566046431833533610397233746019991538893157302858826916092049488454130092262588377714048796551601554359374511078984718088470096060778907622069368407378496336096342509584708257256336812670064291029822279991576193941230501066561932438529131227088307156747196820218627201948474469147750995873774866029631262112393626268432315339171935691378989196606671277097343228082519847506195406203449333070378426798379941771882384778573049239862558566116335286152795713435314524810391638351705507787722297623979208407088711586623991923319336495574109949375410066796880142650207310666332190372968824698040807054186317885193804782714122565417999942520847288328203476858489725525747181941141110041741566799999641975328403240933119063192104713467023378515181682298661343846179559222892272724792951269711902324963913804404399574050092712081861325429437494680803495274028786638624393417108857657456509859476694892184500640546563007857601863379039611427130965704638609176346038756811696167424770017570120962241599529760603853488570014814031370011280296945431637235112508802119138585426221056899489951830180914171906159263693473649530715417590666788072282014882919882051557077635832956721911220357704249516850618829530889889133774280092605574823119088319103131939299334559231342822908244952580052392312035468409591811803767004110412429520600416749760555822753840278557228994429097079220373479880867350017022354028870748724156877915062146524891733255247701844863336042379174274985534336281951376593862764032817426362481472009657057617273393219713701624994376072232561327874249377778589269330335964016213344136498402711391338427470757769543778601175664910861942707182917441242654445981363785943440204322865897546386434827291483675790906124620843234390391923443343496772773556111421320014394443227320381369085729795736326744778943865774890385918099259886296977925891374705285779546130320543303677522033550855052641852468351949293468352432860294168994575328382103070059714264453901409018029918233366474407788470720216230623856055975822134483772962995988321194341336945834461478359693702832682714104848145288290526166403281494081840243768279808314945204633401314793187522373778064144956575621060530337373631466749971428199074239705585981535036662090465058448358290370627882179517010954976396032910465540606926458630212687402703333762870900863607757172312759161950765391337763291958221560239574342934468871298084612180268971042434170908330991098588888835254085942276917768288120756179439690119075663452417006163200810141847533290811300309310975867707303631842545293345309766615291752366323656474216904228061697515605333059925079176825022364645999570337747610841475018859988302655204068322532391058724489413214920420150763661972890004060592720424962760719992999765156898504788208519098035733115741544655500524131490124398995076737791147971421276661555365700029980643522358559463340291519655744773725774525517368467724114822876372680019635844862426037986498657582130805125486775367180449618700159104473879342430418785461787045785436649442843850304116481926667184975252670736583993025400618865946300442593498642188736746677914010289921935190341984732576022585319484839338206114648070364899786708653140531734815143246518534005640853019289907636016009140767076874864987866144724164384262549228598167910812920521882291519447434704103619261982249688650183287881228655261494487243355986406705534886676421607699601535508232824182707156181963143431092962804052569380172100643874560935856366533754096152099368441090064234555949678992586527173749829803717638644155408339933247328130954900909116944267647099606051366703401744118303662250489910202822410449800530639392246517643281963200444786431071064518182924901554707466301366585027750507967666944709231116950742845792691986465479689769857442471202502619936276904918689385379697748241302056076304338922473675747538314713417546782974962447706654093819818294053395278667728983884828299114239277363245716014373375263048026324942165455657671976751934720546499442516009891508526537508002510756054326553772723422307196967945272246615973866021741689039122722547133825915532284525152266946972817303175525367108519113588765425443579041298241035431744232764343271370654209963215706364060968713845246245663352691301220789207803854120376020634119553945346946694930916207958199116593075741982692987786665036590825853102107170150184413675291384847390819223564708665621950319865198555690374767109471408761353154871815930278188382078139400086999967045174005890292947204951246680739095172243055169301048038278147544641937702694249327243368125202460157153486104406075905633203741788371475352143957277788274638618416087213432549823690048373821826384009251021559976282492414832391100246927892536253848077699875241682775157981445345592180912352016230923561872620356180637137437050124625681248863511622694756689681361908739138611682781042246641848813774916377582353071751093363651592078320285074878177329456795722880270292533039303562960965509081112345990450064098314626001133976600372981338813161449862460738400410387389523346770156047656476774375309135303602773064948548181815798555845871362783153768046482215248418050024360485920424819532883678403638789956319332163183177839752991937552421965960896506553739404460898228965083088605090890249651264721191096922940386605909137826663597944840783267636254438297382631612385127135883189511072580994198572394263896590594982782417809235047599580728228798338367066100204159537645690875936082090530464645605498351090377847790876519746000574937826856962268923656473689664002376142139140408853022853014229240229342391847460728918244015840316196570370051165037483283612130517927679202949584496107578731219312362792490708774704940277207668639512899595810379182555275737019903563985512824029479351343047014985331634148827241470870511372210732637816770795704244352542402658784910323099442185047657104762926221526379911773502945540414719797361893916413646795825081052536221009567308707059953511023282255406880818424246132905503411246368206259564429291757401920097057467517837870949738346200035152023509658220513234951881288097417013828007277492706073842957867654565122328069601873592793842250298239452654566153768909500376120416256518301073537003907029150204753714277894368805917320302711857789917666634257164269537166959331831417686469920393292873147806545499610556358587858035598893825325627842779752774869590582901784353170386419677914076504812980943838768811633599534749783496325840425665564883523023097152638961085263284139935517370055701579243314557133926350649126910328745743368016847088321019831805725899635641749947999141176464087830985873887601262243929152513512743163114240916595798544231194074263914199573700819368632439542888918921590733557117772516588695449446490515695732422360494291061139881878797814569230082568163508933768853608784915097614076727220176526327006304042988298532360410002404018299071505820953486678658549147523103917653043924444519665134251485886593572530618789331732908416340355221647410415435261375821818187912790652821080566445817008188462120953276418823619373937158454165450046137634755726916725247610255780211198221219161676924799468148510221108354686977604706507970232697917944664058254587841235137839159878685765801747173575840055450021699156624893432775705316234398574651211255669761595794165500430927839580643678562017610936953432274420323727782921264107279273315388054265718719523146147608512412071162145370705234609873528525352639855517375988621522832527062331717710576468344207112184896971626329212490614166624188760417868396533520813403993199974584851636867649088685910452680787306216050214958591937822714926533322860968536505039861403799578393235926809107789054855586108859242822422592774477365117818270019813885316073056803365796762717845777429169997919369629629072997268103049709697061750361784872804915714553234024897008651825057184139097089981443210863274307629534648301060291760317398316298855807697144339567729015294792494892573053103628809298857109774203433903894241774960849678531158757524460721062635221799957944832824964981796880877703560490697406097558151120951620501327709107803913461147510049698677195780467282368221758850855512187378823843550239713535647675312848875111455843944130756166908021940470540250925616388730579959357100709542152424023897386614498430269643615697593835035800086525206634482325093428912815946824688131107670648072715392133808549088932174463059788581127442534488131962175507453904692292260778682863658751566809447504786267227357076953714897264860136280801508442263265972211471187217154458187742615869707938869559231035534774484427102772791812654193912554760484431809343679664633404282833273374185062986549946001209056686091094950352084418389916340306963343519971372234045101839365628394905715741199173881420686449188564896816333551950660009288433325248067355841713374961715055093426371894023253035425993843941877187420881455435435616430348910314815205765886944478270644910995335212843251910491246905432173805106794185988054401289425123258990996231232405387739821014464058496559741586595232058144988525103769306549748931350603293607448181499898201118274927781520113240464303834000930223108054725959755121674670665922944438571075829356865159801179019948045358247172345030176398914902214494890216019868415175873791916826610983857384537652804189009337550323487675887576583508168084898048899461346384675835827589450046648026022470795960731123470870190122939638421992508876853711199854331293724294847578836115174083358437533109066594270132580329543981526920681054804215521024796511454543319711530574099549378383693200170656410239939685203415131733092513860829839610344837564348547094563741106045616668328026369760559410786005301485403212528253223272517323249355788226593959508373340095059845300844861549376083077293236978053902069489843652286792858078158108085806495326331730564681609178514712540008807225793713598591960203211769851661813820572666448797145605056476417427368418914506734245675641604829030981897917595674479970441848154395604702337843568126761771579873748731652445882100164106192876715295197730961257950401327995125123044607173765330443488975837750220067414677801697322800545673449942537241384582367759639957228554593078385191403950474413617589100741462268192976969498861286529855178802499331966356382483829419247431923558426763507319858030301534307486182437832522793357993835685378113275565386473002476743067237584455570664332239670583789750194011098458453031203974160814952863365122483951151426513952136199492804776145672284844312856596154497313827859533076736960149415863707036217565867010430358696114579171483445820548229597116654702113627728249354079462907060140372016903577892399326303272607254506004036460502838092961007600067621093582161548809682798180459087699075582797111496748587103659798177900559920461992108621883339386436767545357823633698908816193564218210955951100939837537477554658607786559433062248491278978754508135580009553618632247789455782167285821565583485741692055782234361503253551913069451960052894986940468655864528839323919612404399594779057554351905822581270246825732160269935312376217316256389732475711628596069997082939495981464546812429119289449321675789363587752365870831262612976895221403712133337137363657009749611146795473894021625486684146352498148656843712993256610369032098432452443637457892832745325401013787354608708578491533913301848796502158881092990371435011496211919724372703633189011799293100919897206605891949918385269867800580939230917378195429850851684668129923342594667076177767558862080126141261464088615606370386756461288814378861816884069210573731007147127556028255238461049428731994983801419274943751006947906095976275704074256052792040373513225643720532009690271261787884195824392343316525246682094254662729793482420950273277702953598156498247338180616393871547749197535049321791743206684340920620175808477830518875496124423952011896490704766018606357333213987937346739149080881235134551377407155868222354558845754468634333775403138713026260714622401171706024010652254911986468430964157219449244602828173252536670353723004242498660648053112750195435652322568738263515606179781774903631475049573203258272282087901580037039472207847114408535302162674050665051256166950057399083273250689952126975261606027252472836652446769954693569475947257566855811894258537772576809839768588064964418575387172908716236658429546000645728360531387581386362944104313462995374182776271853061591934261217713201031002114525657669028709745553310907385811128955140392716687522479984987499178502589268902148245957825905186445482530867096054152463916486748199695691963759719630398096105803354613278943598184350869745259200054859003037296168307195762268543536417311817450957993316477690774640274025905255388091862936860458673952113310468554748440381710725066369101455731473828250535705756613939175526069518689649250344686647491465261560855050379139420298199422219947354382317832230368471373302474855942982638040651298489197127731269793994244683681397971930894515313010228207176024113229639122806181570953761845202287863361784261035310734175920397829165437023953430922591085010805655918772527775548002700192946141441537672275682553321417372014074713478844343631675916143872255943304949771961233842226616048964396242053267797041430802411640119680891010920634290380279255156967953244161928348664108382860544153699643659319691377778700593603048202291302651459229613455802971827243841968767243708449263675507056334050268371994493547326526563206627438083699582633516760708235495298561583433119524392297003987910675268314944224875870597119750135716880807708801638578432778181513027786831168589194611430108958921839289713359413928885648854509163725939835974207671570746071497524605986398966957462315777686048797201480357679564845898219702887616123194701320955924214488355505762723234434842642601175322306182230356585080470110118991932525717205499629266412977350428504370262289723585281626756378963020389847435594806121738739066853543845303929312988193883304118342377836147805975750584066225413362933578093194781966392974235039084805932006978991767883396869131974825886474708627997131325613717273081653340613946256855059072754586450686465652776825553429721408833837278820102890293240313242102002610635664244369661208304176869322010489934515597321174663009086712008355724205292251062850302940669270580504400681819227351425634658435481109593207340127496949000254472079736037916466970319503383284835516767605831036545270857655498002823947822313718870396521642078414038632005016875592892442489164321079620031371107462606935918955818239988365915310970042358174294600735961247432905721092909762924104106566209235037924431392689030306220340787058475213684434981400664399682817772883283068082967474851072684228563950311923967939970227828083290403918794270125640317319867054809038172901093826770327618187333823329928735425179121467416968444384160995792173492547541151695503632929460672187983817798488683627829099798430217204175362522299672743257163080332626794270088346679931237227789280490726906343593863344827373494687180880694508882406899726165871343751874071244353589993574950576391055026023488483193010977628751845555614279728428487603938721304909025418488426977514011626937613955045856899047300398762225695695285227027007070022363127827564720918907236614533831506450866015716672503044253134573076142482529934735508200948111074026427032879613545589972387692438810975970444457279722559558214831857922116838192022376660147053550332990566389961139502003559003953143148531999733956110064596295558214961621580455163249615249846254913386661556613057471073066064947612592513473986724042947052713945870057114461774359248919999779853985891554580117570754584198570746444171573528708831815566490671161372052484212406756883333463263093946744059153928124346865274150763671083329467993079601213226236297192288906112943956865890674688582258888398916501883553307523319815790355358685515578206546821833215907429103474695675663392485415223645371500388621789026343137853026622744881799998738533234152500505075994452916010384924296473792314485199676400312042619311018390010745597693245743996519682211157017225000078018520076909279952748195722352249009245510210083294350604709038217623401235278483873772731431981235331216735074162478419546325344615208289122378046922908509386280752677373364891675275108867186907485731511798719112758973717212220069790268627015397703337623539168573023532778080515008525981753295550807877886672815650966691615839112721698699388759112688648485453452898384500172007531788096127347744030045241675032393038367061707101305504380587173067566833533745378303685599937759086951306218465528579235933917419171205417969987256132453266577397569709321705621938004614828574998937523164351347470736588209810605778865416514732489817870094630138507925592226072971522620388194374843914310594095992584334465657681739689326110459870100372754352511637744161227299994101861956605142159694120635513144859719545286080974868254874524459036260473138064839379734468186624970072155471060193500238648389343756227635012792584941732643662372023278553594194930450011152493701147634634157542640955747394306944563542362081212241176373576970867776359301935638364440288936305078333228036674743943248657079895085250872741832683527199515779265271987637499790762084389463472126203607830817381428047878554978289786227472441770030163255013397053724176828153235161769069219970255699962054642437265357754725102403129943553864594831470194940156026684943031837836936554661866566254708258607489483972825155891603855349506451384744221188275629862063313569213435053541753254622942738570185142216047979181239135818570233638135445357112771171943216604661431015474198215549290475621090189572080606234908802904067854566746372417724868119007420655784822192950106596683535208679087585534490092713251073537813112328600410529188355048282568212439318097857966641441641974384650359754316704183852145907794335773149648457421486085488674529131457458931518483420505854272116027520701053028812182044257185040797177351938264441514303400003896508354760695211261435151449409699151517833258517247989474052420610045984073638435113829829335370285516415328184689878043592175819760111037188260115715212198992803575460838874094737522040639123362898280661873195323552920401422000951548088070610074538656397258970803032798551240570967529948775250348381191484476396069023998008588751011612900600807691194381030260949480659847619690480593217852139982865901636139729473334245297578429975902328892122887617453643431583753143784957460887473734258795875821990193538981422942391794151561315397930251464137986089598876754136943230404870285554197809229580446989901929045589068465978383379944925127160494133779070648657858949675759940506175576329347568082892202911154918648820159214617765449921182725498867656896225170636148321951406030844868842947490817141227669895297665284671870107291933779292824435324313828520635706158076925928260322211940276877904292408365323232151023540753423210947605321017167804788960416851071973969399186187946346189679713546786722440290516444396478293266946358491866150401165503213795823884640354533706750014682450893963508407963388339316440021557629487655451496229849457357045563984582865390103120311995586329789859964274241654564022155269311761821934040528049770013958185699504506269083218442209858065603603966505204050926529449163112247412243985455233459397360215848895956457603560112394722600290911023235818327077603181928957893191200422829722719276801057856446673340203186065797599897673630045155344121222746492117841921042993023304754593408148695733885585311878925724359962470195810494083427130065971636437516574637102498705362916929006099797979820814714713112899508518492003986404614653025099491414340358369556884216151820006672539858532035670787534474101821344997039591787397534962114723677715107506443419320670978481013906119468142996565946949980301501505043949916581936434061754712006023253305100568566199539885210969917968103065156627611400123939441274050406560022170985477796442468587486319694618955103513339164119590397189387610544264230246441278596632014847955273227434092863462009840598245338576386151933644320983391819574962950525271704159411032941605520070797004452742655032910680168291821505488657297908306573320056671104039316642894607397427613272069913773588877646840767260164503796909067376249123181569461325842146511243018088628385018727320829304932053488349080225799962089315382043458746206252362968122407755716676147083325307435180280156466152412335772666545968950153512096407409879933525112423683932555080407795389065135984869314857268748994901408530010625403698440243398573821267762945491927728192707271007595054194545037909180516361580836288870015386724394500702749898432185567647403247143923664843411160620931019601825031780683539857258391335713344930361449170866597972333881453092174031811747752032581674338945826496752752520361126273672109764543134023806587201125134514611723801638359472687522817638356655896188613216729989394014941251035646583363688776090658837696741829191920311945646978094249838609041603309637645292794234193002301740054343225854625094743545517096835436975603565019923851473718492670597233277579791173815247435316334241172984589412910750455504288587776273734066330416039180826874172606596159893360778633070199222318466648889304527152405511746120223016036619219393661579378673696158162597300582128112825576467959494028146674576045577470673902200197698318259700293819541492759081133733236058858777871610067258359623260496001605899148893422047361613271007545230048439431098999163722188623262572247230711979182304944435140335744766397083610698607144570069276396639734920292183462976443818601893766880534512777038481569085406140328036150280386094903353489323035792511739353041584113326547129056739888443593082228303303222116592985419196559797184885423887158089140369301617172570015570614836906812742295502793463522645006869343077482074666368747614762002275018155179697826673741459504387058872387338963291213957303994663054340289132774681687546695021614124655037009126591798302903887348417613972343394556935660083801609435561378553746892071454423377646719631384646526315701017132358397487466544236302779285419045015666457881859979478971251481140502377690261728979301308065657163121212079142907054215088898379545365916435512334174598794809276941751149031174605522455785458135586702153090077031955655899599746805741613338361641691140099233415564386836225866442807940336267010522666936192467472371364090542898520518835100369268187997465647052545068268393626406994422311791299733364106678173591597162898327417728872302052609804248757771006988196240372912716284558358478403404924364878183372432037161878814931836632132424242420147187986601290829544902098739959542872139066776982756308916794217401688235876539750420302448986418896369096316270120557681969929154992775142543788129467665083250351267168466448444547240410124528064217832732227760436916102880783588718437100518084017958014108352816351636038053463076389194761501869867367060501475565451912556348547440616202739383503562785615295889468170169994014332311095287212448270472060546025850066704075791114136827906978686587117792043561148929968719888032590349546258685078645156073721715399533910705457420844700489981128289942160212220926244947274540561035820926425126780398190545265944373751942813217137033612591057551698992847294695342429807232562902588836268426784470298363132949660544162538614748828347981673228810978487694132343671883348297513277555209811183566129984856870217344971594558142051676013631681044749870916364943156667001634124731526314664694470222860280711813992815888751637214266832121415092317205731891117328825980525201560900415547775952404089135009403651970848700749678332743233588694631268790098502313172066141132108607604861957063566245230487204929701679457814582009036192806782139458937433777693126987686811712481640849105253884239333690894635409235802310817255763499799694364597544489485664773280449886762357891730215026987964549842771233602523960136788902639127631673348690099465888102863102237495535995017161877940595427203256807509917230406040592447593475587819231150708603864364001669769358844410773687028457703794092834941402822129586407527063935399304447238508439688527577798355208317581070948268654551492346771164511885672238076006299878184487827005272031293884799820971943202275713635203988800756097935496850722217381909642757568466440784384976235954164378986071667348604995364292157690926961517095282542108602668881287621322828870123941112135608499848560226167435034883052115199522213094722311882454739260808544121534421043454311042835336107232244610950475490308238497623378772397985764670714850727011550335079176889428553256555785689141110539376812300764172733233555555695819795161678765161127158802381737058125843376445496393209033630888423831346474132541575834085328701621478467527366035329814219899900103996516639857816270835896248137581128520502746831434621865421002873579845306419721733111903252007346192981287229517898245111770328323475986403956270619085455073580791658971007776402290351977055165146315695428841424375579757096894223288731250154465913235682234856323088186214869175254442042503115517112520932667209352445385328575930785720519631126771596563353595646066381215699176134271050357968934692560977592291135575500449546809395941988076919375288865024897112468591619511911805736623365074921836732839574906693966899486388125465885588838303308642792235459716140863913280169686706096747793497025136967094921185182680683710393297681827934909048809926852979497855733371545681229119082889999649617367275829677225427182642232866400132724327309242950923056622134697756027497131137749640216045186933589599433451701314743167166992535535262519182296068551102552106617693913058993047044013055539478586631684376918286472343532485938877973370002374344405223057833850423369748670050160028663716354807214257274236347165982592000599527350286342941390667926697237987304373539379577587467043870950735671245544966030978961181945541702455921930096405938055229427692173509881950338542439019622355656650959811895084955834758326794413719433477706441743068760728732386031909376467452918921839273405652449125058695651761156206981250039315388458184406490819305513822068081023933630856535953832850815185286024907380888193971974192664563416144842651154131695628352519591124428382628810103084755454897369025403588236483142440595060433363721723113697973766253778983291481467685475411897102364658779329452455366084629871709766714521539359362956508416867938874745177684647019705601206291119659392716942878200104738422691208420374736338838627479266343817074600861816517701247380026891028324861454672894643770339434204648424196702561879164897251838674622230416516000185643129965411759820850056332395241632046675535001335372968491746764631941349922374424722463302202185954740646378821188234593940899689958667766370114295285312707935566323783256196678213665709220602831025653913540119066214292393816411208069617216043809938799300327913519396160545906725965724244388667309883949480405001995869954087761066913890684279935646950245990878656104815262619488029162203772854404310761915233096761345657898664927602310346708078390992627547645000231115988151525016675637395740190577034126134204163590448083907653748582777525966628543162988331420747782612095040776043338836635802430892448403488354102870614733963283464657835796697459258740113463457623216081042397622251689597347681742851273772134888431264298689167069631623873420014694898521423020835510710710502557188462778564403760534154873713405703530471604771067752932007990830085796335058913648697747150937612256284483514279338752636745707222002567691274834223794366061319862676094406210515237198485974737929740617724333077735380254302218943957667695095667279812485008486264258848457967719356146646462601496495146347149006188672601302167481074660541119266891840637883531105630441708083578019992232956434743032959791358894379380097270442582150692797998883144672532976896720924331096787787043725470404969378268535332779967817629151867127754136572668369349108729256606562281591526335044669497567922949764583960403124782609680807632457291796313570638055301817950615589346192005525020421276892047265235195908441637059762275805273353990572737729245898431134662089469356846280770879593423614342618357397284121665260195438481774502442968737870447818458084566985918167574593630071250992994559021579797126797928681418361794529381147438345911304949490625457775739657448250418936610501567223911406337904426932767178357282347840242922904037674700397134683438554640642707102611753009130847612735756388934449578014367197801389826534243776067204873056592069332816973770772050673214000573675534498089554053868887867159112407602402876493610914648563243513922828961692053847422089604660805903823099659189334258907900622370408006699792029798194409277173502701273368468208673831027079479355302208227752154460927356207151719553874896681908468028606626805266261730739559289324327665608205589264922811457207893258778236808279305050030741774353514258764320918185432669406906760079190821342039636895309452563340221307302098645862976896554724865262428461104736657509041771732052323741407565848993239270868216794264326875694735191217476911115775407999719992668288850793903934061031042132964682504077064770521769095572432685966471769863829141153779769760002581927239446920104966004285085470014809180810817266504567967186688064620584788093007116714190784971339391499399525524545209494650784349719810361428778184033220570694639515476946972767747706424864607939235195654366350830702520798246537427425699694577564626119873862943453280541508276209906622774358444862703767092488431396731265635680597853428581984460900825022815051063672691418876039788319773186265729314218073290550935385624444888087051585120556194413737032854054757221463407137369326552108693222709423907542994089944254445906867574114322524261672343521912782585438845595167978299328323642737457452544546052939896806263513733587214850808820205518659958034081488329701253781235056793050818818568505731233257555542419605427358319447976432499228822660435558523349606680905502905216337784746351934749713022329493965510415987839740167516618593605179338950392466205245511268837311120785257244245799623294450168341713595140252095179264681156829820313618827396426623321676441524695487558164084358212585044247670699693803758573003905790110515414779557179169312729095998221364115981595201458613678920666663532183944579112942949372746424648239215477975615733670895761840575322098504748583570891766352727809495354274482525113739382912378335184147182784881809377625946725543342069023837559765846744498857297100153365702593838609837888370559661656612261881245463878074036437755829259340136451738584462455407649029616220229244791778901424327249245624610572832994427679678314481934670551757083502942567326335264906514141210237861093296718863103717170461762893116167259029067712239858836596414924553081207285708410066076168543516663530341382801133819677912289974126655244951348338934636181282256499053411503179141167093830767768774232569803429140799802919107611396530776180407622194451519402604063470356799353883274378588152011080406490885175270082056238020512864218424823002632432055997998346926232665644701956357300679539057244150398164239082136235132717714586191210328112357269933087662553440894151205179902731473868182626644475280406727464085723801550389418912595893739926501687752743769741533748172422037707128664490771162603154417119414108348606899529507444772203362744266818471196563615713772424615456070479650878312900133434911136292975583609060175949453796861506817908507607566212738100117918293076118629911635574502602021275654360951138569094815424476722607340061037334261273608044855312147578890237559057711317455009411859748652962705885639173897159515988987014175869648654185324863779433780506989345553880505233124949841887573046444733144459850552473986539970734623381939800857730435695476169828265893810030602411218665685980207253371656135335099218859560107881521955992984830737114161764839950330037898824790345410532502054955693588016154598918936886572124748963613671862818854644786179243581710112551851317871774504307353645029761507292301108330802551534951869294849716900991730394769733378956502295614877878048366582834827540230192303690385819788534303828558273006721561304247679650997367389863963084595330994467366005278953510077510623540518095062072959121477879266263385428792589775958630580646504484526239133538342627050430867009467036220406339767252991365187842306583966702262580562122210733541161850293635641616655779237766395860494693244550805903617986442755741294983021046969861644931370103702775084860153961665864512853545304815598296382985981545562592486591863288176301101499737206920153869877418621655782087885028970856782970192695827695239408257958934666666883918358815549069436830703532763207934945109365399450972042836730670351441963155288753214822189325967173707812714051334747386080963694563512019018439160557338408051663829148862479351379403713197966875856259482942074632416148196268288849800968875641317790265769105550802543228031258589984582872083257358894763134926062496271832200731813542439536437705648192953995700144554383910878449144193680471065163474031170374482458505185788180686628844170793566042698003163236349120302919753700996010666193896217318762267071826314852284417279433406818103101838417534997349697901352604608389864938417085293469279158345594247787414758186260672246624811772249856862298974404384392184024560360919123698959782488064463195555559308328167346023120406670072487747599806326845273202557015621687662840583268894930505193900504950495870154003485427760246248588466667342385974454567161141984303835706397426666703855560964523903570201073652328352769206772213666358574608076159948257589026155644286649673725692080468511746267024678766860322879651197857616442650025536622079972039998656146915511996591892609987569195721982755095064759786156264742355786450113897041993509976406676557120850295842115591494729075235534992741008512949193855962594032638202524988224921444475588270029003679518705235762764423558418333071204601246299399154841958135512551467709344714433092476373215011861279838185602557163141744264421039231841248615613047098148024733881256960519677269438321490104652409981501183394145060084222913194160995009964496196330766171680279966145964908485717408237805713129439661036877272697904349031896749323216657233190372154146103647188424635680197125709771242045599277189401630807555791531803886385226329349122868944587124407187398513109807299600005402969139086326671417923649756297192502128839909708484680439071763198298386258976031273818102754934261012824458351039724617260027124726441028393060367775439840384623746557117766042747940447110253227526070881915259623881035944912100259215675509990359849028736639465333622278560198785244807812000092267255630431187021878325473868804409188331048255150339506237035345911575694871584408122253546614612133683291417713871207911325632996961058630638814550382930706507642500409597837720091354284328731106694070419993253056831695331854406218096083461319779933817165917065487955211443993463691039132585349777380538014249409345036276165813689500309512610570841234456296013280703948714675890101664115170393932146989030266726605846735059647527480561780786795393551032684912986766565426312732988529192700824708774002213743115658696907606589908547798087756486559413089027045689772974195596550109221935693238497816225875176465524209255740925717695468860519010003160801289728987052861085422973909396815077500965971737146008611522092622608527082988364373624387798127745117082236808061077077413663347955743533547250663440979289899184082181502006262900581367815452848577595273359535974840872450053882741039998701952126233169862828034388497269141695862950362027229748868984900397414716167457511413346027344974235505878072186655258735064125308324573880356085157662659100847907204770453688975071997435665063066316758761134751644189050994953044117199851499167397662294269445166214080877491355367345306518299977582014657530815794081675035725631308268975276869491317516603141962741227162095782997451259507368949976478651309830445539167618793163664040969778731171580041226555288637091406258178846923903643987679438994419596332277331510624171111117589582042138226824715855862315936615312894321916548928211959762276658143596743190469318970709546254984802349550186923112936640292909966700863878400428904420862483661779064302063305933920322434365160794325702465868466897715343280772170987980118148551579281644492135430015252996137723601077292108595131459952461659422716415747632365702571880611706348762926273236008312525699654343218937450779674452915427894712722894704464813147441242211665900810057217233044387008737360533164683029287005557200190699431998706454465506242821727117124592068124294810550504047059241052883574006564845472456074875624763472596201955416308086991308656786967875539700812791176866919496838135150988085209582767929487854818158433903895764802898509257246086253006148886286503065719865793656157955982572991894328947716189620569354672805441856350184626344267485715560888443376776775181119587963168418536391233749766123771258705575367714255354528010236191288246608468567360849341333119579933540423335773588963780531839093444280492270352162230871494436067300423117979682863905171951575052097655902730996709989020051300226332647381845202399769112952460615572933669965418267875614644743693887290887894259922714756326206666732908094698629295343111076243281643273608630864133864864668368334034117417243361379086047880568004597543289332721406080344475032843441146117190967017625398428226686468388170610025364990074317384700086148176164319642146091993738188776548270699793984153938974909461030806089521056237233733955299064854565477711132351150583518723974869707635229334354972561003011215891267832849264645292657116115146530034496144130407078693714179233116662476964087635487399017477537102018211428142144824621320489013665523144244134042877529811835667348556593691796255853153675107980671452796637458994210311881547454807524651853170218249967058200928170347143305649061103029660077886218643958620309126219537459319155011169133155954733941172086135358840520458592736046321982702240715420614033109614862990759081033133065914757495394365387018430653038342790401430598298810968662879396068421340105866813687700862550410669655362243076097486920666744068427555947082594037595454393281264615197860109409221003946623938100024885780821530539641236263035680445023302479433432134418808431469281618392368201869189398393330782579391518765988615852658830313054820647419923861166216919045975656253336318446768950752992586777308978113220554526893234119637741580704297917296184933765166937562151464881384172662171532362271080278418137745960978655724521653492678760880091880707514451795591893207464840761990517355858488913303280635078797052313167676931577373187959490721237263799259715349422416504918609591639298051537541530560108354141244266350884117088954264409770274228232128737818584813773935509749335551140624466436894204535523793022955699025688892472476482856987927771770439584369247240062220941325554943292326806265100656067112487799788039988221458634529591716662481653228741155327526411248966562365362717905170820153100267353958824702235281639972401534641220320257977808273135512050193684281552081855499751491511016991412711608445400907620830051416461882552963462036087371679019058251894683895404682662971748668008393029512607766929924069435225777438631812759679506943700156062505627855914341512413394030327712953253107118617480257722349489292521980974308952122314619576662075923556359726690767986661233291059527961018343106907702032228716252083611956494811752997132749730597835528521285785478442861816852571073997916448507379463019479486010937938364054003035089249948913801089313227030643660409213615225175033647591255299336234508746206252211615213453346405907315273240795593956003274879097386942606636143145093479579364252820760576736682245561277978857985090507465575999523325768019785164732223573444661249477999064293351032029241706181476957105077280191727166542272028024548065568292656244457107484434380924735583240595727928137009317949584280200678166703023483010740547421926860540197880276706177331169854901005325265807003919332218325517622195004956023295431880724870989224933073759045534887851895773428251250967651971856799652910171995101746478143027813335716956422319340757137678346086967122438121730798969383121704204911241451586221205738198926028132533616506332709612681127354457645034386271837391993894379695856116712668383393759855826461542797813317912057829123789989227627725615951258427540001446320445791065468667324140533658619184280422625821688273710321538212290016053895557458048149707951428828742756657075814826054824202210612037688341073437044616953135658473158464995233288974086138926037436545571031357309787030515797674186488333083334683061776199649533323434059168678388645247041275531439579402788421613759684918282328600669289116050761181598098057229676116423560905478275530999022836011825568757238788125858293421121206435351362342333545480003763735392284413374664475464899727153248706234324739394940743678490417272542657426758951827960203343622606184340654829291096947327758106315005802505689492133983705710619553810369925100616045006231958956852776338414533870921568787580321274603112849248871469759238966121654100784516651875999266072990204583456279634204397156524456500393326975841615274186890528103396227728680145702700318962787707751372895137492853891601345118147909121245542835114507476620614502078740552719831064913195084319393794051393560862448712063282330972563106568067159358712039921409666332251191044508321653543621993777585843281227230971764972700282533520236033469451608228728472752281846877737507229883391318768369026382449348885643460614702141015933553708337592611935438143753258368050686926516021319638590042494502607779328982929749310257474851915475821236842755637397781015150277718846739673439741825642715865300921367338800791231126616041891722846890638267871722469773414700303377094862942467836229172179125739785889572304938003585912363996896312161385831046483707963766267992976156682119846593415593391674446886200355689651840618965020995787949475034213451064682941891357624099495577188337647484493614890337338736408448766512857990600569180355802175743282237209829640541398491768614254113578019232843223566220125337569971038210371450536113521580875443258875177314981234159790077484154852468747186982843716427756796612188225898363586461233727087316163958782993815527341580288062228960322744791973151341958948838419529290567529135828470288997290468242178115881254450027577348975661069369938306002844248830408556897564911615693828782862045901715920661835559705573502183092691196050687113637921989163882647003032398559982585297372067596850212232594796092137013315436900473475800526697316366280876754686843154412005445181096396331779963270733270078424261594328719836710018530522110004993585898093472727826132452225547446633652346902607995201882984865792935643341058619206357658021349497123815423332633081824963302038636180607430078936284804945727476555968976904796307725843589609723556268852771769509575485467415631893654443452682522268733165858336717410453518601689739003705114038721607492565728669414463434281934220107879944479315289080704416783720859140380787192020468714895404296577827423277263006754826839257204742895691916760052052321538211408873240679725588369972297703978174778655445133936952804673097919875464405405015355984214901764939708993368236817978618263713774776189924213964754681521802356570084650624621258009338239375893985352553247370307268761318693261257733337290274919695015084048179987728373665255064027193614777325988089081494639422730754621137974252544785730656206162327584566336871604105456555821963228444258001613092292561169521705856174292971169937298798552686573679816223076859491733218637615077351715337805336399472531737904670385755272237382781358856453237660838981202294975179584990141689663452187860835838411893138472832576864873474621953538997800875424150586749780156015931136540552070950803525500481212312377181521072980032310175918378625405659625399485447107620238523408341501421890183896302766908646062889973158305000605416610521126183324563088749423761321117383235991026715443333980903010767519215606860915099297579489847091340484776037253316486633273997745741707870588584989036478250500607565276677666730181427983462997863115472471904638130827026950271552434583777132888840113322856123276424758054914145334004307351368200167103048967407913220417329365588638081990240250424758979906199739449424061393859002043745081712616036278391241147268209085690526837422506891099193767722077768737126770152907129682261584375714966534629615403528980698498199023815881324900728284203166454586451867787181771772779283212526968322976641245496739715278796804347658957612653385245739151343813784500518738591532963414053689484439722550801196079269028116229367043437115837195386577860034194671309665344253552356135039263743335590248778009316758556650202614245175520231051803797924160186816532721349074474187926304637935701957254656870769649025628311394908306598139258771657534329051829883074422093153945626718913650932778527585614188691505843112818062116453383461456499861027990887831599923320834970349900964482897361997260841303050161383437573503350269679199100394576485031398899804053476207979951035562800942711980771413862537468942006711292903794021105099312881767863557121288220584525902329882784488972855767643376551320983720845365197273566294540752078683774825993769508547458537785440151866870321270325108378857553525327422467456165530175294697049286034935237663193775815312691121571250545649366284046131575493234361611438689415519179552116040327941387040597365968287723555493695367249260335274498928882204488684436527515895468955885890718317292891292345774428441927250527684755038702706328297997585388259938790678996367663472636799709113700050045191515070502085744705320311342837530396450683734947465152543161640695883965696047762481007698125762324027656324714558678116653563357384133203756328577111457947736117758910978449597487134549945405008974943123702669160022779621516016443144632155674657986969134302091737537932953736310293482594184851531345770064943739097642085895731774231457672882967906750299223152573286983302634123352631634902064904297082100632648815676763242544468703921333767894896001251362652354725651702225595569986284251088668968471078726001673324221562512429272130805593262213072140936864354996898787430352676884922123183449241907637471574744625215974576466357242752795222891504064277678656611519193319181783056716465304813810106667342459156864174457688390624192018654102252669706153890999072549984285484195668192454519747093061422753151298445309182757715136118167303580932146032258472352811825504706062154262243245514468964572693823166555250959895041093425374308599979713700425885834030449726710962996976323360777674373479878835673010286471384545928791637490145406647519394899352212362474366131747830486884631516036592243576762762344666539589796468790552923902702010757218919138214831626852490495848675432931241826413466272282093653277283976675572672897319381293419430572396207232920071863867466703063646013311111642546802512289430533112509853860120123607044969978521095859875329303277162267982305510767692680002207418849030165005038534475971018301673782681943612416569639252294741035743185176583656034123276433900956511863260791733899126277207213516175222255241829612433962825182328696862544411862381233064034533155601640695747232038365145663557498734411685994161655182496042597983926781613148318090253450716466644267026276118597649132476829527278057032238343515063672177066376374024903046590962859602719797255378001418201998101813981259504234866248344043921136487236662920206393962884531448374890102608403614840731200674156229159669636694083603264334149637120985454752501773669601971461784645155559941672637397085864959877953242158328218410939164052835679070686421078034660757197989148155400542005107300962796234727249970112217781656798449194332226334150338567530824467734104550327428561157455387421400071928430177447314230098365760751551277796281014722053066817420350596794105098046656313637782517247091409925552471036812670513824675211720052849429521974886284898527787835621060048781271144063499088164592445189801044293570832904722016072696604619842607722478310717143909349289737950750564710538029161874918869946353013572935018732066873115017315310912967948625497958151216822075712318919091383383534471023659794480804712338827444035053467999529133546094139272844651391190836076226579839815642463829159990441628452768189353279135674740322735150689098775472181557499848834669462227119434351395727560933187767215742857830330183042225170496329716122968367527489832947231506974978874140021926700672065677292131084935729407635928956182812900110978472432830384651974375857368591230981783603031405282300813026631330413992533992179415764798534708178636113772001408570838639437703529183497403741835116223700401731882693932630875054875664529093265665030243944536227279170800381578513252902365105680962589179424001638714961212169469925442398674726206005713115387838833883078016537883877521159311944935956949179394057884886062395944418497289287230849557926072113297712137238869698636023682916222546471088062109447913239901540667816028934694282155062721260541798291781738248919973382953016826679061778013533650471886339784273533585623279185357977922662703802445696829686254911874868530549785796598918486218623748556393532156304899283486556154154064951221046610376548180602506765491340332738629416911776263813834785118364105699966094920204489502629446168466855106066242088314537401268779478139859577769903987707399417032565319355613000528143599456061261608322358990324895659567527576985324574403560761288607968185761977178876556198523752744722359927202060238916718790814708867068302793989768378023337579683748471679204205611884614435084238369737859482588497825952141431676898495921319389412875069596149193271147035874533660814943754697142919529031019389435637183593749148307423044934029596281116652389958110600093862221622655252976610650745271358949733447407281673926348622262971347155532936244457994650823197908769074458525370345709007744081534167863870148099674124003837808523427397788174691080535330509119443313873040838043067506030686269532124522901667503856318585859317437769494157410810572749444384001399152295292401680667458424696605569107697596987310950784518251857689800093942863712191016698078851710571144669507031273706962004730035675368235205815249186823908397408809264852704581680063915340134937352547150923527044161926572110042345848085322398093081970121586417329130532589871715885516842060650340556996859371591562193954595558557009347711681179835995842798195564356365309389050941964641889243417661217711754573714429402729377177659183107443058151531596094826350633655723861413920813075414610740512741348138890687520896517547286443489020150187201836613841728079882729582018977486126338360371109414086804414638189975514419051152014024187628978688233866528874956474011072459905537992175155647819809184955876752778280803822629818043941563979561725694090929518577447883651594478720682678596369454763706238206696202396620665921081278183219127468081453031421779867353368489380826681896912999835199422321272638771597576428521321515883717146485428812423122468402839056157796819989785562510271070628379399431907357979753622873719947845210383168668521420822019266723155810117372442375609151489386343666526579426037168289281580693159057152379480256619126870887647506950850111370257880233381801903021002975975592681821635953507064188571900594974446797417420252130947246191950277213237247025702961631681464762184643644651799535877759048091724695567396794553734971032219369455962778937791938340697253788415502062958387483096195420461546990222684347461767711319737486600087935443607302433663280865368473350668707408900184703067698214753133731542862215155131814095414979724670676343697696458309286795212019941406654043266683440819686918622917654410364920807857292423388755061809836591222653797288411120130691018576030498329532694214188425942866214695276880632082571964867134224698526419419022236241186339130284171844724822755723379969707482002437580371792180734202080536935740618765664169607739120909813494702120725197213699642344209305478465069237446490420888732630226156357919606309236991602782364930003449747123779455951240858239709946570275366759813304777505050536634574715516558372773100785781787153031613276848925357607846211478860351804029765696058486717567636659308748016099927950787178913104203849478943286084797051504283326524571886423198399932856342268607883443745309272893146092544299060787111736766959849633062177514884899337787867859785265280570548661217379213552124702395325608190678852803832422968075544717437748950143023150146961225494895338362756944869304674198022922555065087429772758076095106879827109193837142290968268728596321942836727242477443909060036804852784543854819955828743344189095523099265929588482897771967505439205771668938552397736092582090693430578986742357295312051485090384652493140068996173731735816222294455416149357871477506270376192498036384400160913611713729557661808926386467940279365670385305779912988573944783757639092679443336505496770742285963808721870399582714758000440222404214003303590360960548004718847304678286807740989832225262453168032034084435109374319499380299081241792110895423927096542582195848586679924115788447815219557498322258335674226798960098032009354865108549467676713405310343499864349758000215286835835721365978208435732604661260570464409200520643748808684041999585408697477316017505390253064903620449458476440882040053860571525182217793518019414711660086532948281060021915944692783460379829268818677784883782713148160668128480874790430234200377130896464781785599461837510620688441358628450630346441913942893762354742777586769014678228907006092683252250324639953337566728997660254246597951963260902742615157481865278192977983681101331339651625793318419407026964988951386923961261275369592060229690087420834720840833188415826838019383358973224335136412244321174979404766824167809635203566415433254150964501977910541460943749815990445792838028880133562481814072611423275972894824141887025957454934254722746989976877162316099322885042028070838100814091887352633318358420740748446573397838429805347106002374219987211762683334909209073865337959074928089283030107207550472450851183334676304759820661789998004462744803370196555021320441396423674506953708781697379969379061637848201169796270721270358480479488580658308963231288673402963848241128765952185362411256969749199057478280326299861231724793050323637705845698785774531610386670675558440682408910511818429025803298514096157331538756311438547792152983663838215871358824082012778384097362326475844352630281664756079993221483927156321249990837098930946329559859928728433521252427433494379023824949445785164936127032642339094544808620028353526261752981835525297880465028135399112847161281153414460389703165467739525876538384445746110351561641809273346254142217903310714720310599294953895958436885773489495225982103831596420623273071483716691798967444541841890372511272835300592982739374737571099277652356370360647348724784839684203742309758998874387876542841593565973588345060936129924492587467691542804598132815825872999110300780631592481722052213206010771492336601003182710066727266488949550942336897935481055796423771544954137177407995177501466695465574100801557934179598301318715461713838220333287263136997808093756281698575352925390236568114358655398284283241700051641990051764383512005756933430421802931523685411424059868057389737717209032816486238395498050084360235358582554618855942442612928921434147898267094176760452225134929872997435333820627622406331004883774527381188722581819982219428293676666000040379914870018568674554412319573518712379305995148215954867701054047820258539083335640618262225208028648666809763156107137641890902360603954124553570380667535676524726680367517673845564696693596022634258001555720896238403647713214296692193472420798729629861675796746082959712748570679034670391578658581112738257432519039782995445767430575299283028634186242545022496241979163982734904359411395898404348957578332464822165249725331811930555856140503105076548589915525542652886287528895545773678742029770378468475636642494767084854307354132840361634913471074468329858980951110201242544884643071227174886586964367223751257407663807577968593851823215803790138851324567042252785387661013519568286523394604020035673386025205513475307900746894526143616381246602094339688182998572534654355285404636104131214993769216302614831518234694209627911549417194660720665528440044356575326641438934277220905575184236912080347379886707969228398693750888161460738382464200081539367400188625730736953499730836725281014943043645634975213545319519500350764823703618453849756361633974429430988638719898808188086747495831760222984672501959183717870015464719437744024587964419343305273778617450245249707149907000518726929283458717863091748438785506397547781397976147102974805258930692216662225235373449011353986266028141926476293709768013187204140666876255459542229249384946271177550175862021378876760029805157411237809551927818159082066363654035686833244556620095160463375225688255854582920019306381533873656517945743702588756264732107732276466231522699379582538162507411935992575434703207518963927929216230912990259044551217209318966179934694954150218683377015220759113008886890238579915282639867824654608874627852622681424733188588572416651261959000329224404728408961960264923773072793032869835071995091733622206904266211379357378789633982192711117924375186838175762134729227304841109052893127397566546440159910892056359539550622684903481778340163888074775859106047358664560729940094200063120435623081164981455149655513005854611735524052167155666041333475875987920445592175677563283767227690115416492112246422360395403368455011342654247448989545996792036442429665248273506879964950157404621482511116740163812882370549267667972800574632906194561799730944487237467063062834619376926372843710250629430239838747180411277944515182108640001558475791284640128739950977629770826226345882505207818345760505308157127681646160126745615131039107176973845578732241330030005534719511669012581135208015630373046908093097927353658564913574711350904412759076490299193882008262173939592861233365729706646410270587838551318934657962685933047956026011545035967710140057993336889004022075384825139930863716343366007923712406457617650036410612205435688688177406253057006023018982911091534071177517124423703643637158902201162317102635650130243991215404270127303916604348528921717678005443537960268144769874794055715993778356399662100669274192714681089620407361116347202589862464744081961204033687520897010880633542844369252180174251211967856991105833494499916830944946984707806367546667767825383723040528489291173054802989310613282285243013974421278401082297992256374991861619095395092292352403872656334962447446903480575135659465046250309625011185996363024036541878244570740245894880605074168390715058032424183755862679604489403118420715618426638993005968351960880991550054081911609426156177996494555738936233509560216938453029407415354220170088505934108021537744168969765523900070011310946928000344435606360766131030272873892742266524989909815901237651570432773192185028448811193320110357105719444387121835232255486772644086673404544135367403990104641792881141327732957052332339987800916026700289290467003455063211355182259645456365580270462153147060321476780387345442039887757315364197294374658678276336231119864674608317162495938051631791016021743160036372135135506555681162767164832287962390037143316348095868924384711690483078965100591104965015992831438312018932525166768955897310518020709156128212794785768231503099654870137801420342350862188944511309174155201212503779765726305117588445579181661243191479349987937188974667677782724332922702482645480284999856755494526946870327503783940036651442685682081309020949057899622100814077366965566279789587599381603739294081898326023119790605145978038449412185507347234440464136333171482978197669866965514005181845419763310556350448849713422360339130058979717346782373472329230517388505004636025681998062728258112455591586015018439090409864180971710075461884773934911273571127107533095079036197946170873344664805241788806067731106455884142874312055368645075413123789205016418245598529170285529823491756815198174953565040453735880040973693100210161974099408857233681398906852305802152257830798584444988490026722154928888612925028852813527173780318207628086658198702133918612113360246187362649128598385704246054788599442082401809197362711751540474656341180486288643987511052601860076320866403208005880981246682872769158288851453555992972145134318817716645564502666336275157142261212702829023587031467862427302335998951338331069080367912289759223209005353398361052808487974347050510512429799469695877329008120707972879653583923242657673392144380470361706529595672993234416869309201866257158203504592227460113349178476867831063630236724355370932562694982307261863131091050164320612674246086791670377930940669607135447772041240171387152541478713374566022914274536828100929205588900795084837232678718659556212837654930431227464459773811156396674092749919903096783157044379273964166675109789264093117468241878846539287943914280719137228194506211199604942014167567514155226569328596939900541011164776752925649440428795835710036845090703458019087499993092734233237906647410746289811710104027788338214509831606137185058427903895394961345986945534332173388380442292218684824710117148515834710609975786976196816012437330230684469271055789326166001295993498597491718450334461056240840010952490311291513102073536606699142509744167108918044279263850255766220625664347056888812091343129654781619845396751548210810244160624449318587351214286010858155871519419397655261062478092540814247596466270191943785507186983496876926575171350176402003599383530178302781767102202449288655654620105595674157711590472858301654225614200548268513719162768982527266000770336835926768927117466145886443256295441705121686083735716597610278238848606701446329636821363730331746487176320142788006742493485684457268867825525550925006154697582885492108122224766822902775116822369502543987324561861209996738050145752145346770108025915298160421223116328760264578489208814442541782351787729463684916863787103355988029352879751316600965034502135008786148165275693425491575825447858789779004210159280113548097158154932538649021151389857756639270582004783308103193586172095928503098371977956384664987334554901336566062958993312667035425517958589534255685222167057206373166820932241554656528706208202685332600866580058396609069504970302254534936941843479918148540317521615318893601698982971238272732961881513540418704927348526265666408136486378871680299743419921840452670036155802038750040963721886553766105646252585967623112091455580614923744622486559052594146783412301336488120864513178145054641794164567238577509045217705499758332360916182468663731199597425637392431936836066334687888366489399770870992397517694293270431571634050583519899477212598612465956758031364020077933287978651130119476790122849334559372745446777306994245626020238875493090223357398303966428565992346239434307543557661485851861284466173143979975977684470929792773827647093562794945093757497580940229719554370143859221216058081004239743853304543467119143871226627091401261538446277366108865182715566402048997387185384279740871780398587857487216892636293407937055160183714050877149628160787383362335559788371360809666315218932287510522740371018412548297128568954164194927943850639454838617154528632987007434474646146503414460256193649389255719342320962385728409362207205517646982530400643228756038069773146999660101861018409083474528089280983391290914925830365117302996765473925151845027724484495376804763886401906348729677479902124856127316639984427361862308855173182399678817158183206309699648514729573723694647944254825014483727864303542669964431539815277168679844685777773176724214993063597651813595392768068710323045802519156036464184552722886148251459740929971994529105998334724104185420272085136054307357487622738407920016763466151090614719108133008769243989050542838285871745960020088457644825190313755480860179403410944189883726523194071831370537998352344375954898132153424084287482442809898880471971054529233998476551717751441096350331443841574283608079013413016396157944559087366278909144275984522976305439340866678264314016375717056188134506536372888736845773001897543538641536393817376290182296333049441891940659730575385121339862756462498470327918415111491211352501046851190089611707902188891880624882538422836411906558748088381207312323141344233353144433609656271921082476403927206088886262852588519928301333058905765272829571426194979164995894363177324749580959841491639960872405594058974095185184537010842391107823544795389772207975226175997379931801766025841678345852154531357858420969913069952099187860988612444010607411986374471530993510334286163756809485035927570474426589679566193382876884746673876270357798755596549401466289989209986971648540723033988839367611013303784045113078379970433116053326219954425770307103968439752796919730812802511262236007775400051308597498304645404951309704803426138354091344540564134101462193716056552804448400880453039649492973826865022745282299484577467343378675502800997560510091528866646587902625776895712418793158394872973887714835384248129311916831606013543029978483686352773120290302971077830277473895813465194275616066742843607020400238768610459207769656762678781970656061203397304722965481373446191321988589232186743912322415257741929078225709141401815695728457383362291885079486832949330533593193572091676364595581367992386963556749298651132482713946073162855012413231173726487739829651492342674132247288632846021041366966644267728104149594302767238763428606644807904842677191598564512608618704025727442774514307901736151561773151575005988399640141880497306997550669101292407530374958155784627683114837351610082642105686878635684085892011926825243703903525176669009238408264675261709260269710407047148153102057397997681579182981289235304146491987593615632212451682746172277968157330253255735223022968339827799416034826498569382639736059056232139294855074276485329426710589699458926421441196000845353331145040686537313195714843485415041517234706871596658893468794776160506525205325518877942762000677929174286295148036393715562492149219289945067840972054346001956298474409674862465363711302087381417548333816616561518511191134684732365538248531987858181814501053869413158042894105310850262582815712311114555123885490445347986700257077621741380291892762345238939140280529309686455602087074750296305685666872397749985911356208348594264702238540331396655512294052067722982107716988749068312321865667889253484373928939824303927063104601678559287530601787022213306811299142564872664971680328549439089540115982149377017032767620929876361529476102296386400390994665174286052716065117214013250959270559294839736129981798102567138533177106675033131782787325121501327837748650207033135506227558130481080029460517179886418646938301427222915794350397991778016490528277130295624570910278494445900502500126475623251401612039820325502752696951967074235168421191098209014734553452473851605450203448865261194845794673910324946017546065949133473564878481268188018707352591838083903679072721987136512691128737953771599527413426674052986058267277760841997469706419659029959562956055600022176378828180964658424294431160434101540324161837112411833413369086040738182186785929660060152609792043026905143222568143657469655420071610492607105516213629879300555912132665254334472375154831796125640786777424307070087662202918140655021360191663843859998861232751529035298703495321075289690611404016598021882803768053487149020830871917804775313608584141065967519604324017985891535324434233629910033903677261899140466810276148578721543032757524359320503117165170343024273760823271009896214950638496910029025774167136585044898207551353446944194185199121456681506843573075876541271316654235668122273722233387587767393622874603410636815651866493228134230424204001730539139580450340596804482575134055549046416335784381605886860227991791515677699184838574581978981362012970538786726606889518850722007442610297073712835694266977933820878091270526740228190344887810682804959591079430888100469561835872093432323304409697612377196896298211991687870983396113452620176959400345867383397823414732191382499749914065896773447434028358031537479848996761924969985182240176819305210022455108578603846905687663641289089751554366506561650619221818558606395256352043478945916167981232360574968374823438905559643350429275477260719321983082538071553885217730924299413144190263558021105357988665362641510146460711985598292895490755148136944093607176494262910340381718216143960417698528173282088210369061259770468314059876589814268531700310662742574082809102331168159759586548561781614606434476519302871734300921800100587395483454403762764601382427634053294655808884773746683625616908343097270069974817824245741942626077709798914229003500843321192397735909559457468156646947811010103696356946867890309337571102762086607087821065555377926088164133752939155961539106238153813148131766276032319888049792167796110491023883227506396471007696524744146098226259447672975844810138808410145215932988735385180730698100946012616786893086024378498607208280266924451098153916959736018213287944079223067584129848490365630343690870142583141989910541398522693075466950199902772011993438099809657194828591987672414559171595955750006024391473464999909496228073208901853177416621570733389283886391644137593974177979961906452774096579769282536534878288646972253655754525228031688471039269429944017744150565410839248185380972246265514689030002078212754945052791543698175496661875134783191865741255835539740773733416015611445281501716175117999639940611911008630470479571340953158279114969755061425259661879019404745287573343889299080029769877893086987339902732472293618765193297280946392158801058120917330356069608825523217970057600041590448817939229844535803797460712947076082006515168336564512412811294002079114608274243109520336002850578510317812969011196732086099490036742606578833236759989031746784188273762112822615043735782612823923583260235062150253881205038087610757792341102006638835964616931815750428606621212402530812757970025787253844905787402407677517611828280220570076803317314373322249720895322231769914830922918525246749051877165871928339145127222439107688038146764776825605199162428994666415868570033589710058172746117001313172720152645395750670172388733144385271949699753724585045185112124532376009243047239954398933276325847419966021261252980566184976823050412057268302788959012984790370101236347773267203908107116393032892689698589802760428530981257919573240805314535999506802816476376786162049908722050571792632644701380210327447578509598153769279437353995599069201108684572761587374741497813219922100979463616836883769800680193267246356331393619802284466029082574970887611612619391798898914147203605599369088389305805359369339114503166658376790682533810154946336850527021605286589896942257096353454924087953244983450152302310368334930834082351682915189641667157504762901953467655050454331891572657051498776384149079126728380317905379403906551343242579313304132494807608810469731249545345457856264329245753975443631106604365289403443842934131029921856386196903953622936190101639935285350105729932771839446878649027719241196947766796743216916617401837190656046390007652119611483507207555929101785378770569542074600725347546329875918008302027150297749789152839894533255407195166657532309264951394211425540451153778645696623468005001055766568622256559753200069485364386223037984856936822387490319549004916657833974366986091833919987237194725884528872540128464505663054723627109926427857024582922373042200103989251437607418119767998004961158488903136574404814727769349793351969079124128680495050177445358305674042673285789757264025168112914401728938893906007862203398066619650785808534824907943715105931869232064049673865635312813040791072222135766548218780519858530019883207194602635121427993700694070856559587246813655434167121600702677482923620401452985056021224418548337825955416419100110698441606111936134157284385573768224370273680210549049859651658297294455519182415160406551183970720272020846402043930729863001390554348608057272087118125877938449849043705292103749701001663998151949476294999864284937367525363175218833130871088807978839241770462788936077376914701380205788950494781158875639904502685755056174160558994625034600921021093521309476759343508224228736527388837423211347106010920493956173174885378022731466288416038867881534237539156003774078668328693984834808067071923600158571920292311134173510221745594119959835444561375619179631107040180474480380943839754826744551977505936659329500786951398347929873388781017794560817544738135591808299812498231500373506626543377645218316617295923566550503629887119356012041679383725200771593141903519272458016944939389396886129000119117055885151579807832197586364396223411559124784518708290402202070552688856767767572084330196215790085294712798233970767046678343101904313793909567418493179487559919905514096196893922557331938718224016540438942429761659128259606455657678962695006754576610574970349472098549641722192264151810279891105903306539154665967022021495454292522568011997322331862993012889772600548883051801907365617848724489615573216482574547538161434670840182571136375339420168400511442960030308232427627244024934395610559393307378279093954401080585108538114412665516154280952868117050960782891078997195299893421677946200201699898496514405533694909314415663747898278927807417117097798317152252276910176290637536782986869272805898815004823069790734921618995536707907033479375433604945307207964877016335038661247716798894046172089012433709581716007094122493621549649575492391338905213792848132560065407087219295204117451146578362108110624285418078166194941845801094848226063578640095318038055317525908824674419440837169751263837722218999035166081850378401036964191489110716279202497884078503577014056163478742264000063558174689957745981617176542473582133634390557463367004182631314361141816033296676296760016799420553340364035181666054990897216378910193314935297881620939541968206581906428364266241323705903925680464546366588202705763264918291587136360468736384505449748883936255634469025847997339724378268667920048942544022238694891720046655825732880233249943539810894646629386210678261585278995737113648254919496669990046514833047867362138961073979915734993372656791738205067948903357851703480156848711905733150307323648157543719277078267888498830184864653982118322884774599068233974621561258538266237228319698602520433786277355751555072010160597871217465069736999774885058236861823974059628238990617184581682396699394042340380271521493416458066506094255166330604931071671973308360331180912226728261653649177815454713336139513693578970790381291008172086749705669639627505283727439791628764864557681076979043877788536898437300360143129486649262310772749037059562142587514293266878284788078762847818624595678168662583026820364459788509829508925259441721135355859411423995153512414886100581148133714476205748937224169221906391313782811620178787608643888605065870832408698639465194511688837952774635359778005996422511881275601601791590224752139769106798632092833840600861021846713981186612051037717967858647158891191978082065110498720927329367444664555227833315561279846519883483619760801583131790674551241002086775238220655461455939748978692163232155531192906025885276633670028108500403677602024625577852652669770340069592157761564764259634743356471602185512767526489221675998015472591183530177901102148470226732507958525275484231626158929674912801498005754149289437240746443811161096891279255334866504394777647016689704662497021733473368079477321086193443422642160858013035024637111089416681026503673752140328243429336919373726378916898338751375557910265452952313728785719567272503523272501149088524011122123152239535668141756360827968894201993232452749115000568066190671007305621131256401829504993342817836112004413870830454117779908282985239103165217553221739083863377240702608516018650975472284511975391203976275960199053838294949822684160694237074685285118596668768797229864602757184502991246920648994694897748305050135197459222778942804945888936266175575585016684911380345406553384045092547795648368531413220672805295322177576799732975000077209030258510443246399340674510943312435873235986285879361322862400827815076560815539481580746263592719106228645291219548991273889934768984063069350153058083956513944024323250666224298765923968269410311308341511967555361378398542211792194114495619165388491859795707643267369745935938106687751104593905615875963496617956775816312907314395200211716241602363878096329901332470378593865529140518948540202174774349411807469378036532613139946208945557490603976970949550080264968790833922207730630331527199447948997819818289566397872623599650538450840226160712887069191795534834127291556345078392909554962176378094144760392676202991209797852610126161587127075355867886070133229374148009805349019787651172350139260320282831938137530461743861854870731522878960438016260215193217278125010153660955395939482662978500964721476963041420928560836755369714576744658251377926893003498187673095366561540940181812138145157189348521141376323974759124935970455118111351262638521822684142229057616723362217416385969594285558415266032581735696873478715282538546866170831715678979869207966857938520386732793631311097017509091536397157747854669238984188000859849849311591372836081341437393598408772681388157631645299040033170061435515871321048490860408630995545829324985126941508965889662019644103033569857578797191371874747941989023985576445427531759127821820679194009597944889802165519947491076702194965961007134306836058843980625029333392918050437874958457839559752191849939915665684207644401577026373497360798043894373233710357794629495956975286424169076671625974311702801304335272139209895910162931503144061676033044871310888930329252095324604243871580713741133334967521894678420435201200510171558881014072790337090139060829623257365434902251585715973438396432549682824253927771242235747636514746268630421600367373905728097415180263325364778806297783650316962478876630494658904139814536834964837676379724030131546539880841739693614258671793819140481431262211849010477107002065136340198655824595491518936088602077543374425879392350378338502501167727052720609919380261179501593818710043945478642611784251461725602723804763286997966113116147174598788554203789603048511936947192108774950855386289958503777799044798797681917449414290009803597502443144572163879873259333474843304573940812551247937720838298860465524871445206812031443287202182491713332412389413032203595572780514404956058136514098616007905100746445574326539394539164730244554090449359189950093007018061723337167982022317326195486552606537659624069393912796408926084161148803306464994054074645973148240396568634321593129943937077821600270955871259263938062653090637227159030214454082789035367016709815238983270423840016348101274986996593833187719507936973083569436728856506110250945352047041905954246820198982796106997322621366281673631229890562473777629237557610116540065593852372739150669064576794639205897165228649774345022841403508880830934461816836667371572514163826056268400920108841378388920760123000864027233105874037792368077723633760999633454914229514026340740695000357192016355410390524035290727326982389146458549806071219716833951774684572732705783001650434385226732890660418884113825083413613799619810169705273677247197959326117762234453981953204724407339455212937548499646212828779894759263556471124809844788635485768440400796454086534311784469866699631550715355346753318278942174905295408470023651559371913007076532061016462428460575445913627408024944264302474203872311368140350116491673880339796281288237086263147773710950925211669667728400056696523553312357273447122505849334210006543804671533515249182317846165102580881801644604999405884890852354086151838940436071934067129236726069448064599978077724922090290386244074458697014205902219888068460965151709482306000964657014364407668066372796875694071351567827990649079063277209044524503248575792807082252032623968335485158606931459783852836169456336186314956895751252054275834084337654387735755811332332244587416913044623332885304034168185327650796295332567196803046626222693929242338176147406217694381301816446836250602887868826388486228440768649870505438229258065848704040355625732567495201114319375477540770919620795371814882506166306925483188887162368525155484810807574535347566506910899890257900674711653610446354848625845329601116605524812366581334844340230338387669473085311468229529009285203397072972478459503263973047096928772755667410787921270676969147191629646778484264375541857569851081658718271514749550361565003713207380545212738607371349328329950679483810466721696131667455649838641066553851957114779798978040531315313046953559560125012230730135122823590308974131531872460657676506927312075405356228053969566709404554331001699200934016030151096700708703308962865869548111711644722242956459262470228438373631682761826381454527381901157150895220166955589525546220679207427677769230811522647511068244339134165002524040693302585989456339270364194407539781200821821358504554735215748043870509653774461478113468716565558883519727921318504550683553943076050369009362962387836408667012944398938544441878508815883750876290001144469012888129558556775237521659868493432422064333126591574887295399533862251753806821534505112447440946911045116323995851505755123125829401236747715157902678546634378329976843751816713246639546430207887683845141331311200438362720947289667797439488890340393339347714916556098784406261235812235129549256259585831916362448449112395365765871050788073967088109766912105133672021088490924983481410808514719793119832560149134071181692653771766948863256773850811309929392427973112696774583490608959014679711219754532868794910038496940607005645672377105349189064450652802955744757018578593533302534373141442053035818947250256597419922390085503338479296623707672334636290375995008754307502579639741502039884959037585768291001734410030163901748485633064220117520177885798427457959125026072781470357311880310825407223370561840398146430866701326413991073500244188772556351318020125185808148975409736973081487305408871737347442840919291643424402102449642639287357398240381058420037345869531070327979850229309466268069017927241787098062523829754926742717401093133908440060317715039883971756517156642506614086351975457345974732854603525770816379080538731580692280533069866107176170472318941722385413267567686410850693619772850880899912059322947870172365995791125474049023042173561164395489353844038661966783227383630991110052858370782496250614551882569385163576399303075590707409177917689600909421662686399459309871665187527628061216776559917910290609779887602911312938589553501801828282284251271767414232794377249083446842157094679010491342939738156593513336070619125183966348987890494708726441344580810241396525389714439089177752252411780220168874982430162373290165423895888029875750062831044553948727701249308315249497974712676481104179236903256497908621475914072338569985684899320722812683150370989919313076022276809177596019419663136065337542651454170789726564216949912776720193565187129742389742007742270600818331468689266029409808583955345298132643374294839713715782663489388817585285996432152468492022170504236438629715317037861202578285472396855010947264868652733936132705317091849608428679730630043616542134626766101017003598757979069986223205488026418532486292510961687965980769538976545361454574455400165223914248148929729381427906255885970122387283489024057385524642344391199345027206577171521049912790899211699242640970409416207231803949694168898542656153032807224682554245811114270095732327190155988537895755711619245963123390013892387272152786124203816814896467821416667587669182854585244394137306771464037343309404136447692935783257567547224604923772545306631226140550175638115999431970278836561469974535618662519921774758789668022046667762597743833899566039040362829861482702138619053606636684579151451491296624149189690080815398786558385378115703426603443048225501319786604767627111519141329606396129679567514855605359664271764873387754842166807326793446827374535661080150860574339919862152957878761118559244723527131690090072760229277857204073949284081028003889856654021555633375622291458982640581718488090352195923229845591916946392957967530091549871090141039887383479249362893105797115046206176901054689301366912564960764551910533627317915600645964827476548057231889471398410986013028648665616266629576250098178394457435203937949163186162324508410436164555398170233396828075408160676789235051027647052040995697148193078321599322556225791336901779370937542504178257657070596223970542412067164187424641557566178175183211009184626487177650911903345723077873178804849377654425394524714942409147933707351348787631457698510024967498296725718389578378464947863985440231214546407023160932103605559461954760831841078154975855244947322143893205233734975829477293697854244733192165853383175552249465848759397461203136817692491287900551784037075161061508632843344567384956658915034942405200789741383221214924671798085284634286820447027578369882865730447370179875498833918216443632043836027526113090044610037477990279490761245993811240516191996059651390077909634293583119034305624356715734095056163628748278205876154899881362284006319511195201780809674906704976589428203193245913242559617114164316694416180155240661886331173995068796437781553809722292974598686743643437724460225008217013149369918140245420915767683955013168181074034283041126865254986803264579323184502950977452013898055358194141019131984833867985554819940171661584883611814850491864675639177286330583746651251909951762786218221778373921604284381236585503598776831679887691766786403769600339672806404573452597520193285403903843278475185561475310226363733593846397999451197734568566544674283895819110350875024475420750117547265579343040641644816400018548961723573698765002091463124400680506656182113202933685956754722666466024686854200803926074056629829966228278866733064506550328841629388295625887554096946807070658121980508578924056678207301913200670603642168364916525631353776254830895948420536098722955582752459315009433419009078154671122572710798521222737556158326103023920531679278861411832982264597557653404542346104902957223958753311957961950228946050308356974031984824793750389739827953899206897189129627097026816017999488236851544102490634503793304638505980500689368850921596092493454617018696647022532619388193016821226484368777952396181368777350178398760142879720848366410773287642886925358714697839726188810338450333711815171148471575357282911137713631319778212024568460969777492196379684737496910945644214623527467527261285301800789573543032753550589002760724171082427797722732735900626663866696013522302560850972996315375782433792507162172074406333137963875171443926623811455393900438867851842471758753790306636660932688831931210323207235140907033605416575082209060337201668113885031468464451916950436558866152125950693828434458152870871228293140727555933699681210990351591016421256071107576563443063511705673167435289581947549521611425193110025890413452890075077583181812267074861693705113747405144794546197953017476006106793453483773940552135929988183465458679825875860431734040554601182336493553306359083224391666806121029285929309962757245031274894390964296332087307746715007773300833934315885963701244337695776945482607716097670861548166679423891035060904614604413039687136894886799835087804068064381621772406347917811916200629577770139937093439443217249722182319521253794132602753367456855860884410590851123027060655379689486119033343118293391087619618565414570968938743695706123428019773355738962407681631584433584877073360720706401263672416841255098300951381957688615124648660191044190004053873335671201528782626114531444001949050115641718014623553003346080217675891561479950371467332745815027281127211826466922555444131883985950933419623985945561184947674786532207149201414043587348389120710525816364490692039881387927289928539884606794699973386287843222510037432806665926419930608469361675677484717995553822497857465567250556748949309600038811165025990005993740173866604706262123885284817010946710138768352200253700490944667104755790008627486998607580100559897397752748532074183466193993789997610753993025114426156892048551972307840758227848383123586478168286347239705070337701551080372168639415071758912025235200309364453816100089088130502039169341159108232754929969978413544833229671875424182246552003796227904310697702416765482939497616404950028309838939426022430461690484355804747722403871786693491539288578630229892431436841730470301570109023060675037024472003326413487285601003219723656520159094929341482621229998231733207306487960120379727647315563630376092938373423468209183320342088037583199689240992749363529073564984723927517964835646038113180744527184622345859794497228431805274062500057844200483005238238751084855426648661840587880464120681035919898396098727131150641081845490455579927609435421840067176453548615105282475682962685981806029377282987924425294387085412073102529404983278917912774900315217552148825260347141601819538454176711806252183687581941540703676815615766181720477998692331464033613803346520401842615803902641825361857224684486061288736869992720274162680637666211206929034619695458113643447415987140189211660466226582661590542069763943593123662045528756034216500347360119434225614914032015794171185171542756396517256864538467095452483713059489858255974527756437837209390373760644875780538089666661399183963055434635153154818588677926291272536342628898525685446469814497461892414958636636719814006506858886086022426733798812768796940649702991545245272132575428195324917311506620858665207749095296510075340404922735654828295702569062935888169041465106971777242095544613025854381786304850806058990637380905430695026138424222705375354598590993266967332165151948172534532747333602744725852724539478578704905484758633115718366332359132347588259340641521039072871936326796375928473313161233978154985650774595742630192501361344218177865732684594980392574196969999876459824956709409559549064514319299753296990292901811334684918939731673374047376102153497902801317223379127998639147101057364580882496403779366914426022522432918220359694796522963241504625930376366432840865616023121610990271779794048244237437724217545327436903074926261725888065223326141060338165320932320266991087084758681985639904985750117619963690596992541043687532918190720041575982623454667270157369711333570414032093793451266060707990655868796161579984934109540903212436544310873161586375727374817450178665573793984866922911759920434224760064859760054978280629418739147496645660197689263616598289656557445804099142689094724970673522047011619153600945273632530666440201002320187322781976148686634898913273470144482032429311784100915283333037691119705125251189029708294297488398137149977805278164934370560432600535269810691898658868981610889926992043454781553574046529382255475792396512578169849867342182185312407343115296082141120919999406160101582191273730165017695811861903668977927569046785710181059393731438811929147494435652218962602863258663651901745365921218638768107774209158364690909165182739807531030664998062448492774756188452973294727139148997268407785897786865604872330575242285717247344366674181812327084159179147861681978003287524219464801193159379351523941740904190984125780990903889407794204672704915345000248604274553073068364722207589308219944523472145218428256209291437681438780213969363997860221263221098220773571441294126406537652642854348297069365511680672830614815535006779927342874671740836666020537292204848408702523012585717914569665795239635968627064590372072680587943981340066767014117658125223348104838686771740587973689615599621784654973073934095466043145860154049561577645616734472126427468746140830206387935980428496622472232550466095231768172458636261128483387407650758288956774589588736109519742072321262333556151933824717602181868389530067975021207690438838128356258145012500711902715651443462706481495059019699613904056079067372607241129244719947702838483531863329817619994731283314491596877750429032797703476193806295512384013842291003576769296985959054439828926666087801034405967055905207668370210159521951394544773118741072352794560844354946676079288268193567646665891613621404247856427926815625448506316685268327524656002747765241279427053419348280546267028159924539124873937558094012591977834653365573562593766808769975257460270216696492529983775381969384625470851886151047522647513648918833573818916971219583268100419576537702119211827256650889668246750486669965988504204119161533208988567238092601814281176234479558294288085813698860737275497491213068743742194301486676625969169519536885691174938231969755955794021793887372251515997140544728970839551036548666281965036848684661039274556841436359017774403875651208077145636487772844383315635724968367563148103943896809211928233741450761863056577773779414533302578207887933713552328193066778103474487881453302276711598246301467739131806469901714532318195729640171382993445866528104239029204404205030108503722889707226673204164075838352116255472935420977067186526207629467204363364327350566320411252128722589414997628046891485550759736146505117641257930283697453203604650615692381197213251056180613452134381768173276284141810216441341702491755843656811454797775195828066284424975037917477236204204245057363060911154840242699564336003530143666597511828032803953421054049191030567314210754130235793487723423907395938930043689132814854688219705348268064061334476035746590906564609800971717699575204375563545216850442243908278083480721568003121380513744755738663358066128982569525355723266307395195406369794691392739195092970992913488014867607271497851682702690507107678965765304404633626268887226274293120287517384975542143150499890745646121569554253570152014746265873588291544869367168210972638770366929876270333269267640511235659178773632477046116118752837864088038280136349041450851318295587380336571592375540437403660094312662493744735018369408835012318057025510894184693666883038062360436168998681815046281454399370843946723795281953032886060996315478054110539798317391048191798793376309918240071636953592567835866999085256828346179992044849215828682554266066694806590558837547674778900630307639773201191626441931231373328223641811934383050586585544982998689911466813117119421891601793736025759632185321048687499204734702994267871276133342376683428225657565015748972028034318032062448495723097390057150931453891843449438283973734515799805156259164322627014186206236944759302141050850281203604910993905368478056021662704636855257274132906042289956351025228475190703082532738499555533044957803309025927531635221809889882629115980337112570172176766904545680649223051574746891557171017567240354189350611288873024043144319869586521866760733038549036027746096354501952529653407030159703240985115025293058865671901125083284714968064894381300783718623924468179021621735691228872394802164846473775176818942122207103565559650797948449900827193552814791434040371387172081760903198856458746108109910593691774379471287936895032477418648580648196799561464367082487089936839513150720305653030078868598203607206699167376164147566542877193535910445211691676928163963645629783407370647882740618340543570774121613832028737879037858589327455361495644612550505547826687454455090886889469271859889494234495074838218501843413032362004668070019175045926284083850536431267686980340268115807098103458986041308417355099569441517991754323348063307326133913997978800038210913276601454961115704285802816067516233813538630524295638330950320192878164132492230047611795358249560591453000424644788062130246897865596926292576357402879940135692116755390400269966455602568297236950495909960271709738166616867800483272929905942810296816157469630606061010622671702125396674795138938137485389535175783294513642600693613777744000566993017402011366773178770446945060129226074969110615762076378933450413733651195600329078352359646532657474974352867211162980756758510838501606998969358671522596463057009139087628741649254170816909684730954886023329828880010165296280897698772319690742102700934888093445551218818833651978431853559606747635072216117872873563946565543427614068559412425912141707811630308010192587621993809895894305093968251827713033033492664885329561879526644631906349389649279747796305818237760658035402279669108180932267251426142876850855023403639597056214125151376204672244428979978554541319013720560029456706340382429917807512572448446357715258934722336845268000504905794076592611834046276469983532198933127117327105112938774627200813172632086712472478310369532505711668466933919993838341653013309247729429358470743882634240070132171320972827494796116356678261507156628250212520627638975156658513406045529010926112638166224236689927106490418862700144211287359239399825005658006432506075094589358500721807293223082461082581858746713340673344326805154756527611229009421546556183103412687017228654162269075744666374025785058198390337266853912834251138897761037015547059697842843812110416674964236193689840635613876227959545215146892881328239439636612945013878167659092925089753247166912368348275154607827280445182434537596550492568064853230999281451475345509275552779627941424557440525521882532395562508572117996353019567581177443676255097319751155651484513728542407490483808199558809151611793921910426190928485781613905148231474455310151615917841459994712239051659694410397272957411583397459390620500775807095967658989249614373434878156377442083749991461834513411785721356576510028821653437883890697229988629462268685195628832320570537894217895936784489997283808225129585737429565314870430403219543301647220458139790574528802074728588103114085879874721186328648984473405311460440048001118964742165719993115889037205900314664181261792091194088785006677801099918546190934892669185091189985328175801561496344252727420213230832626253782975374780849648620574737729805950490214555010896934806451097433300599798555320331318269175191591950065584884365516563352350794974414869955459346826667617498419319232391985849314290703397249074104335315507161857712844527045561514872082178790107580994599078190340768484559080348525612112446388323887760077256405950585761450617292910176342106201632276313357086984161133384335191595521993423910456556597310082316994799784563195983411430563705888413585723243945999371608451544322473332574743269029321113405536052609072416883753354361412870234237825270895382357658516596417328110042367022479426589489542002462779779309893450760213624171370310651327597596134899242700470471725333264227742623475663202251798424952498212765595113945681412700766231548515825735963353826717922669936333918066855094802896639701633580306357779206151292995868181602332782682875613869534898338580784048677565029162328102232126286237036471167259091116220744994447033715467171935579603406495721839913243157175868905635782011935622777763421623672475667687617220610152133894288442755463803914298293409706376846651169968454977492484216234549879019005901223071102488058804992082026734152133452619482271804045246592288442955419081544921458089045704939272983216883413429953682586746410836728468331328743219812300745130314440076835740244627809770130021421871235118844390781428645714867130316274381405338857603885294690507769112439640284427539211601124684855885908711120433136983355129831770447543952735118094562627365072134238675487816235096639875898907810584333722039754420498618992145343945700107669930233340450706235582283219793912107163390447845740649596837368359996102705598109343275457182265819162737640832649194463392541412570472789300121814099502881776632184985453085666790070376265770583827317495612091752324760127284885442229898679988266283950867894577143881580967550580114816329510134178454949532484743502461668260490860543498626070769522068457693088810199363886020569081016645051872181500574347274692400456628013524424290432379684768326499597859954187679609888240649742665229584406972977619146264897831510287400669792362033206040445354794419819989475253195717052085531617779164107727646139215711774029913555501516709796619652406222291416099722702986540871469079193291110174604012065208119033479335074093396733543810667764425162109106409782774039347240922697139986419324018336762578795166166921148570844034731109857718604143806570305811408965227990337070679277771732401960636690599023966006174759660274364772334171321125640695730430073871896976082625377840761689045650369641210172605511050631805878307177104571678917209315551005131262488507497125708827760818462973515666064138131857756923219422161698198183386159109111212964068347645414987489259676939155208899974348348251097717173347748490424157044765736574577528870313708739190721825057729931772042125966177890946278107374893967275333669497759775761401339096400599495991247742405822602276743479140436597750071174906872762693456375287627915386103348098692957428984900870413755216037594678764398436269591372899723772007314533667335269968366292608565705839038823593831189614763613317043665297644360749401649697173956600232484753127826135116274516934985914972842578011566354011257488383449578205475651348675253533930949298777856682473832247136341278156638245905023073398325360830038730248396399541840286629808766899600543606746374781759738593200109703840094329084825214860785580072030283926248148421073567689436508478291723943135377307833828620452560793714347989024775448000157389116577894911436600367935436393206776263021105215210135921546945449970588876283657933406061323911023381234789116513396064823273430276115853432570782259674566926399445065492819990540278815070629903621350504523173250136706243941061807667613786614145637857660442074924229269770349845012651492167176963310516767267848837295490056786572397844276311347324977198906007618759140896073066582151384491345615555711510845132159738291100111428738959946162393850583603232344208288145043391507378081863193720783803113641758373487519765079335205354261064839646800228318032347662678243897034382828567674099388012245584182825061658871841917739713484249557535536154283510624483282114107566096796995104825227942158706931518686822890659905445428976768340784284686635169507359290059446525171865184120454432711637452459124940510317749743271643304786104252035794032712103848084464363330137152901498842752377949834574799875281511965159434402988721491706555591849396373620235346368882181314372081349365898041885261814616685646389742839150595583703947123832173452734821361569612832630851650382152956508420824710834855636841528927797777756366598286215650221250746116759032116542096541470122942838545756721417389929799800524641816847334818021732521988211950351846705828084292711592599970153750974790079509303318805655801013980812298456546816187153857992812861037660068440830849839727976370041660306524614826604283117793289355874205593451881326476050299179833827163739598602358878513460926732319515887297292466770976350989467701402822922459093649319251931742859694152366564659951119254685886480010377793163073879444378711516343580868385509803616734117746795525054156963255517565930011098710343833359200752031771871321169429737366650481616228139743691943602197933189113714775792846048510574542832874817932872278710961589682604151910321603588677947479259298850999499049216484971385441255339167379832698374244874127454709620633713904740483607941575293633639044817954141117349362026048512012305360554368887938629144807879100525559893282527733543592470673999726922739927756533972566967152409677307351761299221420255506531429549087426170533585033317774602589152893788654307666139718694743502046969668750567663782500133665443412014978039533409484305880408087138695315898917544323055761484459929712872562076470023808833082557863754480673545385987638085847636506952673628098611990040267981130204610101944598035927435305744929624227377339552016915800533206697551301973113370391256119133054329794169919294829390557267957952817726968793291142577732050021476019969815220206152451794238984581852682797897974405416564805621008330286054730103160503201457405188876198453502969999264657956500190448278241738609540179103702546381436244525088702922663923366404351967800356654544364250362507952964892139065648414018273697145021452643164662100373809950418558874896308246574073342630025309949781559142128751970527100115710171637749883378795656865393442661195440774144399248742320604226615977147800654896433496235839622113531257289820135598481565702045748210917373786628025393070446554368897474906584779494095981224478743221866015300973454802469617267129477879519441513440173011883236744872044780623663700352425861765683808485736885690237092290882122272083417008979129256543541940782689930557315191699011807050189588596474048139046260970734195449422706775403353710296483606203275561731021591434684415539095659097465499279153763329473599602008980264079468292536127789832058536058561861189451406113222427128611166867250257033634886315857173971160328821238663749187456626042953189852087917692798532059687082732060772049087562497623985063918737880636107372115907573362989705665746883773515985230620783485667267399450197245706160417028656143126685079755716895080673861961335761307793385665294261178995576128220396278616303669765729274631760052262488130026201593446959933230130444390851414406961294909514351132404372818037803052701614745966697318233961655755091009447720112313016992708211043728483536465802279843531764876043952080736225958640787345819153105945582524031075377215743214571344778184309844749991891988572348815392190452015661719255542998753345400238110974852027005371147123897974701015854753862680281323170286201290386585144236448649286552358171372029388017529410102252028569118718607964501087652984253297163117441865075201876929274642106131317620308506790665882560616162451232983338560212251996132072858164070209062312718344848223007894040924391632745240874566781367355700397551427807392003435331321282287328689542061881883291418904239295829349293059481391941921015430324356744769924306848954952023954564550306504709712589530864100115696873272805753462888209289499803769427671523724690745276874941173761124890701919879296423247494837186391329220403340476272852904805702005887722635976788174715798214217641766434900548515322233513050200474266084260275811143081158773578536814136568366713391740316070565037908528432267821646435930151920709912343384447619748970136375189516849863063347124393571993453325119243402486722685096712244422809548620967064207146038923593401068440047536963864975135973583310937832600190925157443192037612293770890557454362847738453351375649811641233689229522888668519991591629961786720819183717347307006822812701860650275302983390146699957479446107026716111602787170650023445485265531804615279803013588943109664382224754397716230467646353180281996449375662371151160519787587083429214674980001529714109167257057969361548756157178235831117710135901253539556871274579972017592606546190059379608978461902722181450723587954842714991331503962030512411091650441966975582513218186178356942755406145597270535238267357110231808197208539486018220548268986636028695668183486685245446144084069521826332804876044469190082669676296454907545722369233274416649131955648643994588993387758700988054331863998554049323067761591828592874389605780464098420897405506832961139723922222697903646977678755173039666447415747265846547806596395648953581955700357971668912269469927151284486477227398117418148866331928994659470600892113189894296771965704861852768613423688150000417238002829767005277922765540848554333486168898497387186788618987323238004240096386406798435171625112697259246586787211070538015319495771649485062981579894694171428204216416558665990728619849384917548026958461964229477931498122383641538557038089789007613901032349717969632547196564912274558263541323414243643574594749297927856960776359148472801212182057123722912544332455660534074849518144676905895980695200349230012498661937621085005123644254782643573382132966096697316535354256247308090288177611337397206298364305054086194062218385024498547566872126006763397437315325783835487482440978097393361487310202390453380947415977664560313768110629892140901661232700390050502294761351885912410647065603129801460888994927862354781233707563735243212718006105308551717034053603307376301871136693532176984282601761121860063584896534143606709141997792464097211427449546989146355548286434011040147223008474005897193942555677557844039936570126377009233040177201570971402261897254902499639625668908485897750415713042927159289338014627628178042451243346115672917087218116986695871312610665581097155155569633481984422493772789984900169133406501392255837452536445871131537749642845154005364042185976909329790072008362962024673223965883741317529058662626944673521044260379193152110356061561327177958332423894101137830862454629514095817189416538188260985813625507028147207441010322838569770121266793214647280115968243771101640588292038122298228255056488502000903159908409669801425015995974256102202631836172557111491392144361101853384556828607031576644860576825091946215850695082849408530180664499120714286759898668841279064653948357153197916296821916428762691256721694722877436722690746310853419544061133608487163008322078153715481543546458370259485036167470707302758499672313280960162936123357408505167586704703228598724739808647326794039491393791308497363241413902943928457663835198421867634664301808689606921433831960422100947209843976665228225443683042220547014325651194268703971992934248063911831147159679288276590160658481161372294419943326376901682224343559260799088203400234350990585913929771576049472707702830957584270709136977043713575902026722712135534497330430506741037054407734595843092276937484039563820488592647043863621119935422550000256114497085052705009162892960498473983059770893141204198377018700063858078442617736127875809955159503846662074848157250182123540825433798202752568074574177955302589468194577646065374993269932888205395151847408514744363568210924250171052586349534579159028715221299536595915807697373406864938135614834686259397425293493723922991126095352789014741520946191693752339607918005888183785066885788221740893022376707892649055901783573302904986104756624088404630174420916460792765924033500521369750536665803340501312807124279897000627372915259070166674643724566787432560019555424209445336334393919567680459087133098344796212966325811637654664808900711247402815156434346310814453273397154323345449268619307448373532903424290227063234450908155379512377571610492712179818535358509941553871821944942708611496926208222831105450526017646944214984796916249383350864389979794372572585034947332112364201564544595832321025867338212082720110236171813291628134769361336231630005551854169945123703087471769347530638094914882823181146014847359176501968305714704713971680541712076085415277906148408154352770547111386619355191825554967376875375655901891589207674352614885293763210787312387572064840823737530328846402348829287586745751741196425955473254712998878441337697174478289514806062975015981041096517924873725424158606070926343451122180515157680503952320798390703844559080248976751242811186831122353594495362332805156428450911638253284682769037798940560973049659821677479429060522906427115409075963049075004578669480644240791416042498973639622383553426568824892490309401353227598292267618021399446801899603206758034293979479500581123563398697279023670197762898407331986142970899455340903726057682234474886920102976488719461875862934213170932727776916518710024989966658550838113356789617481139240080692044146256653829452233915516045948248702775240265603080241608406335831049915931308539474269073234720884119182024847075732911507212454468985268553115998511179393810802097734738174933999888973856536994038759525336217482394715478348005894603936659188928996217521047163046603844441237345091038293248389456001298364934173204224321656427582862696462987054943708647463427711852938248043935821601986070062171196591832591807574493655660319057421033069753707322301404429391360729974231482186205712797240843229742225306478470222877289889172044541364168301862059266947810650015772730346839982955110599642751983442090994298239413615583265388406852983750196100267432796083226766089824373992304583819359944552036471095908251899166291593196398638609984425245591944423740980765055611750578961464359199255642675963119627783751287465379652386652568169570032696428785072018471660573792272520952321099076112702419491396280748169651494320431930648996967523523778013360171535579415272267440438354774783461541713610807197104730886023745031213890081325624317204976886802282925502433493959917827467695941155443098503616431316394425732596746141758066342449250604023220280294698737518293127065541377829886195848109350266364520750931961525082015023951281069618830208378779175314247378006661366107125561380956875490976302248182547336957774425013633346505272962419515030700162982343399091000615550249467371288432197235339945293806722341962170161634329247937574459146657715626682851107920980138236027790852490861406132382047029603361421239678916949923423217152888329799391129466525384726864053187319793226777027601787151571127131902216836416945329045195204615033553473446978714152244708770708456141208314980110666716520746555367187872873746904987162762468053085758352280419199560732766591756957730028792070628730635622829071093172254124410289965621943930339359793127298249018850599820753028058182687345362620769884288389289635517726997755270892807119838327126416498135850566092974668194143322037636016031702386454010380419337568874559351238398276056529937969463111573623676580351575643680207979098069735892895033363102750947847813570006470316765317984374893859319928446797050501465842227782696067591977743142284898346229638095752245329234359223513044120345909610127448589140505827476775911036197187481126259602724586676557147275493941205551336228916904263820835739952061572394645174449899129702110657095944985564756710539101364046559061659117790624364595739346071857771170611184517001545450809988500405931558750951206165545631462007387394433274391565408222265516671149813613507373995489339174808637419664809327817100263955025914047775193472052693611721552919289489112851231256310527709723493867708930988562479735893275980846342321851624985305036273164555086002448011287948708902187528734539294131614662088148268086141620159155491220419860259848860991001008935521986004274340573101214273402947594356726977628542777276759795406783215499987080260583813286902818386210006100337642379198001944237044206333199893214651697433457699128223182611409070898614415408199147374743368164498243252660816669669733619695332127776912977263579843015097108158562779524101403121972539950098548370069915726381749334231984170867848596330912936697738356288707840800239223578231036122923133431387087137560726479553068785676787614086797853884183975085046835092841447196834356692453914539697267038657031729624183897923545368707062910535840958625288172928169247104639591376543397751033038618690541627854067967188564523146253468346430020306636243007728041839150504839977463906523527004766822033701569158523770139905412638347648466384117910763416394509626576134524834091389875379348887108440822515024794471987688839920035737926073657685493015534302684384838893140272196682038727684904065078641498395483862399144327100354841428571466367581410868575684974964249205885698437459468657448018493422802795823563775643882682326241877622162260709045198459326773477350182854360693935241658960117450737611406406895988292994464538186860664747288899190982296017892978047357912479632186915368703655952944433499542516058090830492735940881012512804591065050476649626758222413393315802709420923435482413754573059087156567567670109209505467111783773210475976697943635702499917247764099099618422342259389668469915441887720946530070344371831157287057320673987595782140794073633423608496383233359179022771268263032769487753200468018475770539434300795119666775243961591663082780839590538322951127233820755074415307889777628677166251881091187535197330098637717478618815476411602223903031955967898153733333258298360045188973413138579600929777458806142401045915014782067973943636291993558227602367510347827556486627121882555285317825358601035108225814502611204747092401718602564690068461731767990573490110072728768926194527588335875822194738432083457863305280755745493828952390059845682729141346432348817148584606783059482601453596876215967081249553230576378156493445652578255229382496265751170749498866876544103827053374089892104036867736560454285845169503140223236337570264179657785208175448924655709924081323665578698526453538880111889193286251925922213556676815576092763061557593066264739260898327834768021460555713159391575134197362381437944978888581196334372829232196632033578012611307701085721598982028012452701419440551082110912628261670708062742710620807375623747391179018806303915191898251718666137575727597103898114628132094118243212011578288178755591908312841658981012959939724582828850347090530282922251789724313294878973743215073413895319923645094033008944417799497855061146956152948565531122294623526306051560149924641646941653581717906597534647747475189449033886376945491013384753795701243435328321449298275732064946005703587974137284730855685002414057806994944420965645454206704067126917703420558935459214751399465865637953244989394807296345359598977325035224253669755202625966190223911374464701515637749468173440379453288595394926777638755908647972478088680068172355853131435632975431766043925383854057568997429850951712778248854066092032655982812701957135642813925406613098387251913882874323038507006601992157068887156531369864586671792836573552565862718814401443171436793748105969137093212168062424716237296617153934399533680541456986793897178488910159860309541293529874616910919252380974294455148855831849949859479590242636642554865556331493468935615034148837488463129465300565980746769773601945598152863062761262676635577359767581138421612373314597087298604713841740124888891879713327363626251131133467653762929984089037789520000853939976358474428197985767807210489634599077801542669717456754261723840220327733647639755175491665338447273368535249669156297692483436265047461988233594559385423887390136417704694539579811875271215977684425117995807169454668617498200389141367574252951992353630286409958477380806675941697155808335426239966791371918119745650950142157414450246559428230866854834547550417532809049243969757733834069200365962698238063210584211683115360806396000302983486986250141895196159770985309893415906918264474621242983607543464462434641837589126993823538014384957364332358908803400365035629450989571731821193875360604033750257331182525704669344702757566572460202434358051761798043050015766122068591071191644783678775528755576514955386462900314778433524201822322818628898360499556710094713073625117504656828874933451108004370570085720732275083196736841092108726460308626987012176044090402806979491118396436605218431492307351631588904445480567978322555962857732503063907386237033313393794864907355954685179650429666182553105264598245173537563250283739435510180592720530901051429092433527312786900151513055874053955359526490302813127589266878502683802775398087841969542444707598265277147636801344512270464696586160140500059813554266004555304125645385648993160312805596469709727717647751362379318695356428514304456301276104282649403679748029330190134439986092840586881002688832877860690700575222916378845954295112712364162904172492592870335181217772457206347444140710457987011683486538940860879346428858140532372205220333882782491606550751428498895026730473386894146657715191706700715462849334130545953261782576247455778605289070556812093921363602079484001904534822717501991998503517218198291555373940524474881608401142868298542198154173994615194467566539911086257026617289157211616708612807864422596878065405524084076980926229798908974388648718812412152858621071441713146827394151245402315271846416021045875096948375943180736202192937400119027475027176567343594247367066180398677673056064018589905357512300230660837087116869147579133638408623253843492671860661390466843378796516790070950960770044545355631362405135816161738439970087207800572797374766973300019518157166514482156340621818656955569523059973209613527960436084916464544009853402960861674533438096899823943693824949550947169541670641283942451714126019162473827086697693118069609710155725814785319462574614535039762605546512543502145241434329824924138121771320340323718671520627359281633744103154710463963111770834535015448259457608665977571739145766095877536672498405172457008259582124548521961643789313109882481700384223320632885004325420849215944237347069301246933339188876395624142540683244296139656862403164128403058782564652342818336566518958550369909432595309425060808246841425531437037390665109896765398087358749937703345895301949519517021752264520732036027546394131137116116222899004570802847540361406381477089041361896398146793609058294820541858067653745684521520114145135847400424917141834979108526755786923646084051029640568547162911479605166051298601164218923584706774478369791634369220302198889638490152417264835108736731345839534421502246261553366336148347864323356138053007496676208428757530744847676122129520464026842561574021989849634090361092184760431288829692663808182477416243214918051745760516527671485956723605854481485440213290753231193378970542137669259894146244375806251615321799734696371796455473353549249001405607436631064741766799857256986302528399444346379930518242598412579835864959062789069536518549591816028252311296488624546624741498780234896199049347281966658307147577253201586835547077836728257562399243554639377454477973382960292239539101363924842457990895204656398045121789111868368461117367495659523732158831922247696642959496940073685050284037768906265808500246717295897639915288552871279469207921220672013205280939645226322708682212314758006603178586184106934504552579097773956618012334187417941362215786050078339034591252524540485754363277089363734813762506583880204845701532917287753658510284304303738094645827944631703476961344868288054938747420783607209181966956077978078659557407096044302978609309079720730749607010815586850159480975343530527293411617148317473396610051752170023014799010869034522977048775984057286298941810215296900745556597243348361850377715055086033011150531761641696187723661381272278710986517345203857378730216612722258062394563423895118271063899938281939468089089171426867874887032369742369825435588883246084582028402348362623588364349326648017559046034282151721956396349530430084841662178271514494595409011794488525950494726556911945792036793654037611386749376191352883897654886121318115303047160619686704364428843498822552331296875029163545865426866088946046929370596495128448974048567800358527040399356260489828221525557199699352579454526174074327085989113001429067140022594327469021898299517955344274871811164211742934346618581259577501754135341180155914001252399483939017661752161192300632039269350307440800556485321736481168158330203170589764678232920238182476764490923997157484669006626848707926979745436105026659791718725654581872259956718471895396896356398273911694540082867722083973564852019605960672645551934292523068186375946771657471639851037580102664513149058946532011702593902980926721553261881121687059584164729322719691537323315514987881303473988948962542717046310852002030893497607474809695231438144859523362875963931570347642900052519090875253165740792449294631761411281605006043323678149217024471810409000252357290745094008754190944850132342773779028203768777598838891022428946586307188578363258401140040295820151572777505522049767174180652296812814453596307746839919743615077556084901483048815266226168875496803462833040684967248845831448961089841116418534724679049542984233687929502850535622738086930362906434961063890273423981644437129896752462213499807179098325385375182451431822981701498047147440520820677173482930757424460717784725245946185748904930509650979539054225306921236070170383791085714698302257724852517384591456079105588537047066293052686115149625701677756605098715221893119931908608040958932727146520031599118043637406495544985222116311079240253084120858743275083025736046735590502428762009605821782540707253588194242748229061261156506709906900009646228666919350261335698044849903060697708791796420344947066473435831304985932397059589076521205938976976179995460990255750129252950517564633281937784817982728921626883979150390284154892848405010183293430169393085976918820760983272888921135516982344564447333253072962398579235645767684446557407881847532800320620409124850379079033696967998575698548117548118386688492826248933731346365620962364360176047562884825574687983523166892032758120831192672738707762830879194416406020746280318221576402945658339747608798691752555031704962919619171215072124527733136375472863049900375024593485960032115144992840662158257436742274475501063912224218890391206885714990281250332229301019625987938312748207951457466369086901110213105305738750610287625824804729782975970378866527021744112460837370072764091503713333614971740090516021354287018659906055371259092989698875726878000679158690910845740780273990101872583402502706752349279084556458472338387936948393212193705663102735811096309442346293573358743954610171509748417603259483536217516712490048287878693443178634077789561343147653044727101587308359186544227533506094500454270943829595234500617950815499122260677053695403470872316703773580038588820185360607740785920309100130736686153320514309483297128610836602524555926973266001032976141119174374276782789747510302954650308104060484212662927492258713195804378325583814279728206104671644545396678275066337611956154718081141066372890445086071121650660339892385555376753205387993468505034921858653621561162560773785078336813948450925056970346054311689014345656230772431780451284414990211879930904828898966619644774295261486897574573204681701313930905117056129681336246565767032752997884256367261046845139557876174554261407949927885159419323455730645855363767666277904565194687523590507070290264235937689217411258335714398554727179693347166990452457385765734636323402095801122354476444172330199688759484111588591938802652082412625415775923953557139009940619257885762438343967082535985086771745203064771259716871629271981108722640716731620311995057495353350785579058055228056768709400358862145084193945110212966418030102507190041435180262583918416963342871083924470112172842730327747013437984117330124469137759748817280837808632835848060410924220865767728752209963240080429944929304986884989845824998371385891669131411594805379770420015970689347111831573389010474647987808156521926441124175366266821681770769432381466336419486790863825847134143907867852662542025507987500598344208643353203403385407169700485895423819416463202364499218696935197625148758953644751634449406416198941671134104435014824843798746391600097858007148865413513572346046623479297272831424155920800251034678954542752194241325704026306976946540161354854687985714429486803039101844108638904144811237544371285330823993732836681962313029569185695856627411377033885853664622747193167250336110407331565700765207124240797569995015171682190064511788702874635229298088187710072903397299225664211305601375775977190139941236326728084538940031909615421499319261336411225553601183662732783852674019875478187635393573394928471029582528710380997565439732567129487558224783626807452739034903745390658115194195726455858788269618859947491839526549635447571365041228605931178327747043171702175554273381131644612205777914607365779146307623015698777942799470800066693339080866312852037258042871394552756934418643828321630754249357674340668984292481754076245634843585997894799507358408972112726010980185913187269858204360215449353734228209983215127996754771510867255688821989769067943231991850034564659754689420908586518688541565005301770434777447943867270393095250807174811438806676944040880337002762289229403949546456869467365627651215744427275561854727297092316077100833032761204644001950108825543666118384017506433079878960184957256409227026453638384878282644377846764678894521861373535543656377606476678170898450543551146912314274141648367976459749610075175159580739164799319511126936601648584829390733187973916908788195618674358831373515539061314098627551521295444877104580897721910582763398947484910278339169952254377681439407418668237567124423323514823465867649964519452476330870536440687141456832606639769454801930943710086795751239891190608598079561897702861704671402026390040755211696790396797200717133559771467791845713611149407966712462922999331477634216541227783574825862753499006792111978060307885749546973284196464487248154923884504168748844032656277470952960677481195278592514810702849070915018652287534294183631406112370858732629402433909819838680897918601274620818939502098874883195920209202041991431102432886184043867214698447218058827477611885531433454775949915708112154724304881109826753085018792712236067265424722554951167783499513760704930313675989221645767417615608894882995093114276568187950445739072603866015581213816955577135842043549347895364202338974649549276685353620131752865705505880944097716682618778503565693248837006191686881325769898892153770164294154770352800561194842247298518748777495354659986473128376681023168478386420803571506610437608027590099241762684102073191041168647523492506036456386777296180495366105618145387474536473562955760076828385002653903382204235925539829328419394494205000899887248918062112870490391300294855651474954344575244822871583406545423074678494274930963470015143263124161298211097657797808646208963643472088059155364232264831264515021605196502658472066706130120493386969922060721205507484698313250445679036197937511451056109940597227061024553164341842315931353905307277364315636726458013226763772668618633479296099412432700177449539823043204002544985446412582181492056014921887888485004281841829538377471703679191289376308701042720721052793407615909556056902878841543593704129448706773764271263821528379114630861459968813851549589693494777530091090895645062887987494998791897733005539554996967223113032996223735743856778002884728964213358326697472583460615280371262743221724325293392575924924474115450585976031425395401902732717953482453447118183267533772568831319357002083161783185793469555062509874148085073837262014483584640035336912705562119589062989355562779178399088576495624037971430883909711102642258974629317668967223404012789249994400301464679220203830421619880771734664735164681098205658445677184987499742916295695277744170956312845961026901454223339536443247908988275294511632099275307499379381898314756794441245959637262578848779824592170128005575802716147579216877302876772414278390459073912739294267884385771923968052299403405334707357333451836725155426582639619999309836730795037244868646114937304957612941570707066203289181107238915527538336663817080430330556707275261677419463060608701555657445230874655839612405030148057910614581630901314898861882107938274751304764124868278016019084967844218901110183925596780158884405085393976838736014191230960600868884840958759093979887545712509890277211540144019262217279654656498959921437569114290202041111579248731265080755959728472786996827891626827869491152476745851922811086526770098192794353379135535005146898579382371388273535727171789383014221648571714102900699728235323288484621928112894081707974024421905443693038017492997032084340110873321114536842359999320908951566908596491522776672296396942242423418831803521099116402806434847354437983200003628081909768558492561175239297741658204184481090895126836470846247411739612714881019329455867381943250861265358837368559920259078153960821287907306065333544905988347470101680869637317737325829139402014992329209692706783167596814766966752080774826807111167849293584619841862617211092532216068525388159185598806277687216438183516049553852793642109031310360781624389147125433165370049295435731311918042841965032161578090425201331248560532036085914481767170549766907392764895140552152060925413291657024918171664437203666136857876733251108285903819215447665286225246359219175013034284393319549122972792697639531748622320787892026844508352041249612609478597647640505134461645779957974192093941387311276724057940541046207559701574182718191565611832096658777408146769169774837664183860817525478596851524694807752817906293992706525231293089486645014790454710761515539979963895457354995616420964604747459853772405194520424469515511057601494221445985078562898005200150144217236030394428342444870888738111756954845868810158847305082029360514301370104506990268158198945951504537485723487980716132368998892862049934134778445964826238868934495641306886939680162402256960972590583690359144783046409691845826547581534945007765160758195664124007433611728666605780640979068506843839086550136603417156612177413653524666292403852731631584292475107182073761997425700526636287342485276970912414632604391164682571938447497652741279128833276475340045879787567219728508025158776549056558922047149620525210401201669876445381749387615396217620998186695643493775204078670455027574954208283438265272799066404046308555601579354158018388708877140523005777747910133607583463708160374140335816621710523779547780310828789311389894479586116939228137724820976622315374165551870724300378446838734446101858764966248302353552906856208893670501291450337471297708298592055240518783105621652132246122880034754732559325711750916176594166482394972913352370543886272408483705528170029629809058650804794954624582240135714158490067330844573881811967445142911521434279392699655622571986439196067753038374686672221703556890842503483294766784150367836819897475626360760561739594959045378728870880119654187892476530782025541234215275554653752784851164219300210400696015444285500717437035400703359356505398651785707006582099804195744951235876447812486104147556590450055377874542573276631373882502017264896961612910104812793263745673134738711663877099845420670270029601117226376272726745210181186559105258614533881970128991196384735029017400070680631462301308053975457760287247409909750691788261928319716472128495873791803549559085450061798813211982114298258375305635097899123594054486017902486260767194835184423490587190753372944339592409185352802957201038394209623342775620874772317011752756872410122453028153879584509634857983910451921318634956903039125641139059641254019436292949491921353071715344840968420710642282289811864026763507160796935047021002318781098561356791065930660078977625531978982500663151562983354439164449258057007801061628032102201957047579865658116809332423000560664896736948762426172410119907596206943468594040616410905711553454537680923271287235399907443591953983973721101334949165692714299302802031477456050544661845753230590170786156443038197017914956765394045943560606605070173938931321346258503810731950386744835560194918228051677305768502688432549589089560814199507525651893554022636610084816146203865446477107121879516306983362021407461243273856073300741729085341371467646620823326530075778457801275507872627830161825087008428187745332078797789429648585975819284204996482962042735407338531005469939541254619473472170399527022703577938585129683664406788983746565636135444780666838466976517661499961854398962350237176711027408909193995831451468723612871384972420690809504422367855102876286804251881635840261629851807211528332237580970905745356917840193816002439654325782504544519694034884092434085789998277191512303094738055403082315560818607161583433955617281063733110606015264964148156840431946235604363017431750920771304908868560472738551730953808475014486517604975677360783315447229253433596384563021521710498738592531020397895814333663841559299255089446027807017962274521055506711913163262652799366963598923830060969816001670881344300203911771916307016377800383003711264182414601498704171480566260338497751756038495491915791417929536849597062863297174522149452643640004011685127587387943486668837572288996134299386640236405894482452912428201658004781669418478063660478483817618565155840174603728978215856590831489306511779198572317164764724189304315319990881549971377420721011833196861968494405184713480510376244887581817277233442721570874000852493919493398103083199952288542626308518145514104967489642576817203145774197605540116651437193376372188186506524854450399937660922677770747939980142258086621498719124701387469895676580981634240795135703733486839946074001483818809109122785049874225639471028589036178924869455199904917116231709297408195172163625062371420825261190713179187638003738209989415516736290310549402905372537989577370008817865887049043920910261127811112935519422778192147007436373735190083294733687322396549476329928275318351812624007118920345658855468095030263042519219879777374432637260928911109005219868755372281053055764147614824639858637189772797761937308767042649704411511412890062126113885306037367229595816117021395030074141766112848332886016736716732035880470158024784864639807999576764707923310644566260337307361589922617875267426013536007295278511447312992791452450623340290963971759232197958011191466992839606609054620079823745212245036016910411563221953297269544555151828409453955078674040937185323660387796280514312676627403643982398318817605978528134663946956055581184589398070501135751682068069489438552913508828544734828151760971542385952213273086132204129233077656558692790957004784303955681994015964223359594550228105654377995470862448559080037069501560801930721464897267316393892553815995861702205913973027090063858841495346162764260442837389125191847819850025498263035851006341034437633407334699031270355830801124354815866116467990470409954792381287897186780109815204978806050476668203662967250936939607313669337472036724300318966620499750652520175471357865734643836467637926850195846151069676536390244748995432199723190611693296228778946122656683064351895616389957450772210945127991885324449376487789040544224233470979587265217693777637079604073278970245582953869616412632465754921044812238089336380764949967196348615540609091415949767808774619122770828684460532572718019232463199946676789260303597957811827900047139409217193998740760009997069581634479233605106166460077875593954578581356191179734847242756439544469001853703038899472199830805883405836720473010593371645853777333738261881997860740674509062922554889908344358447071868346283907929470801169686394851185081164381346028123477126650093708643498081061192511699839069112411278849225010740467001002498755498035240563673715644048348352246102196750403342268090196091918367697539184488898103076931360368464907518519208998079674849520642528150398821992945016312244419290790582175500212464156438780114736353486032318176976992568862342243651161413783584860345729184564597310145801442339103436619091211751414322400433814714649570280368174781573399255278767581363359753605595393840176867674304746201122791642138790162717829363320257354064982943159500554714114406637280225906499077297215318483539621059207509481870223099482546729701848378246112123226391943500731777620066954059960374037654410628719241786662420882146482782794381136197446758843595640054338403532921278595748814000737497083250483278575562787738665283977888843093724219594555535436816532937198863634368179075180196127350934580410944655172588496802612101534669727381161498560713593318421251782086976441366280313195926629980080049993801799153449183914186001491765200955505742943903063235405129132722852895331838612800900242018592068301245576885159986036670882144036179949757693010158168404896369505707194161819229869985461811066431624215434388574483433888071994766742309255414252204646132633302192541233265542251790039623700118772248801218997398674540232783101115581388876253275234665649792845609117583939724769569229581647917057753460630170075274314017131409347082620758055636513836577977785668667231433899715854051283817539517288672679243351932427944640427484557220427137038338428243358563142551037569101814745835641467895345086856290184867609167706199880065923053443639571728250888425996639289712477574013093554392473324079182045553817663723533222093512540132481590298902642974259278789454750065499469212124666206626082143493200208055224057223984383044936328281922845488932895874022579320820777499212636085911890296466098389588810029238820492462297133229297037751993136100980352670524486853226374478046384325646301000814486291219945715644790099446084293682847965274461276533324488110332420251747386222344906972367553788033995966640307214375360233103696573323152377229874426905668961779628232189871890962510009667381607994856169911256164664511017559716379949948745173586586770840471684474770849909769979447071072216462801394627545923362533618584457602386869037340402342997958662188971415880457537565078504261021206974369709692144094113468994263087437856931812699404387145948959983500248233904352960214104347987103068353429770829833207751807152848088283370145995157366923408952207467531109020004087766773452083041072554159390052576034609120814028417742037713070084243715867293605934806649256089060062140073524622034669434043776297371417295657738443594005475357783364787173858831995725380639809960264540532720562873151122978157160862957374684566542360082900430576533154127168989746228513385107670664275111061263511316160924243466569700709329952178094757112910514811469846816362099491211915737590934654666176085925249964296490499530084958760781963600471026739400740732084362442003461449470324239517678532424534809937752802805259240486576284671412186729974077030839307426174014500322104972620715170167184912813438981955969766521920190813700036727820825480844407705488949773529007409396411521592813098524327606824759522533080282483140911455034964805588336314363788086926850984022754356109530387770701212000289803251790104923250778850259083263414354851687722009982947719960230524388558044873833160358617226920300671018787426069417860407069990250750049323362692993214094658099646531428589402950507599383742467138926990433088969689317122152250932961528322314040152247200696225193121876948328674200291736644356806635821053328041767261515623021242888554325019347747162804383419392847933486122205735240128775008941153319230976508281811189635502495846710684529264484555742771213474285886128655316929049767845662596418247266927783440026607279474144408370664575851237670920004831219403483729208560022902779773086485414746185881115702402873149042337471022051225421059966070353839506482334592609712442501847780809771726739247319401655039607867012304739576533280658508348412526008894658467311915729174574224177949335497989190078206213086108038655162237581246483554065072432929291154509266713185929676930903243805005047057980295747163465461868596663348164737563758253029528629237343678949466010883529136131466638328071198371749145500064298208172745061751153316431785068605599580414470505145134434661354349132377733690004775758504046993549528650821231068855209618997124393434111680987953962481708529338557609002702279497412417974047571783589151301019483114208868324943314817802337650953324299552859443683435519727318517804946558350991943093702256819318024684488318677087309347278038059155250231204064223609470988530160758370543677837414644116053421760045932648901251010943688839493750108078235517849509082358995407264746204374288810508396455884266548692765048403283121820919225254911472664063622030793455066039883857248600510852807898750922954152053685929261987791689221592205220551985320147926147108591884318686574115963789931121609989761109796335654449027343590983289478678839749661090310579656789884814633779378097206339058401025151480018804012308861312975542072153696492705801455275021614678086913660749812251621634354851006334434910353420533934694524974769550862656936276212610915726891851277303763839795715936693067949298648386633844544863127608551005181894581104146470845401536291458227457290153410579881693540552831867360382508835230473920214607034933191067272651277179914138372267050300428895154913480292363239288242207957730865773544300787149940796063032576958992623920596601385554180341966989324367028510494283621790242444777381925654599726442141645880183324265738561878678959852363478423536809059927119995597854014483596606215632951638907300427568254001923588832030019113497523286130065109787692945531139668955583476437080703315692464770566831708735818394804538875307517147833711950768797640772884648664979182318450231538105517587340718962538798537621437172436820710468814205249239365508704489135541655626666713154192176366666445461341970658844048039586284011613603368548134550509359031416572525760552586987870305119319075536363454402515452339582336587160381608528218500714103549936084662784075061236838764462145891921779142593006497312418546365599567512958502030822784103261371511351983906124159646333982390087897387993371672887203567894869612784691802988400077024046141684357096461162379484580024369153446231929702763704581054668618648920064818578844704613762942820614210703480363084411167800614815023913690139665758030939659044159125120969529735812730979032583292747939969282438314920625902933092860103323917403838342745711351398457747832024488386021968076716331653498673034745401399921598221116711151254425853760916734327699904005844974347590556420630769469347283565064991077767958926507983234810840182244891170749665104061875918474857697210367432681514842019569722074734482208792869960836293587631653890478390048742747935151528419727078614321965828417069390496815772568280501220207510923634655176931515723238105018022585517518247822341364317881652068506613942262653446972893597805755792607832166738898066125192388000169534325226200528899561086132879950759573554749552474243083287019180305647708273670143445393759376315501750935185158798505069463905231958292523097514074052545956314007436631365318598857577378878419026141186895445650421603370647862526272470854341759779500692649026951120275026309543674058016472131592679453794369497526101844660858000783127191316021235091382970425870233641604644846128470918634315198653654660902676182247471801225355996813235223866795597369258068959753037126480244820458137018203432869086371659833775710858330103687434657741106218143176556339621006385831674674809188717077376535589866220294998738274442554792411634654679406036502474602456189525909349966735951227127320524011111391852302706761427723092229472881013319296333997818550318293443263220646980101295170455704300632501562504315083657628326741230020495063971736784188910051425253052496886256738738477796628662164973624028836930961735437337313667758358357017944714574708124906980229776815688257225708949890899120660554025206080132245048251208137567437661986796426412986059431128300054088818812331334729747312126744443118675943209106681841781026557335326213877374737553457827904151159313218518285887774417722966204691386602093496942560536450662133317325961987682588594298794267093801141054153993918960836361924874187916930646357844807215658399312037940118324480201556714142859863727859846970740475543618234815879601141366235245480672034561475693978012289565852162256169671298369008539004383451036299591188765554858501038242000728257383191539907527071272412720139581995535663735512890906976251070304892027945259155650048553046678249437412341710845111272716022109419314554015799975257597062357119650920779653514558284969464124712726275202638568898807683516345882147443822121862964661262708267422635057195047392386350754121166483026200971276710048982671613245191035278362070128544446701113052325226930150870306338451974189270634069245458809137680372957533468067793504686478745877073762192530528748136198511385757845429291076654292834071343502250882818892915244527783987472190081314380720430207245467931758778466626656846528861507688403122321218733296072442684943391394823440048794731810015672345261770257670886790779488435759761351817722330324699911665759663561548880404973201297560095265988234960223329496042355117872785529240802858776678063370228800022181033547073381937382622675719292593356370954061572778057244148311164042802001173781045377356971226702822063493126905454981671849950281156890107968802900112565891790555923454722921378528723282181212503451820595480967722776607131017786034388295733182064235872369934100981061723496382468683009133256534492346840680693901747353201504440611383475519042887754060775819161781154130039925740378644359130190784611315598122874333833098537839728020727286892320298943973394819817757139247491694646666789612342910937033879325123377397138802549835070664655016435659685314582650756107057247029983740904860172437641981422704314803738452936874360053639126726507615680781314200412241195949403929770163428124078720808521666306459230567032070981617225290269602306308129260227978177435716138102919298062250972902342140272119169380327132983200837285066796162815923582866865760999044159915872039418368224730903669496907177457012177714467268351119457992357643789469356535420860629730104673071982276607743930230946886154828109515202159705255023615647835579419688175556091385778521922259647769941023057003836674762355069788231896556982414650286786318921131224060618093860488326451730840169501420821573260642922288691115250254993602180051041932609690738474883239140241558533260115285070430660932244424825241441746074448844534185528241403762246430116084929486645829985520542671517405454420206280703433294106933727264297066891081535848401490945693824621684799297070687378774062892832545134226040883718721990383555267472209412312676596338155725024484611269592746975238144932164044468989516224006928370958627380688833629163724004187595864552046374627569583050798453815347152306641100725692362934927639367109131351270403054576969966845535847145591819283771246258352141244581202749660784771810569945704336050816850958945374630795183950034717251948443599494854468526812973590190690653598903356956031006447968263120457319101154449655511226841732515227738630308135975821722905976613762764176616347690912507016199955375964321155753439662168827108403675119299960008862463219998754180943600530874133962692998207629668015488090523558718680761698556060434175392524049679996465176000269269165516987526525067739508513040805388445060926010964368810894202685615907389985099082501549463918220970064845536636689968589228638215971107671797678975011542808723039128878869961867893071982867549919743262709341000268510325929632688185241489579124432764872180145298218574977142929436668937836438222965859111417940518494207357064528325988459122593949274445571466776515114569290313952537580463375857964158116362187227661518982412205351322422488256167742459676541254033178449883841113760735007720085697277626487365278338916361424964210630883493089033208487794286440497222682861859946689343794851334855905828206964612394649757412236283139773381908745580331675172722386647360336322942216531277635847730631534297372774923149739427339168139875171650178103261317455063776577097886959767574221493716352884568741975606953600393373320206516493697081492295834331163103727409098662574705051470227230962962287676893693773871239020465167295592539637570422968270137215978496180362348043379063970358558242210882352987239496885357705045182895099193763474732035193828111442092546739336782292584965322008001526318029140864688824845131277306267980815595476482850417271139264031553850405835488218720632498225683083781144749672788833320028717670034369690112633377140681492485609922237095518547384457179054176873927917178516593198682887564181867768768410191491807939961128907075158854552469947650821767567721164663642768199852241009652130504650834072757448496619761614608405906074102214449762236679944848377775461200772349048346804799553637492002228711271851356066168229123239218005582781418581599044062405262546367710924438317339847632851470653500079783184915824011759565900535027064038408707123341254904300589255268336910947101885680630974863894076607300957659146215650501976073448899217067459599010087108436183443327787653682587723082233443454329275264503508275103688527876967792475290543516348471778306004342306802510416927098404294232615492831376121879256159805549617993488223404322283765653188612575026407804515295419719419547797740615546242676714336470510868155403216644525162310712260123089371047550682508603240463908671443690773244134398492841467882847147933299621527265676834010400353802720252754184352253722834489706581156085710599336667745198566047220084160190860000788059526818266913138417341819905590105823592902013540514610372925984089244405799629261209829819631751214535332103905565185435755015506330230393983217424163887658141828375495738248135795353764156486001991020976353392075484934838869281611240904286051688972415625937579583189895007292459604679885544190931123329852718446233567773599333480407470372053280347069763700271572820230730576961414871966420425572750491950366323004651395418140725108930709443978312110733276687592803776507172513608755719376485636744855888825788766133918449302119188229270901950014684234363699275319954611567138685704507441432163390407802999234905814465652044962335154357201055418206044026298913181811835652148013865548465039391744227689983209599473453261485153380908818440673726935784293194085081800541112501203457445303331397380446948852770989980569600051914114142279477629690392241524461598136812557513984940301589089128390396906823715967622826543755905616030020457274561527945965191825007133487156545101752772344850870016671622088134714559577331251876805648529105407392802221120032862781056402439800380701905697739652978779098800316200668984037215519624334297992810095608616020149108819115097937929003694499120621765377482371955324580636150130098086504424252934783569851494288463384019650862826192681818133145352271022161786885639796180425572709401969041952782218972371157604600163990908887257182510468842834618913181202969641334893176005480461049509279897517631114740226421967576451984887245324003253302518248307749123252566884756169542393488977846191575794422770855820578541006163487982613985550919249337634419693864702415434328232827684568414269943837235402540939373073804634343828207196553140326715847016941483313914996741090812530998431631207310850501690632931910182110539558556703982419629169520765719992723071763730813642389401482326265470550903841961663957458368747626735252558119907191836237358436871834305909221799544996922233003428708226933056544676836776755877960837571832810682555956854316804574768968447920124443974874700573757245740874921782756424733258593382718360118550637271168238142462458904590760296921428081805778560188655269099927922154712708959240179476507844514414645517172724548476941607662478326065735413894461988583756749847678053698392957632660226472399204136521623736361466640323155185415154811185810844339855150436734807098016306252475101971504669545974914141011308661681636860421033880745651994932458611604871116486279983802481253941899013637727311133834266778532592324533344853759664716208338537412263555308937443901951541575679942453238033408307216841994789968124268884616597060833397337177144364986798767187972512615063197288554063191512610386496203137400515441345721044904467051945156922739366732497685739160310543114816892225159257668780953462048818191351201284162581472102780965979991944160344384182326231448081673218912379946597469447371994734475461447290698588542010162523064196805972372284233732451140654028375526303970784269804597321019493457002525055959469814542210702836906765111338008271970430451924780925117856272910352627916974258068402627307584190214628440917898442561629867390910053700297885506985823190928855440993457717507878492547917137854322631465566615358702116916043172098426523231396606548893085383019683401924136867142069727633671975814778723614330172612555205583002475666557171155769559720731113661647649212410007432536721117181902698647349658130101367113732229307682146982330958626017552721672584247759443215834483251667717953813744964440656738138326645751744905748004650568402111858982706460025498422293207274982206974769806226082660110961848556935211806622929940380157261010384282960889874606563046798502292990209291932461771606160384801422508869123734248586441731267184746634512149080855321275811894748251785940175844722914259381996647903390875103666661541646865470072022022545975348098423501364848574947885547459213375096376782165427914135474670062812767442222991188279981357269073785469091101556810429717305778842476385374026797415237094624639434605121639245148210507976032685986609400873234156423535667666375312276348010107704548905103240579565966741308311579279748096695434726072474106920153392090933458277744733961650093575247112417075063503208867717412193495146667638712637372846116040877063015837600111533649212190203318068500324666379221737979268046636376195583620471957455881725511200080419911461363395552011300394239159753566741136702232551901934176455731469482202225229548333297745560513730774251770977444659807607594546606593103127348715553264389083383702773822074314568944586437175412106604933774542490470014903959465745943771237897280058429396210552675039566321492376729814066350061202360793595072500261188229881702440932306066540097229824335376524377994159185149339041722501469974253353780504362141093577235490088186907390269514016697214836261672332385111763897273755722811689919980399572937460322172819284534093325844116963040623830035426887429021182429856451245795207347984627346195104552425613736299433014983937291110870529969519183533650534844242848046310476522083420859365173096584496130285833654819543598186756220294161384321163257685982562967201828906781124186868784597313387140418729700711919867701293106293096949899354813921875928804839845138740758643027656157147335183544073506255312343664960053109148813032384462652043513629026265933306812051158885104358569945649938869570706111923572757110294196928994187655436884256928063861435130310638444334313396196979733561523242666417066390240362365593574944251038356824938543066369565628381349757831909024277049909445141111241230206043422328892597491438231575907984423517784541128724259493533330985710978755386839817548252121751810308218176505155563452429948453904577562674465785517591489162251178070532881170459740597598645830080056103223325384300750981134310120450833190422865468587799440122965616563890815959223940343922260010197221765736217116359902575752900033866022749259421935596129475518513699393249692786635065238826768941167638908982314619095968338612311858671495757270575686399745427113036591818384717808180841752010065566213047632675249466820599746393688064999076413425808930820409023632383517830632217617206433632011040344099409158405146878326260477568040712615484260346833880268094044793089193734239036386440254924481157390763168026646799679017556718706413633240288705087457165871395916429253614402597840290871343774441758956655811307376296889347527173711313779000310082729387122487986914124280084502725122546352721992018762423508027844796784337023680736143992859048111112541931101350959312727661124888954689194535563621879329974884586783481448626980470399009162895288368911374616731561702410045157757001603778370339572539261354053250114657419224801218243169853035363945988575041132622240054109705194916292574379281916876204926756847774860345138396946799094353055861500427944483112063090593443247000937536710056044926556034727477807907836395045187624483926979873135352843484638881332304397927748022015296192355486000473427309507867806253076736433322824196132427056557794522660656950161892625626948238005695033649150471162428579689682908969058363758278283892895520363223930960420462287810637658111782742762532340505564585343287393682881055582302015544340256660561199160833124527637674938321952334956317862584221341665748262887744717933870329083625039959451591113255050506004055193310678540221401392893077471031783341055948291837130769245697952206414022795846705868857757846872528947007508518500453068757078397466638450736019535737073785356700362585582066737243338623835066357323527255029874737157104957827619393563501675928367423085383857351276128826173200948780873129781099401372087532187962176750723431042040983005430754543089347560999967053006260089395875398030047816817127195093934191068331792429451595438511210909172267321832118162279570595447822536126829509548622172312363166507257218634531741072397650382647261206586272339002819509088574096005768787459135373146151589768102894467346086010997367803156129155718923796941378351231627407516945694908680544178759792003655469263444618177373227167003444266776046094924812058797064658497352880792415315639324344125789177935725901786375825693806342504430545882795813741075602287584447810965427651767062223706972419791802152291454833956256228460783866292668106052637667735843824873378258642885012123329247207096075960682756058028935698068009042477941448052246140801929827445359142613006731539974220398080445375011953972619448484495199114028190660032628026970954487165779231879915526503112323553639686684530243015961973492262352274323053604223375606417777316238560718050405591823508941421612604389373200349753263396931768396397408340876148966053467650020180180950179015247573815905144668404233204625195859647960289531559077547204187516804221048827397952482737496742588221229084184267327354050629747395625186097845807013227661151733251592801250066103078456552279339066119554676984670693114454341653858729999117725534075836267307205981923186415819683344077561735876011585410628859025148597066302566272781881934320443544059426417472874446384970887538924365482695425677051955005030485739671925936918313224995238290395190787500747741928834128339315143605456554992740034000514752860117649136881975405835181301064281918542772397988891155654420613295214834039746559537469317679712605932622735788936943952814037155498125622918360289709884483519995909272476142927384761134273942707646596586099675123050324376092528374535447598558719279745135456040928446312383889192976387224509486946643316458586117087884072595663446488772838981448069759334634892092084747933664114769169483043759599830298448510466971167611803157567043074868319135015108662681481108066267644488187637341191046301486433951333169438648671912530511977122226051292720662888283651460221944708196954631978248180623064295919343803191070756728911303416669390683766514373340098291769177833502351137723780700801344937512480505007321973812385162506320810496669536517392868858139774907719078245297941956168869722316752104506671379192086538936749986314866410170044457629958945321955986639580917941851056008686137283520554464203327542845960428433290425439861323590988961610491104037053812955077468163875576813162991902508157027190764907757843602169772279041728321524831115467377986753486330097098407188529177293638378968670454493802201715742430599092277663302429744170450074589944751500765742782902593896377634935315947832002254243267251842300506882020825497212921405633725581581127104741570185389317829398787712798274886567150463224664385555348488786876641355612761048582420589186519723435336395723609948081681739740311903093045100043961806912344770855514924729667850895219861090165524898357700496192037386165583736313265234598245319951059160583790003979969517770697952469522983676074314990085485641433272200349890338404285312421123402100498162429185892422243495753608082603067624015469578806472961926684527511160095905378548316367124548486778820172520546398558650035823500202150851642366350078776071519856145256264951591055507477278537981540632716819511175410228892983782225453367566519025121682301691819839425989997594117695875215092794637661963360871925094446859022136218571040722049966386358712990530555270284104677262021274466745452154577237082364445335706452251497567870517194800500802567824607818185487583892258881641762049036112904312816748320766934852285776067934846458657669095206610087879064301681675339162115205681084467894159123374146368211388337577326140274624666451509892104406381808305608040137010089074171937662958444216912279089328319826772333212792007680916610268387238432454420686797560394826736582067345155042676308818158558039319161732754429557643651620151664466855759372594097115187836921732999384157882766022670925291474618234186636721931122698423608685452041883128019978033487875658827105870237096130274799132348225813769612170462274224961016733754788010634085514866228699569152716263350178980339827364487742823153814829001343256788832287607165110115958718714501057834762975288743392745818276860004527757177247880209896564385294238817387999187471297587411654133239155651089087752576862866168071921090343265030146354274920447493124652014732319757703612045011747939862821525354972026717908950519508590979562153891218056487899678573068849963903277813229401520730505202096076546883252517526410135506514502980213435336587555916168367494289441214804865998225611198797208669302128499501664795238170649564273515525846846289200141881385743510670806803934006493980278204084501559743111297779680235822043997189182740819520245230161759947970828058600328892886741062471328690946946684390420120577410669946215723851109156923759278558684493977360688001922934914717580163165254747272854041117825003154049416495321147450754966548023101855184474204933682149867867387892495751470690246623904739663020066157810935792046362771350394697843435917414264377803119021954752269208954796887825485645707135566698502327546123988230278689013175732191716784930163650138955291315901174224896073749460202948512798559245077379356908133386974703741573965582588573741349035827814340746255423551643968904607795838664996649445074756579699351493513597320013303372081166289167650986948072944032991761290723011140465891138242727263296851760942841879398026052395654066459330078965741576697086719209294525393155274373528280048234575091448533542404918205830211736693760497384227215913483552040425761699280642854714019368556141102765828085704034232587586569465009202308498308267843272774869277955040661110043597647686786538495502722558854224986136573631739614809989360847409717649547154334062370732658697527645921337429714124207051122564494990791441924448328393791380420636238002970028206239318075619226485397394933083251970873138458119857017100249136525227198684083184047846936429025111292751766993988620343878917517267572217442145385761100283487432190524333293992809488390615294064110187937539411343031719168526355316735298536398677616350661196822472348640340968103858504606729601476131074024007426534024368037921068446153419708080881220768071106438905886342157852825822877436754701408310031138429853493528249358504036234592392668831144807754671059106940654723734658778941924873236437024020240175175970468295402550796773098444317986354134645953902276574320351884311155975463523304523550552928506363115240811767846454714132798134065927467320835452822766343059530547343093817503778723176464890964910442558796940411705277662970232569524636717758458788220284605305305466181722096550981839675444011935670278272108335560644665752280980586287033307578738210821129210210389616523122848792032803766538720195820518561825014424096283660984633225284110157417361488234146028737749849149845904629889032849256083957399140591024120684557624803459047235953688392746190063530060252868443454660057857456872500288797407812699501435969649476414931850496255521694445285574529480723243302773655574561042966088356974253073611130310823800031585387362868849210917491803390548285054627864100013169471998948894209530864465026796100715048439262063311711860861208187157327345513700141867686921967048859010362423315167760172717422330504953061585247919628896759444213462356519312219428440714309789550559858862442017362826073505116384635711187846834715883490623342588343614274793829548341263417416882602888735547816653238321540768359096812054884548171892692062036709653605640898759284508157427478621941367169943229458693304953537229679978004871910203478247394917971719767262538849528173051360089227052430855648745041216033551514931039641863808926595190343501979503662299371070610980328347286934541513596718150629766374430994932369570495349591419352727151418737658694512236367107938011524216624494119800446557212597535804639991023932797708387184753479985436030661774685481674302535091141422536356338388354354468600110863848021479276315847935107106227221232890003040085551034607680665195521686567189181334850680693770039068701376254055246684976710144599349618422468980417018602351019649901337786508323436869443782163920218850859965813111265889482917734897361101747392459963978823770846435932564640554466354564506278165078910000603578958471411788114001470455657924684793389859044356095193955983048411907085968390826969646301033129195405483566334707548255971622409572456078995227513743172920432944214571757021119664927329504589243511542249892841829309680162790999014391000651606646547657233038464624395113830677701241619910309399289403981160616742076033829175930656604400871622422948641209276800548402635460460212864312968617604867685458733245904904458154468976001291767593717828778157463447497443174722457141782495933265895990123263165431809785578257753550495717798199024612577728494463535252170334339313436451383042589815147736236791994181688328599187157217228765199470314248248787596411631008191276660288566473109611646667671189367634721290963008692396234207088629338631255612873406534679097419938288166385060278732800485054491820199337871130829493390254440845445283110790671755781580093867536003860355768063981064235751099733184028068507709966620139938302157057490439491154383090561583001130141099139583290325869583767619707448919113263121640981843472560087662111596951333890462589050402103971688752976341156530163761401724174127541567757338515633409689244301406179749753717442566473493454579246967993011026194337636448667537561087691613043613748330479441225952612415148981699807681018481895780038325763387804353118569719951740840404292157320717893877089593155702274272826581614974080133206343384008689023889391833314200451596140089861121562924364169472543135617018117920055959285439183334369451919451431715413500742006390506071676581905824216202897696844090552454470012818868581435495454205566898387862448320752121741094873647410915786040991025855586394013091551756002797658653840756823639735834723364825533520524772296088193054082105328131130488092625504406239557590391944317141526527540808952986572630716340732243950379987148815126244606312813852410741435979408576657852516943899274655621805886920662325044937029212885127459270213767483429277774127189221554062683300828600901792187538294862915016245407247778866998890070980505692506985818373901350763943654187232930311836581686333644779329007078574510611399148091109971279294384939136701584241896910938623802725764521667814022361322904680977248778268641881228779934329767071638705695119901896323092458999902179757131345174259360325136902088395860854675047773229290628464817203195072814911800959505125813447571570554678484436237769148191799840529066771547929117426693348858567088139473448486214381111595475449852804057422506951464720084246244722993215792264672178814520648208302769361192173852367856740962791085234229560906326667104802881922637139090737684448093184449896992931060368700953087272410262136788706972698569734002280363504755236880049558697359039020691931283070710617913556767421587725759822191294318645745477205132894587827375775210307119425545175288583633445935800552400893120991882570655486639231448086237441459530559003065809529244042617675254206771033553684955246546435770101789796416313038674952396108289032577244899186229965198423278274995958934083103129326766102724108073795462818807634269861761703310093468008306518347713287054254996232603250116192827302129934934139799634261512648506347348327591363178682472894449321466061847965057304067187482841519147416841690897229561606700728197766108311410618692743573355356462725414379409813463832286243364133478978890912641531873040605317247738103537082669410654440622661293766233632590613838197631940130398985582094820953918602481990989664862713566498757014979534006764478586820491076270969775705491508796197691944139015941256832679426395790182782545568969968032231781589778225657613871677013214802115527276731117341653118922038451473699023164776475938806016075537483382328545825950629102393600165447353942982876682073712192752999073697440811342372020131423404505259316972775590585657003132022465479086657583451266545682630554619314754718739127923972118469217783762006326246681456322496877656028010455006968281528657542598234834009264710128328430643025697652644694135027062145831911049179319414349301770348702633346016871029183608374125327587763154022303956288776844723280302142987294946474939503146491804133514202393881524875937371592838326600354064289535416985061992235303829218610486918255269025574988931977847206199198050179722622476371814459796413713846207982090839588211870480155631852081343051685237415842174781458011563058311767877089770942569153607878091136284354824022828394565804195220130311977227965959838840936358355901185742704482665056343842162536049834085438904028543049268993066135302956244002028267343672871926207940297350617969254101291753762660825396822180621641812462173118967334743094220887670606305467169963141821559029243513784364350632262093120680143169163849781012271071502167924720562634687067390887567539442448270838250878826535655819744166357784924176318814836216441222232363549938942990784092165099611235325120110314233835506549388909275961105369398083023861037130475667626055583092784943578519785639053474326745056049094077085918865106554530081982644525281740877465478991615116348753930674193023342758365049641568635388344929702698830212838507501173072253194741218860306066086656547714244902618109150955830742760829485811035201107033030587092579512353389221572474247856716767883589737676177211751305869343355367649036743738817044405436987385939266494471535038152596325055300204906764624458522605213931219629970578255032704577980448589560702099021534466953706842845217821445238667104694081075061673174785697189794278788716052834504290221224398343390694767646413145818070481842165818603669376409894336493814267999197179815233510841570647616502760453863299952244303389384486986948796492541509969476646546897692164861423923568275318509654088133533236031501845430918115897953009608823801822954836466507308346158753739094675311255426108040965927527145627225527350121765782432201282217368454018834091125636960586741735441883030291042295409312139163251665271628121402003934852462926770253355678013212110007468751049272921506773328246340543305146411016945801523928106487165119374849628471452059228602216430922707329113148505514626087654910369689708578112513994774893832884265980561212183161153030419155186977220696407051706558307454295568020558606479198561137208320213973371589718010093419529924086318041862299694415900148445348986206796450530773611839913611440073059304205749678639537317291277835848215629148003084298917636403425821977585909988615422915064881854893919464924424427073460653662824110438068746346424452489217270080026988968400977049906879061899434905998791232993931686542977873405363741086041168212232803214430184507966819142023711524639482201770931427298845543362729864739836067619735520646544148606206582731163150571772420887655624872226829266602037148511214624414964999515202973569634689579349118486138732356737272362867229569307022272826189362420914468343426468002660771995022165093651912429912989094967348869160997557084153856326697999287231066968120038735043570013902925124556125259003322197307426285577090519268291420781601592068468518949602680324164502321797845493500368685311200743998786753531880447347851395431773960600553611144063536421618126021263865730946905932559063972194920380562876788287430919096154068691521231893627892498701245388290743083816074862738967877453782363709467889116034175404550891697540592273940492666239120406468558191112089876130221444569725686254529501304112171998091066911541574687485849599866199083983781712633106815336413320408361685895059251501682768475240163473441553578291894992138591091122483181871721948688386571304048294777424440601099690156383523782761290959674815107225829181329982874270549873596774842208562067520671599421809118851021464388153607962345415092134034300612997868682579602938497659187127068051527071418619605739031888512824338726837664102076717571266109274582233522905129948528281613592546990669160185027594016816244982303860880138242498830699639176230939613485459945178006710782255193242050873901267954978440156989887507912316527747212894791531731284579690612883700197518951091669085067985676051658730747998414456849249212797902881242410088408847783731591936132045482630356747492775654138559987303215905407629514363788522298669818514967083486052744652644981763753211029230625903686358567994891492488089604126511073389096634435933844124958326982682427601020989659454604773652398711801751865136733933944944267677542321191082309423728968680220347439593248623769437410866602820174765563194951087225889202215249803245839271724279586677378380658016613729297771184466502501152581240730709630180406940749655684993087263042183001570412013792245678731940258213109454610936997492226185837465197323220368127821679785482540385357995868520967119563235803556744705872326862792820603648717936660559441175390180898377902808434422479687088565952716127883634043276080005804509481613762417573420339477986303223673828425719406058354743783890446415406579099993185608124308463533967991722881263788799160033833788588455471982316793889336283777320641146617025954208508851805129008431630715043310753954554199079646509023164428834474068719718935466735649456812354304961298884537609297708931994214630482207660235398243215761625487612842541210616113313364882245413244897545356626534914240822491340206617500721126943061249663413321878554680294591249172174641038186713621514571649507321984896957276872688364311053604427157154289136681571274428332133397633430005081273956718748263504621039314324319975491958090961365625700243201665807095188730589919787067936829524404853420238652758845077629278714634221930150056380457251317594012285611355436854201081823715869013394106131783292979204109913274541054713071745330047233839565461871634457034018556047181381578089815947036849425786821926363634477428221860596424745794721701500258173333022732047386573215346948938772327005556946006475062041487331611568622852690741688093499017469127606927198938505564840024337032655975293686023874269601591645095650888549020898484988762500950696676359381231697790345117805540667349228798064769733991389207356808640524705632218673824785071644611430980954948809247373180071966058926964767438019702682241032886561113658492748669631268073768413367434448435491569475817285335944010063322752305783993875303255072167800795954106798161051287012353251890481593561721703239862529923914117857155601316674495414313623225134309093811713897244019512308210327892658362850240295904940492941532776864235979783872458059395139056795560489022429600734317792826184751933955564593715046875619975797431690153572144066875808686554524850048273571308531731244135792320993581940084780355302666178999034001645004709491013833401772294629926564233454788104605647714030170786181447811161624796255323924406800969011790922851352731479550364501613013003828067884533563391135173141024267843977071244855993926430774456327190903208839351852366033052369976131317334834526825772849605743916715539515852956333008194184226563499761732066839099307221655802854054586971189012219660240669460829422781432154324365761017502059129601843671261833291453458847496239270976581693940402863874677684859859221382070348649830522504843916857753454819551137494718952124618141523990215336585113352535414111656440333991014817160305596064373428680323910031407094111326232632399839699537619227136973500148398583884971448168151714974590795901774492774451113062728420131635843764179209332924316744005546123114291616263976070663560386006560837140438303004134347463989548459451126970333775832905533641222535927524973455348333723258625709633843342035966408972856443178958761351810094275452037400888010727884818895951672312621189125001920873733861336501373434886404252252001770462072668820070446561847389682355647147107826826300452149043241055363554525591842135419686511373978866630975008142564319847403775914587895906098457426078857863202314402576460524637248392024315470427111900318904204033381700098642286434180747777779834425559893089229069745701872020468182941675249134855996061980098948447489166287604198006025970012736569393629754093208594546675623408046150135458215508632072266038934013767305762534065551698152777855992998824194642665167687761191736222702092278336052507704807075907180343633570756382836596813995390760727068181365657591986683751054611521808378119196475540967095824956017828245672736856312185020980470362464176198682717748478222463490327810885463141517371814329792883256249937115629715737390115836310870448602510300496946914258386937065120377046630824216489443358000596868730214852492879538242286100073642036496791486942425477306447281042550872919341960667052564506409608790024404064247311413566099006514678880932791384938464806546101789056276456355644526787973176600856459859045759450452936327322914034062409343851631402526002102085325002803141809837523389639583076237367334254811893427718926930339828412036495177176010034675192081583382936321282066313108914560201482252304552882944291740051438913118279809819848432290298386962825148739445820391094065328018875407720949074786117915770017190387912806376236617440144045207022924523204540576280696579308502039812183784020672025012026675295531308349435347193634177273406360262579603136511978554856693728464042046848927715778043458677610085289607369314413346487377352501592452119765975459087695020605617578193591077403625835765360080893765328137084369439022722986532221828843740013882581116297155345756740321498609755428688657987436900949705097986093770278357223388331453980493989210171433582618967400312252799730336457106160728496826402668234770455830154585574827171372435847099486137265871302549402449573855889966053537090338925114540555812456929413788827165199000437610796725728059987482047989567855938858499483469651949308978149972776347330585707179027093568227576306393049702296633955287633799130785859314207811335111432012102601987304216706260143575841179770790458083808849808816662618535883559242006305302464346289923082030708064941073041567597710077523985586867594573174476709455684268903853112849498801814477456650509614898991517629924164287800047413850804520329530539184097689946319969559127867694931959273366205430918120556692462152740786651432352659207070867879558641686045277535750207487671433377060119129403158574310767777795213590261308082898324883948320949988456830767241759299430340209439932270827548357388507419917136940049879858619423446279608414447356652037928295317016335118153029312723025435629105545863957777802211658866611269335740729443614557490563720071282544811355783402901604851760524329698135502747147052635429352648136623886958489819516790476124747446800847725887139455273671088784750842568825983963683066764766451330823429953840637149396551260259641269166395532942221627797607874955291748568842182486374632474778324492983235440257156760792867425952849433898967643436575482307575478403350369653768736549802239878011920354404912882683594195397184364725540905314210556663207320463884838276837926105500380573953794021513641366249674935373241044043486238233624920495354428579053065452772650722034659290443202201716324235831378351252109576415274124465776261675436094709743356400769041436221806829935515109138556573734119489032184562204438771527004821101276120814078245264988636103832650848085252951495226355426460671844543042653382666861006655771695171442956555905423681933938717532038641155224288474087963872655996503545316017872842995906248975694314657253297995656442753810259566672558761130308635459508684842081702309037760107313710623429337807454750823785605494798769021390566558589286009199045602603206378272907615539703831101800844901121481192777967483910272882057559782053508834615002190348376576463110568401425042106378331650979093472594994266170452072326910171868068931598950080623997586948389705241612230171728940390466998494272133929568126161004650902845621267573941439279503195865023504811047168563578354042648572127540263881287194620920381325464811617031358676710643658766055165513311331702271823215687736219584821685646528460697066190543954014065106309733365138119633316594903039216427085354228049798026714911895636425174891344121426361554780892145283670822169402598711263211438852993916963048048178929629882011238074901305294249294801611435330239008067065721378167971985686130290301299399445124984690100198919360598279169730514759434649602883328969660815056345056609378129236133490585780550945642103530907360195844637121650731982015642422013268456687741832331024731921868515643412032717030573066078517538509706917170791725285511743627871301600952208920242405030575640215372736959266799747810707279372391235577709346828475601076301279131199539176281861594303820778398243261731966313336206379349676875089524023642469231904541673862358360482837439278866547759485902892040201939593770656732119490991043352855179871403502030760557820191483882880946496482084241766992456758312262478070390557653141263260242922436203719532918554718091596443185685205788235010309107612806044570442514799758960888028125997862387743549659904929673220844972443458243503689780365184909951214229401566917453416838309035284779643067608611599763678720495505795636516693834521021205712467189023635837908339119080206899596896990188122321855252869348573651888630160452941028179736080689549524036066488944683485357371170607994305471921648759431314126975952516610252290957537550950933718544900072907676126346765291664645580371533060205534741620555668380872331011456706082197136019911669601177265351241440510936203601001758405334468987565349002447580184990285112905603628154372796762883123816577437517662456404578370496485690904281846741434107660754984114657421533437962825237739351775877039942552131816901739901861642141354392779733470876597369481710103318186376892728376366023019205919792959179148224416394031804147790028285712517764484105931564467536330924157970212626481304280838933770672398228654341731736481424562966180793136953250911287546949801550317994516691228413844646308741027987820955877346176667793320063616141299836112387852698449676224949460162224198481882844175972508965043238838826776211538694490722314080038640966747955659603365865500834501574668100371549812154559177082855269058782746268018954840985480647767322593083364643266678951981323034384780554257118933244880337102766080664261976800040145768192614123421421090837882603488039871589674691868127595035419040689672781395132198842118325610948747352764866436713359368373719071671361534428920725273057077805616065916154423589107846465547369563439707372217818591230109443692313952203010113674073457059526133029367437932120406159970890681203507862354127805416826582353742593856966435762710973540865230333395749249771995346662569428121211926674888665256315169706607240021939626684282515447561496357933365845237724099687357953227591900979741551721334845333578681422873993851902093678274021559991420456446438381600099906505371881484938160865503572270641774386629751678966655499987889572179026230908454480646518569309255696453172241089451645426796761819728832958413935133844596041672854573991415080495944661353439845014276180542209659848671099440825081513239252136069510626733736792233221425995230222936409047664596154505594842048813114413172046469267049759749059935116920439027605157446677396870803247804063437778416725021988849435409828211600072772915050759869365684722016941046189444582618551160041549451062815887248514034519005556346661524473749607661135778748374003886293884886101950281280781792745034958405752928452983890915764913247310105633314781346402650462629156753779092137247828970031963259689125133021524656120543583762268609282030777416870045904352635817494636724551789784931750675390464041603363847240546498075003930024576610714660605719495109140248232735266912214960160708972207220546288100387307622968906215262971114289273463392143785758381679957096512975121288247076229375657213489062361860141899595000293934330117463300332972907834026382527837960530000473559275468487189299720656136533751537477921962495517969220085573147944574288225924228767773212885980653704654024619938729649935943563230213110848242495018006757189398611897262182430778317833445857036118160941397634465162725658288616878213013425589073818405734222752790944015079633506963068315858425959758344133931666799730480514710420516213562175409048777330227396980656495900945695698536584320835620615934529254241892916173052220979352465712270664005413539212620953741607025988131267956667461709323717405236296319608936529844425074302280497664164038282925713716360306176259672499571761536958524866449317201096085345723423625450385444144127163847672628333308189585593647600616352498590632887445032551137768181305334664669950154774932420985686593504901062114129914177309980459978865399855599720886527297388216508774800198668603163056123011444933193578407633418331385977273234527021265265772962648846204405032377509270264409159921265248626771659965913245715413925400153811699661401449792205985286546311988145874191873375518550958118710196924176642924238937549451631594772453110198414508008761556264407882172093511259342618446830352107379400041838289360585440706517264491688578728545265072810491172241294152234684844898973496533155693932685540211665594490751531039708324623445957019685643267568038544519358687335149681959769600820125379900840010546335233641891279605446876357037106514135683715512448361849192509499414144624632178459676671911648776744489599464431583958487181884662742027844189992880327512449666964867934589413298602330348292887626063713644580737134010172699240031409996289875932823997324878713822652547419034882217749819545570796378004278014587919441189077071435801103026624542936251505434616515198607934238562390664551545908689970098727578338564769103346863889942896361916953313831063514443194692997895215042734302745054891282240465675168373840917374148437318197118822641196702951400104844973686883604892628854074537124601578468879477813170839202770185008395994013507875106453561461548450353467874901534027514090183464567541976045483308692169390248980675092299229407155069237778782666991230158990938081337285055529905993471678423507867390580365538952018111477155275161383726656687055032514568315829590653570060806572699022721433791492375242219582555155273904766415152423084130932793556194050053244414539506109491632703871530370152810088754080933294790986591783965408974119198714373411365127164382405244158428876975714977114147142795082958870299279246833213370515267564394231135026287768903446466363218444592171575879241131996329875413120183252226786967899641329341131763665388968320511916362239963736400650624218691982230644198135153219731985910156362569862181748547088883782202161710149124324921653238655769085274725478596829812494806860664444935191830374836655081755422573352685140389878650300704028993343819723019614734086482834761260730198222686144117989843675583891590084699913140541383193918165643088434978829915171742974864909638389673430651712173602754537578343113521721501826959291493227874737425724572136025662638413895262627930213000996619630032325220131382188448222153852531276767630485518700683146840399268185487653840563848319210024722319166100913439507678555138370482142849151016989753390789756323399217789038804763368137484651689226357162307184064156632492410866923967601216010814456092321337429145784488061247863773882641020861802495130573388369415850878231970981515867117095173880286795801510678804493390248068909905291953284466968288254552920787080905016614853675330813369070048013388285854616540641332025069383559631742436588406472615757600993478411408406299823664823574855435335905053612627428200187848052953044769863226366278296327416370115311182340817867398766107281273257785139211380768154189444041763294630490061864780759891264283257299873528716127741833680517563794195244023212888549117741506531116818362269895319004959229250837626080500331743338563784867495822310586318894073980761449692017917513933532988588534336449979130016571286809999515576368835796903449984723426041943185991220465827495644137636777021611431270014347716120164648321329271182571328791058413578619311893745953236310239127088901391290916652719237745868641703648012032953287516120129170609592709077735616740193911744124471246014178496797282493661458990725500824349970890968096364168915696208984519256267193430471714563044323998155688693543372623026149800352837166513591216931783823097964852220628541884734869393594384325299875376511924923350991966689310683934309929177429112608797283043316638758402370220112172394561144733654127633402705845417785774852486316499991704854769484320531209292739986610752631319764337653802952214163742360237221850677911388725805767775543742535744238997963358197140322779356139744707119461141651761515123882362790564886358947268605733447972830925709439137795165630585389041681689876925808365068825009361192610789112427098812226934685319851706637174204680963766557289364171324938644334052887352790255086899509376151204649845093084820946460641779407759272735187506149345281817675171084502365204423677681513267431932510951920058767491849302776955965409812253963577116946711260602360694394572136480764649901663784374841097357300987497338721557269597603311371288315838030624903238330486195211498262358667333635943608153309620435231806990586725316679671989775739671985056332039162769296127845043250930278493655757046636650050423538070002104337905436545267691563211623070815386679328752803991810222879667549274141381460065654850877794899447855050889491480528826587688444566272939081961440068398308052403725695064114389933181166377016307519304450021566160912397787650073874339861213776763163799499160358002942539415093611828779256489019970636115118334377322878051378170068546189397707800275450470574657440961151865016887216781580801618548641080898632223340991247492258081118532699879573620303636012024863397052946712401923986888626998354310920045622791699844169883212018095594550534885326175425495363851506311896253092176652916582431590045834969397068765865424328194564764785373552515306898910979666887810025698390687113192142541988664192866687545377244317614463541566576287140553536428785180176621964712668996243194827310093974171042590552437496873330365968721460188999669280258230500025049474319578873617743981181941294800460295054273686692310079383355277975003835915620816472862995161814151182430486495587047642038715770645275872367708081805904084235237757757540088468775611166581392511935673190940209614289011096489957150397207159050424785782964191398186464569806900388364679836798101237694632288836091585443010494261487603503799034417768599956759933050225323476525468899552580628931781172182316379508778459343728786415144638730344373009824804924955400332234343780588846442656516711172540890242516568074345760295714812822409478460558543210753456382184804837562589157517060137146819642168971776054953019924695302390199614826260170628481879635799123969700159444146867753185645831272547174394450082162982830493756959752133974391203106521261696229281178721499149753725472129306870385087565061502752264203373041216162349639788099435270804166933227218359322427911165736309254664967124992961439907500009763571020509135217210267487838180045968331069999559077825546489128367433945158247815280574610341511343563810566377035487980940326526654845824868458290675564358632459180753460775801695839975806488137704343413010596884392991793174174742867125143313255177595667391206113546736483115197935420861547222832758560401773389173211141862365202764491763082599430939167130160355550663966400637699177448238398404527277641720112291229061185595127506650649835460296102965747543759069555507510185935075883789469234080884424210404435178451018449469776602243257275763372138266732831848510419137225727990030230195198814570212171657227651891902737558032398085602854179108696330380502830582541552079221546755099881660712637966690626696222880410521943755535993478632239333088074294403163633929743184574294796453048481266724296055477893724165925475425727294818303585240798970601383390192188164731155785052643281067107830425382786255073575144178094379451520876964418039294505337106958002880600959261554240429538493922366928251865457871541550543768172161949416243980236697017645851682241848234949856122612205259406946868433558288000423604267164920519830030400639082160494841822317937800187897147326541391659694146628544607201166338527550831900032819349165007915757425415726422107319213142403345326076600054088324224303953642851701019071959689962221685724205827008044884586616008524685471176644033745417169725731664357129934938871819929175946631813286486618479719449399756737688968894218741250518128652265436890284789523945318907597818378429373869271123324522402704855011368071301499127539063765677619504082472945779516147251783340582936314389374727744967896513648114070023132746198982924674668855898433555455760427757376276091205804848027199984955395267234262697175122246216969012780081098444425535915175083609503915428095603229402450125344480013590713294374264407657156719414139579192271365410090161702991031998657052584092579984341415907909404761270738304781789551094730906625750499363514227862650746766596040918727372254779472975212156735685726097885664645754101381930184782123365156997722636151699971162308147353868744559534540138665599995625362468346296316834097975504564050102772610837878518203493705332792138943408370417286053516274318097196418515813346386178640580852899326162674792028229007798061487378774117335830276131207960256078488189046862289627843902049983703685368810277112776491648078939944439040925075904833289087283241424493352364630816798184071019847693663055389540287367449033739847490758595035606072003587845043016881102144264988472971774495941058452003823012531660787088599066303712804121528907855153422131215471139478438631378025693727576221585767928915212630006697169938472634430828463068278319532124797579764030143681437346152646919895021034218176259365978453266760250667448846712460966866173009706625245017692278852056906735900843160412459284748056689469781827677947558847010378813457163188174944289989298716727868572546655367737283112444617673040875235065054391728319619830505638090014071189077122132920908376622049304967945786678841810035863738342709135352809394255181980793497854644802496427368668433552167080896583682049543336741086899344362297041444343961098861270196212361682942389358044719702097389199208230232314642350567106499113603577319563884719181976988071005806703870572501530190615358555901464126696691923629059503854868733761219137217442714461555526745228257400058034707483503081485510715399389168383731109275020581701951231311776778518448777687268042139392860342132389958185132776669365598180645571558540380121592971267768643842853718880917909957308068010225411651642985479859780120053032532257524997410354310883801984322002357567408273306083966425559365951758305161534971344382636799028771794289082660425974949114770714229702525112586060390052960240254582624832575575756121613127958128121568538408559162780570929372466124367205888681576790769303505178957563934003111259297972535777544200569966402202138347356603769169544131890619160614468251813160176609861677232066349745604650972882659512753972733368694175508487217889388640618398460037168689685091852298344657755164156298149054346762684211445248399413123038525805184868019570889226188325223553643687364583479146903567872259825575975596021681452229949197379268978806572774996020618312361912598422999744591793191907004469955405843606932673167089261261701339842671888934212498755699024305950595367665402753307550309490689335933765557321753833566489041072878037317426730961814074515620721259831472457483012110660947978796294904381332427061165526973317981222046734271212266413819291473278943660918278788827641461469764222050291144484184413818492376352771491469069743360808145042927657615875421705249394092838637329473577842342407795488209531262353402755035057102890394313368148199515356610924477427046999116723789895516390463749839660324274199311394429039057605907415555332506554821517929225476425450871896221311351669933045431200007471829800650638738989262564890543973968667943212705493923274442799571733635910633348441851469534298128089686874083237540802626059432986205629181754412222900184021005925843557050011626334138911164722410329354306799246863155390027951392329972227662129951309940979505302073905595811915124333040407885249710925372417474301388303179701844108570451357681512915362442949250375261611011837321004651896146782697244426178043464984407081819464885701556647291249400183231574748921227215054856761733105517328675555551372752572280701584444306909116842079448527192751675238846945201405843654124419006882995745900543574308056155946524228819312720329234092490339765471465181113145925190572580493515112436689165402260062755458017611743528143148949991614671893523814433684640427672953871675260813395098759620778572778924985598283482328917720811777733834663342418849227919805296830926375673184709704872233707624758369814717742114804321363094148725478149263087466784789524555610053498907888898459211841022359782737316521280197485413419869770543953887497390145741221190480539008552547517769182706070979677126597248844196823381058259943529823826723631734242671557829646010506831004613792748906560307636325981027936611235706225460930384592230956994474648995943528035957281220735900214846748760962849701879898071617087186011317039698435437109684351766492479554420274224706377160003575229427613743288102773742437633846548182324254585865229937019088847477674002680010096731972668495586454467670798787717513539808839832073277017804624993278618880767133092543389284289547339980467826791459819674690198306839892263439290357185733095966285388450311226586325701495178443681391853583920429643375838949238481221756550210355406710582772688757513784359797904449145269179059270350881467187781681401490099155462169014256978035035958724739149761619033480456499169804389482848716057330970807205046654803487557123331222248624733016399867137951278867986438102554256042535792751624131624549552973102364591993011349614295221853169829571040685148038221398883769639075814255195711993591711187550877596254773775135923387032299401391763658037067844008595624687639951401471457224685434012807858564304393947069971219759406459214429010712931914057426533471341641286645107585645881239511401177955080732163678101603734337601573155634925565939373671656193550045881073223355930244825696996555838830534131866761689980856668282771323568706812262548462982103131760771801239058725534724204741520016176660218058824619496648746064563878996315071244291538840423245075603214047762425803652609205191482910102715774592414262871044559729269995650112860668854627487571876650669697796028230413811084693087871684835790925462780349442642545861204599719960800316630347958992894563255312542534431739985369459805836028674518508105331304764752853762874570977776754130771424300232534740409303069421829116816439039165574700321658811000624207185247579746980527651709727451530250946186599372850401168149577814259636124014780968378688851125147127622317915331487044871205793776550304016642970150767388550477383288817873121246007452761235417666576881701011494289925734910123564667639625806511271339649842282450273056693708923735816460953561164343750565029963151679745340938235328999702562718021656243625511798697216249832309565871968296025466806500004671622240239665382418550573065814460635905595549641982011396965284439301573931052062830891492180634287155353700590035047086460963541097884106096566034365354449061700707899583180561453390650477052743156641760972151791948928336481286604608353071881948053442177304236040841191576164461309136759315286399233963870540720547988479579886169962180644201535353179004476525582272767064593635057287804275734855898768296689233572428808680624632489791895841694457900295928632288829382800916032460635320238223124737736787406179409010413815330576102830088488649415922557543809460630258626769891731846156393679957705382514934153048349312243480633331688402699767024473274906189736334543327828082077440266709778178207831208572634456094708554852142658489101849573503186642174822985673406328525642088746642534053395045023102754493429019160008441503984952021532560016392766936647780958412656042906452568061709558520418712814813474344515393746475496344220538926109954944289146367538957876055842484190258311817288502158858378806898930594521539281374654088777536100423510149310846076543290946086796910018840384162250090888837411244830646123775233176545420148684333531525807526673468582177646255479877158003780737152412484086925690704928900666781140279791636537433395145161411107226456176282259912478849099284872988870529808306524599355173740824113367757972723356826803378116357549983476669908238378145543916215512856385576818804480343213210293942162408135480262308822241912311925661205255016134989977537211303331839809636216624718633004541360033833053057938607902112932032887174995145272045062395800542689317348183540808487347093887388619010213621756502595911351442127021011648093093037494167291593624568786003466022400339535225142449151606042997647942423498377961134986659102717829299312465284256303982440607897986973420603951700753187578630616126471450010032081159416960435788247184765644413513385091862089785746218053947270574914758885846342665182414683879858080482488208055020192887763490205355158562400189346433242686366341174030312234237172519433745140146909287147290589015061523895622846152031461702617566758586209515477682835625450643162643745807607141785780027587608048332596758878853180959596581481600806521298179195843985925295184458469272466477076091516851746385647187622149193215623010127131052844507481070026502446417858724356779922130399652183827914184826528162510461472116304790782242023484217623506439141529823005543625701476369958878450144051305748180118673087237596524652046435093431303966655856293925156810381694666620313639439917344896713982981562741198826272351095251221821704750686253399267537797846680999542042149911343540701022056926819994042516658933928498565667347332579493437311852048961480398907491103503139468334077786693687354754911077611269470298782112564765681491566691909552936732055957727929512982090715157730091788477963374300214580360314477890620077155490476480542427051316776689353266943735909722400831594023758388314763542140440860421299577016536729659902048363057779854577067028190587186483061382527527860075879070243587438121184097439290836223989125389316731842659559659548495881455735273119107469179828345743767858841443980936994532326065725996975882421929358791454369349104390422637817675573224987314756957013416041498872979606838574148390973894482340813010956583016594628071917844798263328455536359745121872603325357817924068700106861650620278236810634292874145081373060954890892474450662277330838526810902090813243131511849533596968989039103170864371432842682490648126662406926704213367160470574265531382424342208560979350065014126838867933302418654622307472025320717893805031719917873491122677621899708478236081116007980195606821356266409245951405941919888659605278045961898798897812460445075204391195108742576253503374285344359966802548772112938561910122074296511208884295468554439251909040934596997623225136684493959391431058220054977616511932363355784477387007275167088770183360897310533306167400940748760848572870502540396522062498438780791421232920380618831048172321093001720191485125537211230915157190161271374065368354640345909017516919077376312212625722658664549644959123749618371939551519665045731490348698140453817457369758982275113774563078672356216976682523924529815904675621852858455891453014822265840535952639098539371766197101587838732782383755847244288253637262108186657407440201307721398294034324598455034889846916089350460604602972075243052225050884840981344559999075868131547522204656145766233140452632696535279292379792937392919037486967196463071806072478474739655051709747509660626023429037646844450582247222021323863885571451323474982034996604066211777772978606443414673662111064805331614307054651648294660337643562092912703240902104351027595403970654729979272108961839673150847030362204984020805668699225246595358373749601331417900353700524645605869477674688973094413691010744202027223857514205225470819089634991421944317404112374851728895430801845740910319994611280556433442262289579340517365029531336028314329702493656220118807383796596866938563040365542449375719742102493740570193694513848256986001953215162568971401835116525496006360110312028199534967046160974620829177365729978564571306965165001622777885273834072598355967397082404631525917673804229743178528315649444954503695640110936985581798511502721191591763800482965813078985947039731206537802032276034416297329698012059066824690143029493995250158989047710508025383515715842805178152642640065745840279170365562834115519991778849951688578980881405096867648256081575871689213785261434824019867008595949183437996872749380392439900124089292676454523422192207578413785334248788335354749324685978019743073891678142961050444496628579719868493170449749155067552127911161583805706968196572594815298667213335258086767899959649515960610988893062288696613263121755757586483262796857114153350264721407950235985958527648203136398655628137447612938148477402022504450859121825095624779073889654945265020370785100531156965622029849937475086136190439762995990313119008043197524580940000914558217454526625805274039981316932570018276842172231805140682005023092966177270185446003704330143234525164686645610521720692906036720273335396157708284888237288135889404534490226994538768784657248578192875582017026334879541782535545557549068250069979739505950461342053430926981905725531230338713302912850319228135696396012838534552115943569140977460158198777412381988958667271114272958310827089863920462180345379455624339718562497127140957925961923078188404535552979777422106889367338855485881072236768784859382251540354409948225290592834847801360135009151581145329214423539629875548306801558853165966563394478186222393658069731261285120024220474114337596177699106333914637580520358154703062295277217035148212385304932657058446113196562254523852860644493309181674712723697272029500262669493867606739072357441326860714781306327962522521358345146175319707352809011354314677739453471024006089517815558307572118215079950055883774454731926129253830499817430402307022389098160761531109928886528725602179498866339642061820921316043176801177815429663673507872419183405805978019413641380162857929818320868424446974760959467546593513927192027086066670096446912642578969760050375281909661537566185545806264352294921657908349843792574319715877064686820018182320486899825645633405013849665576402970834480618786696893121635133966878313623511774979419930548228986619040064715435959579227544277779439667263372974662779775357319608434724918119021011929439259038026026484174844478200516856843034661441250061225441185536036696829948065721395351334078869245327059129149828017411210718841342687878882980021071193184154769063232133035664704280199834162572610516704131168493867700277509498844108513693169564448607593170835467673690177738942973154551145922770111036084305577182412122340329282298744398644640191956092300014394993453060442579969384917723978161494511312042048686379167525306349006652395804402898435392555784845807220033202925034659744813261401733733484152208726498583672364880564331283046930530487353905968489776941066248996816465510182556276908923306543747477325157482346420761826937202001112884908374084156663787904917715791626174472533569211027963136363961933383031690960585634786515836410409521854218925393845365190009456821882351219678534912907472733457619087952770071453429642885777891979700517737331894256474677870595141670950151254363254585850590927777223574413690610705925417965794073644894013368462125974037769436292671078648069165694144947649627554797526997506112392906590555602998061827757923211986904515905942490767601449443302144753811078861683941736268247379536204857866736619434018375399507887357076956973633489060966234152033032736644168409155972675060681869195428972955496780074208880873199984229331801642263918301140795970491267195672661938762353423067783745037399215560497316196545379184136237601366609873437405615646163459852384782852331973079137019825090585326929428640128896615562366533668086796762690219338587009470620408502701789450516817868277031934278430701645193131391148579096169684416066209283732083338786764148839135298925848184530866997588412889658670242875568773123590034961649957608292377522689365557076354134082655772488902435754853975257909113420179830261153474517489394228238827710449742344359228203662147297399136740367101215970943082487534476980106697699031419407850208010006384516220354274895328569552580166987140127909455465844685317297663885922327228023922957255162170439537798680918870851195550148345006535420589588172819071594632777061363476090473165184177320017762749668619298300484784222251662526812410603171436519456728348892810958904469510765410361898853483266943402184793134763806133555152023602176365618271131545325315248318501600255035300235099811874568401397841324504129248995106356188398860593998518606626698374306821560893536408037221056922170621065402903346895715239006679969843981971994494884736379926562713791440855451262773768033692487909647451106309430481047440825975290276493019099618286720668008381247708280425348545154944826733517709915865139720744453559629062029789651482279964382284624100494925380966317158494746496877324294171486011775792546480922293925634847344849734476876789725518676844578041930104358838478744984719157546612527742106519834036887682177098564798974966417963758532760889483399378980386935905003885915004182247692621391632221151170732974075729995059216141953417954539564825806957558191410105474085836697638897485443567038088777622534237252366858625286860701112073766444177034759239022054029211833635920768287468191635734436212258468551849117378281498933173294328687866734127709419506140678430955963466118300937723559315500840818820429901112536254951586587987779332016060230253996395820888578524640683893060314881551188185106339280138068829477553386857687006287381871755096202301678908295772993703948123553225117730651413774797053438937964519477623368044456610377282423774640653174719122855087525701248555303495842547755111923104174126089604176453047384486184959876882445549497422370796274252261378595615081527071735522514060924714662877076575923280000636236617818518201466129968973204506701938791223390280196792848576421517536050324280495374126017027574030305342271641863949578600006459952392766917288951034783250731781367442373727643857425217753618604996157784516405621251200757112686925439127054804174130629085265480196487981111437341575547549991708223661965071527972205089698520513649053554727844829720710781457451456846086111572956596317579388647484246331637656494481161619216046287370290404097536728861306625138090935098491430915201368594034990362979313644033125901186964880120878666141208928978105070175592631593289475933353555853961535737486473277884692900514837562696456927138301087192984228256114413262879693085543514821959294806708059222682459066959870498056520226321886000458133848213383801071401193705031999865589124946066131408979946504502916697723288306019518497855653243552234794761767925765445820526605167994476072270550260402538069305498861065092174655658888730178883841289599959659159322793045738084143789823577978122166391540010741213360957168963667005748458952054792616196173666179668924730031816330776842912398177400293806904648200505930567210970470723585762765597152866857405809911535605869057244722420834985942707651457804339879341679576813796362083390395083293449558059536376048546223113625167923643813542477484194804358933214598819421360579294167412261599983610855016724402649352902692947624134258256387230319743507861606461769510121854106322030817166112414886764403388729757658443952202219610073743454148508916871337442678359527056131521252620738693321830593565893062103049292095355381454951160121464198439793903718964398693487841589092209093907042757821905935709430767237024389005345312096700350896192224298816087686432982939714882496041244651328082112489224188331444749268803634239182966671662822415678183967524379665967458116991492813690145022797801359769313865394554720684577771745913853617847926695371036950896377227906128123654791570888690766768908193749340610368410673860054110026278700874705947106586451439196980559706950556505015123393666589057173313364476421307065675731991903938811893825307521088285951614750680946883924574001113547027478698216862127432149766518830031960333456223553442141736811700595766349367622329069184880323734519243491246566532971823841739691986587133313412071051707368341724123447237186724941510842704961554950379550152873822486053846067672039287586862626169843822805601587578668309251223040159989753848922836009598075215949025807471715773537480669005001534985359036976722971043715921098469391204905426246339608550824918232865843934026293826856371525962389474471783369996618020115478824991332365221595665340485701123258277081886215013071577934600274395168927524355182396240839150123473924668651002227673515415339817443806293681884318702195394674578806838733045026699348204740930850952940088706951818632548354824966260706650249956468194106470407122731100421544185549123163407340196180907498723670338997499343924399165880651283667905641695736521605028224488521757361133174294735635774830847833098492957430573060450412840297114897365523337025293332859341544883137400581072624246477515535611897734274294259684019406813333814161074909164044307805277729770093827687366826928083628346772591003284128128935787611886533037994391571099173130876841482981473167438924150708123330466386665268851715228773495808650709021102713080114880705251086164181615255674817104786219400105612800134647100048960081618136339861314375953783573446347009738022397066733317884712174216623797833950508494584056480430059112018417300502241962981137643255508625993667297921212396833626254330792019745755537985778603339936113973147973585880467482663190555031714751074082657545538452600524391171639479854543854640477445274442320820115805894011041094538330920475598313012780340587673381134517847042396208849358293399476294892749263076151959475808635230500390635269755089737196321432027975808869585297731621983594425668946663498655664182852784053071039460383705531953070578143320616548372087637305421510498196398231622394615554016244819227488988991548181616101412911142233274248071051202784972384904402642968076980344031601013659880856422960754069569557133508005356595188841456265319836545998149354703533396578804947612732090048553113590869747145353689015718969841577548117779410760419019145652728884040518827950849008264536013242915228888937975199955998596828893608911271091030997306757062186597296734639843061928429550429210546691609154182803517832368415521818655679634071112430643855154156248975176397718812620984087360982992383637303027505941877062626357378481368868368293339698892774446869696629499689660276916003698605968904718417160001971841236265199793012787419139272279869802272459522940152432208404817539812400825763713606703033447765411404274369962054125145048270021051517411890882549260977472146205536677900755200879989232346535925261273772769545671215444999501484526854325974087574445023559503175888094678670624279504968122317381953193469955615100420921536083260321530691857272259929860039539254734318064647706444154409630859833209894281173897950682749552487066282732805364792474107235461194594426537978749869795964322144950143520616632736083387789574626900889609416213734426382002676575339103418924761056359888170083539644955852192240769813052521731950132374196453428976165813540733130263030285478022485192552078323237454832679632890712562747524612292929641409424850290594741557599275124250850699663473537642940738391820741909162541609728445916256144727217059082938576767130454384335990826160862846719632875160286080403534720853621937494941366551991508536892373512748507429481445196541693822917931530918037820472872238945587726485845658358368883541761056472125564386401518568769577988275174222434711115526234369721170763345046653272476633423782119587911761578339722874708451279886599245183279164144598280214437270189462668035792333375174806410499318521884550682118360856897563251181387504609424195574432639719843107892775247235667228839552735523606622598788598539632877284454683694923676064844122735368292191324554704074421666820674612656707964301200553515990474170854616373362027038659522738064231262187406268909039981671086150219582650064497781735731850521577151608476313142971006824824913916249289255612638476738621823334522830285701381554374765057846569058839482531341998139629573625019198571058084667923649110592908805506833821771837094406269993826919706824470532005794540835186100366116156094508242398650419987316238383574666454521887359026121934531604858339212666377250620851905462362373373281142581664384249889798596679541759200369130045370371962753606871830137648121274105614824487959863510850054873490298447752975753493966553071505515441039093865374166652159183354997382566893264526862082359621402396340971224268268700253395582693224380599832426908453047814199149893110710157169474955576352194587457686296301838990582420127878675579693472318503074461060348391459879497794871139135462902548628222497438944743868266164360683181248859872326879107661623053800860292158338144328453224074623554187998881747238128535968382895006202252464635731610826636036431485635531605049915414413088721541443317452537321065139611973306948781391309687331861366696193940257200499308099995348219427655878113235218778124571834239764680697306979340608138301890778537922762154846640882312642981642123941745697135666153982555543529498172239014522235919257419431464218266477688866772502171232941522897844616291056628542007145388341678148913456674450692912906319135618469153315855813507648754132185945574577015648665261674662085801070023556816875810595967699890198547270641753128848749413907086642080806276944501319670197033551810041719242513644274485219781537035777096179780365547150100641818050275407358363121007584869042036045306374303438876152382898355737285260279010965811358399008202510641500684886037785145170399362693832261888230189959127100087907541662874832239445228502391848679138156920568635432170416335863703532435303860313824517889442520080485301480423264006520996296009664177693761308208068702013088347209999166455805747029726506424859031007184698953106901743228378475715367509849704348348205993122322475198548535455451980842281450746416932517417116603293266776227819083489722751003080897525205030246649351264612784890874118303858779985696639063450520022123934526686579920442386148475724289010511432888381458370014867822833301640727611403694136211573716998560584173544560803368889069252435338105397159315045259209401288682676195785113132383976361566212857648264097235668922065045948831798586410105643818698894289927631481613114119783948514389640201616144702822217564827342006461530161701567304518618437705212706257342258715062895985488617620522961688656521583778424714947986648770706732481799084249744141303077278122172757039389853107662656948276197633287446596045593501802123231361682946910516536799613149656188142307979002819702075307204137744966745306251107845657924638003827385686022458954061439361499404848428696980648326210846438074333655839868808998847151429570101451205496684289667486610186687651297313962832144102683416586035991143893180762564434460927475028253732472243963582314418661898353373236916808695029220481436237204812347239217482268429106661178494353167259238504105377931104908157295800821890410996537405229404620198482059471956546843007682203732839906146792078803130621080742887826745652227951039753018549245010806671435652203409852097171275158839048613112946667339640992434926471623122346056816004405457214628656625616892869974683821633904331762863708095828508190969741762120740550851100181533020817181367176854348727208917260674318103868754990964287428041065285744478313994874978924434353732018837509779534604400528119785269275442489632574162987942882550607639516510838711766467376638752697508837939890328835740211229563543208743741416249491051576822711741771193223294539197409213659086000047620243281888116116364492871555990829981454358403717095653052756790061038582200502577422429256977373229660938546733692944968154326056858234085073909150459231508132267678106363250595862745514892282856540694522210563558028622416764055769526032218335623963739880801424611875505460955509412272002001667329078978000709638482831244629559654502212074332643657186971345144689688892295108020016256807995121841316098330970217827686024487144336131445923206014734974814869132077424597364339492007308857482067224118479268240533045986927545897072131545841540477232222083920803632412721763116289188164339403686931713558268000635173209745052437830526334298205158572929372906514408225209314003833442860094371776965082929411189712087370784093552754759466760770073958299632583886106737450792618043306725140535211613376789603653857985032218450837234572589397448244920328733860279920420127995062845861769293493474864504649196863533839144956932935349913992245366418810063103071095056877344542309645895436141863087624149444741986669834771340530095779787207929146238962639088463929969063931016383363832131953937930428049848759627949597793364835848003784161018633174149813364342738798030257797021830886503641810622157102928202158718144562664355191289239074644949104273596927665231146956658445818114476377375235012859312659257607505565019843356775432091750690113587867161954936552029139094377173320155808072273331910017793165196815422808837057650759883759702175411773808713798533896289683026298162805530110755775897853482385481298281050149628858871823221804888260182746164487902917284184000293674697066526008628284388308813356335802435105776352859335154443801010244994217478189655318847087378155223644071454282954832131189537540818216074865979777622791023082336484361723366029171933992616788286898005789119115696128611373040422299624444564522881179747153663579146150494381217969991171955339291546798588856908281911031471838112996786565145305967981319080042218270900569304480748300834564251502360936375255638319351742703436292684023477641389903904336235185135026393009596644489877604174378603817234206079071437119444753952284355167788857090934059098426280075550024872583065055751125935389631517182606584600128932682974216179130811687821272103921757969833700705560047926599743236495254475598623484474040961714756628827532509173759154603250809601144327041198731596968007968936040759775018037409417146998188504662898263050340628173028231979912553091836280779925113306555777258958054972193754768545034660721841155705309674742472328699207294954176864890518966875077362184297915115758515906698154334699735695187655323006157281995740879843326878654838770370483886796963447104488103666255295862834343848046267812214764251660197642270203629450879879092306899776262202336341177118201539905017307149399611554840371522826857799838510938400452826367576126056398439135294087394557427764849924141468582429138579177562329540201682478667600210215138266641101300421780062344321791952368617769613880500659250907025290015574994875260137231942696283769173901232800260299278068310630273490101100314067077900457927698279313684945163089509182904830296500190892833649883721439618079320874232876806864909920444950735986052895721169951904040833898408356330664385412889007147543866567070850184695379003257164362715713573472251059295865110984068456897156582545572563335559457657774761802015683785236403149785380983156625318580942578510581390461546524807271983290957729580553008835764393546571457913592767466432544838454558273091398616717779959434994550317477143659796683456454234578234953022033793923089622734428667174667986556825373251453774300922372120275316938566597761078235980188630750756040836771274187145896698345702753848703603042584280212778831071351132772777499204648303734048642790225836760077390083656159122196628426903636660298543235363179945147033963949613868716717763056546091885655184434451689033462458468291241431753586574989124759556089604029215539397744642887727951622306124647793088265423574801071780915277401654871046826553570309898131083104309486675394151163167665828140370086686554764383397704275712504474922142296908062278760854440485881399571274756130190263751507387831188514410053710314183163474336751174923205317682583915034235450586022630586870277924322969161754595344045744739971171211920778991581218062470944155069472735140123455020462906778337817621419189014690880707981810067348593967972669348769652383220191082087313696579981377606214334560839130799199491618842615176620115163301336524026865060392172540343455286751808258010462905820836468110735183372975196145612252537135677118878425199402354396224247751737334535338915072628823213219610084406315154799859952158888471159978375100106259724395444290564783724282711276886130872971766745038778447060504981792632630112179328577963021341729058450693842312785744709828199036893333232252456587848649909717503202216728521499882775465830655901595843516185552054897826736135796279574933052201119161084208023699613890043993283506634518164076838998792241323064158867250047986219148727609138365553456717578454745567604129133224460955148312535361128714521074304363554789821369772009279301372617048908280393909998355740828980056130326328048784070258801908538773031881871273074613664205091087496124190176913449970774575283633978323156110356482124709035953681610393841375688337715782793829413546239162705760560227177983532110818251344199026772861049687035060733720893553086400814265991650872235972694624860483666589113039585075104744947269939264526460552266518924976453080721310935209623157608488311382603647916682468008414223588777410461155693227078879326874361283795757685381840746778209846776273672446911189165465543048479710421523977928920676389663589638356641805894421474539622623175326557972526814663117697801299371109824534052292709330039962951371443831951350573178805666396104212257787252801325283848330829972881825074988518314717684205642585248475129554534338676312935464407773405000721996838014052269594709199118955188405370077231658195210530473114914491375858791465623887194647984526528480268964713172715150104012602307121222879224688811363287433466723782055811179420272164792256537042244877632969701292769131500425202259810800999798855902356890432902314785387387240209474483853941778367943233256130938177205017343097962453249510339055541937311556781096005736046904087935062129874882405284974393964694658467774362370280141430030440166179011657976026979051136930909194130040439925056649562424683802034050894802900026376220057864055215622740155388028003468955917543127621861314760525568998950949893238347287908253998423463975791200470117076564797800856626474611921493201815268567633485843782147331176775382064248945809658200413472695716237038372077935659762005227802251822529632003253692765319844596583810375507928342527858259174564350062608434416311297019553754748518566666109082130176889791760811867452945298815710766128602140319019653862395629151313915405878496630720194218580207054805464477547695567872089601597179073617241406114197727650252901385992813531379709256036120684983888215192251813217998093335978213175107048380602194223577108994591747051824708603819575788002816155616116658533162847263728589024423372208724629332702835317492841004434726304179900869416928737222783808028826637801392053292867729280423656591256451489454928932008400609684183178390593490237620500022433912426191828329180108477069574155867364119280128349645820683311575462623391664181390619885224573436830677398361010464231646413313553235227375266445338203004095510321928897610402878825716543401817838874101554129489492109750777460955977152478691288112448292842571974688204885654909561576851286105935267802656143938335859217886735660059653009853654620642543463791062988857389831835436967921926477578037976099151997763156973019113881696777038313617431644537854570073193605219700151735410076686960130543727588160704998778936501742224661743819326919286242930106198425416346048533061312244441005381190421705295021020394928499328022918752088000318240833795363864223783182669354546763785703606403992213306997783815919525955558887819155273311550013170879490166772728426303449497471356587672814394265492052630061908000591094495621854521757908484182984669384194955881207470010603768356344103320545001615165724072012529860495889470797218342597016438475984865828098086905490367726146202153986362941637717930476272183136596809685002918031141079704311381186418491415869758498660224546492765131028727586293867040021300059517816358644077874811780652256850653071350734245894460268346208345803133921453542233875444863038607087278502777777508677629920222402710743245913400402892872090265865447356210842527192228663131418011220286876581195927271283513242150881645019120899669021973736772018155467098939927354219911627316526245069499200284852366347161921013531794460181932739607212488739815750393461817020822302795639335431676555278850293516327345947265795104011499734482377420658757303463602505161561392726898206604832108554232208407202400309137515825417460421057455961533919845890027397157437538022426415567778759307934804245360144550080463441240544089726593996633007997972592129223109419470783842041830759662553943244560963589541422566136737969285423713764749526337556977162602199226734913942723609178467619658720575970336763996591575636399342505878894376683014289164175738503388810078600218625038800881754282047678427259567196048406057121007965616492691699693920855774499424977562114141333324323795150936409664134080844752861415797124250850592580508106462051245722168848201979344115322991552482048598975130100755988479695867649524880279423231241980738873590666649649151139629244887105704564341997817437109316921664762069094056656347912220876673531620143957944457621663868466016550053394793158087747107647644547839610999272348900285145797974434466044051117604558617700843387605314800885367357021156503610454879928403753217591482018829939970865269064553815917395418408308262969421422960361926568803854599914531553195305193918345501858845493495578823746509856082129842400795180417637267312953711599532987137948096818664554688514436258350366624408525585930624414700201882122046421925917234593398961925790163177529238655519765624923716284656853893447270690882441102813258419107757550548159667543119569943978415163324068894070439266081121561861902530322071390646769773268368150661123769280024896835575713723112884258276892878231095678118996696977409489348724146614973972794941266107636940295823628303482422371763319971843239990398128493939858682724464605407169925940845181835718891094351264176846914779092252837837532395601947453490905510164233807811599663448262071415872381354203240493175757533707935096946134828527465137714683420562623632197172961999170866638304381504998872606717267657248389966739493478186405997311990052966003532994139326485263280930082210836770501971287076699002478130085130527296684406061016437823071913630704942204938341960095350999398713515879252197394280615135656431340816156888490174782485783660680040392675996290863093790311150672767194187688246283075188795068973905489798893999883626631762238054216550097343843607589214242046806810224873073877809478772352739016455743067898417558609780598011596558666081808783531930027125973791335895789733400876344311886148697683788112151087712667757231018332511139198516665079680964485325566384175831166949388592161416674567555538237860442445571263339667721462244674158690129562054565276810473636826097898649630056827907376919863156012916142569306478100698919702022653867416260304963399712736676795742895556631401488118461544582007593167883566826708991945569858024090677654274445079856845354905475878108274277202197966003820209978659519699449293354316949164917055441294482092967609251479903225889004953954995722993018062179262112407110162209578552704888605381928423608529570140657674221348313326026342177054373095357010890780730221354982636285288782655869156856346625947313258519565913846892446244583440227704967066534993872354752090977064881709000110639125571874068247047136722570921712228672111917253220469145969221561229752437455506882056173695494066627332526041370446290865446151044256007632917948614510692258879443748157789125088591113417223303156749738192086397220651352015828008698246876537375323344666978377328101114526195995886665010821688159759495666029035275833214937286435874599676476525820860555244733912117129797672981403798909728650697649203220992792404020662929795608333348370973437110383136407411648476005069852015674472277835899960842557884272473530611705160202186456818014842377128587661659119901186881409516094024580682619905112961121275457411927534638229399475349910748595614107959401047161296588915916567992554444225077969298705769705847914304011825454535611172427337139999943267212771932319339130006890262678523004204477598136728474379012867170965176478255946009076012677038666595545097404684858912713323990972933798358653508097267094853161645453079087157352995507516924250275201254820633988339034478284894862532638437039404450543436312024049568194850386290285693371915547792962898845325057659768207643446294689814524433420558044994658582375053659570536224403818429935935441506813507092057744497999051667690538020962176636560683578158732037923102676052862595077654529057952721042041385246156860576562821874755389025205785080074069337294298773746305792569937750402685661586616804076154221619388979463853633831125958244187970971954952240747959539519422976858251390076954836547899338635688061829056793407651975802467421791025033221696437760044128207799049032330812317611237997257214692833121847175212958011916642273935144376698375199845306457873664077738069965291870312319459500416451412022582697246981461488184628904987272836192381272041977916155713134479968757570339354019325461289360256544031228921782203409543443883693546040895445802479018084762970341979623021602945161124769165018600598116417274382667307289529784092440165695776572555572957613024253354790950676198191970142415166593574460395967361853255106100792443466532944181807012147646030124862963997533347247459834339008685160467240225216136263343752004066323425499308421418588260982094361574324084564710825443101883090772625857025112104655164462007203915374647393215292063379797098517074773038060536283898151196954606442017113929566885311883280626433431701717020517026485281318412516343924730717133554950605158671361101058050469783588061150722926127576939521408030298283970431417265709132950829112534317694308075468655132922242764990417404748134107636819495739774643796865183044465668398318484194824417605986382138378235313730452285949831010176224943940539018649427132324272489432022720850526670401611065492980272688629950320140783550068178326612442947337934708704036933947444883640146301430766548886919995190654063116647678194049730100375198570541672527647023085919922739984234149334998390978640343907692242729337668926604934944169471569715547059904217421925882575342592999565986426768451410612384687880654457917717504027762823606330079437584074366948131901830157091267666207989331700172020539549068640945149774097741094373452109428596847172702340645067100714287458635586867823699633907994488074376088353368203121137324451571040418642925879449637775145772351175866088174938782675387764130377951906050406476302680647426906879414474482693519539380970178496731946452891438922238632801012183431411809807504797024389919357272570527060547047281474647446208222454074714169406520696951676001055917701364897132278420170033566432055511462217933132322217119327373477715778865837696990791171131728353740193571986318244470476154481845770252344124845509681281166649709060432274718336680981167836515700468018768170956889324184407362310602566274757479697637472090635484029491734727487308120195052709637583607462545479352954234171272681981339902641902576337361165697385508744130241104699836432221001267728682180949890762368689263384417518856262832129659941213751796989052092475199878946684512057837358450431489084456881613840158803969872920098540862969471322598632313171273219428914135494323359122937242309660154616499698557962763275554577984454403223040904934659346663308857369596023285750180268502120007127142076555657726407983020729194806512936021776113609391135939353081217736284318944173962135545360500246138787960676040805316930025093441825713421613614440119152289530653007779053972003396628941794659641777983559253422287774656400034393526477351783515933055719947159812125038017559547577745951520713908433610011537904901507890705670881844574114508830512299700209969611309712189372853308359428809904927007467960128096971829283941281989605213233610705214431760149950199589535897183369078283138634236857956796563419293049769815209974528878312145973684607567476636060039687917435421385034895326295820544748769241330366118328689112778317546029127912955676007418733225542908244759673043008045896634533781987536994863350537722445159010541656658870698989013753888024327585151411858454353652987491572718865356408268327225110147009098986271677224152877689862267703698396995978281655794088825371837645374022181884118744813382879471964454937570020723469625336015922182028081797260491282924207267129800242376002246485008798898857231588422146946147491027891554652123059424861027260471269813241493814990176735748960941182680504771730131645894682345409075051861661015410701795541759759828042293862715551077779967459122466163847477146011178964858677219186104417530731906039973098127182191067244244194814711527834303920653681221424655022693020656758812764754343855734742632815492770562660066546711848765207267335654731669662177069833645835826830207766337778647489587312552194785990526293246984363824685738723284277789839925737597904038285297787397684663809624175477591483096429915528145165803728244231957520927726582693230597524612450564355755914053401429767508244334746624398583437614879389964144402514113002468869371952157830448693443840734559086690946448138235353204219253479168899801439178623237601755214594654274459179747606361665240186206188847558648738058308937960029471475549016794959042815618428725158529398298363206691979956738947880019958798034828312599253297599105020735073626602542431051328629403495541763991094763294485429044481026891525958952145732012266399103321680006863504862007357034858961061790277660718167706817936631804538237919125956198438857609518028943215796521205657611093989915496884031377549393540856953449908009012703840172626180182046673795994682954369719423257922064747097589525107002037741719426389346496757154272504046938718835727756344487694459508498638877616835505884970028685726928054212917958581319142283803871372827552868306454333148688092151697237876013755279811045966988291777962410970709137037883930450645012459886785895788637091048216529811520583322780817799156082638433465541976031504888419198608484062649003995878169329427061962297453127136532694441514636256973427524160873440269797879002146362696262012037753388367754969157208241546392424135057574943231795379554632385241993089406051134109851878055884092735591167161670187118155350582366098569193922700064682288358994486575226714800463165675219420196618307034521639282318251127783428328954142472172600810147875803021229475153440371272332167086572434181080477957841442651899778860114020271232948237623382689209641111630110322175485080943353504340776283415930030005339134180446423526240038073951095137011158509534732482237438035089352893521658778097600325712128354195312255082041269876035418900771365110860471819410808843111074253639171389881359753193233465157986477504684575869893919631188241144154303570400082640126777953841106665096407904987522171722641564904349596267065632899045783760113685132624683460213484557564626077735218836021662216832732675246600907786809348433879198156466120824848678050644296958460210293045372463348760259962242700993707358710745996846332376105029378740807906736268831432224002634254183494649749433787642510786294049435597088950968013376240248190955811349132979136137997670206146980435014907067331506378762402066239070271832790480285148295606115474069599725619492966830210211930502506226826388089654062984556197933891284197588113582007257435616857677236659365775185363740768701008248672732582705594735875949915271835476599156303913785716729854404027517173882658738499177463098812776933411133364070227666786105071688504509241776817981250769109509091441158337030312240850672305458124543727125939201379371298950497688964104658348507481945401185770235917246901296651148215007434229928281222799787375669920071296284554728348592496576820307884679506470219473098014949774430994977910414662850090667009042196029866331103011001113278230180588984555896639346087537285190743600228423038962151716195641806562700099995601348969285573932626572516364002040799847141233603888674683408729576146976265971507573970514521674038808385420153198494093562083494180844821651843907186454857935411988652622403271917749385275782250382269359705400549454563248668816693702136705498488652755267963759254295311527394338996216801552906883513703290248458258150712763600548356859654294106517041963038966990987130227585345904165117509748613302711360435317037171841680987314181958503156487077214947885462800392627751845665043091260341422184230421013314028569150289035417750909654228140833298247325956328247018868131890697734122400982457204778102124425786794196217970824549471516573880791213055942557982936591018592952145889198973641057489089488774613063868425977564232526863463439677983839121192848155904632572684429806903801848937387866267760146675569302143175290992680576999578973176289166009235193383288594182243444483733745857062267504976827361392921256590388559093917896293628679219569856722077114516768711517036384009901803018928779566852973917705416096145306993759159622783391711279810129843002774890935874894539811735338157684613950841856380458329867284936286928780127547239866389241352820450578035388536484709732754492568009427559651602910345775124513594193215268950901454459524169611369806470811023153333882766622987028410072488660528760375404302185784296422316353133503406804027844414752008268900378635478415653636895673116883950433545631780101661551036438448861498271395607957291390579008646612982441522813477864422645334901586371744886261087774283733758627720819683069638318058811078938957283767783011869997008943365606245718983815017674655124808934944770008373453061948200224387252360495475711739466291361825244605762600948866902565813293113506744377932320250380205435018529949807781052599853044887550724931255065100388571908248547838993266028603373935687364455746756966011919160143880775298766439451357947607144709888932776605307411631153013911049232821931105880973670474323440589088285640026797594353464274210784149061540929624083387910815657899094988157126902366200432802152895896157752220606214579882840491823383657351254312693680379872686847552369200777721381179649240036159023457700349411534068335573824873913135391914758158527625413375899842036188795513807317346224477123585367279053008355143691747085161009147544822406092245575761039860966356788289455003336043337208465567251648946232727869309895094558630983011437878258832122990671329181939765220257245584008140241309321334209506896941907787020261535758021821051232908135283195091572599255500671987968751463023457131529536331288669612988751046150859356338391507026224045056795116886946051109466276723760723750528845553323504747748998015828804575300504609169021596452383038262921063032258517321567528089135848835485487124126532742471657522015793560433819846488377660552702655267847083560102435686088326611788097703136061377909360911308723407720961810239015785329203547127196910567479470441464331213143956096751662611289444050366388193402864204850380728609879198298048731334990048455219406573465415553780146623057839211851143279665124261860447837066569424651096974621110662557267176417196320000606794615444473830095878493631232523528518998571980916000681419191861683890151812480464347190128400070704117380054024841599367102849240755930396348724030137535199115751180444162615222008808978968333324522000440429731261225161765569424603020753595893240208528924924352707396565138857291831649476344881044603214390876483265516729876219997368370945854939343383325884620594015729844642978627786282332906904492327659329244991240461338339690152475856010196827612372034305510897923175286777387820132668450988071802682039220280484921574342425680467306971771218734560857152035670621700838936982753619171973710794073999060368395206127922854971386002256544673985627696756447769925630094957092701311919298249557757637508594236914490683476345460439443713186795630258838268179289757907386757743819735208131268068528419443653155109713356812574828346979017890143182775261808833136399736028295990100005197243770152558648191061236176764114583236934795506473752503406099278972307195082778497001196031316247555100872885217381291856087677478561960638935124092507858062866821553712362464896932592034892191306713471710997703373628959597835095325235982712896491987110448156130108291858127392922110179269486428196832862469292108464389599692881655076958228987337238615783294284880756219323095740630838089146283641381169292290832336756904067876535761639617542666459380243601974719954034836508568871288552924293518679946556844513208663020748995316987888798390898954565467592320605819226177883766122253354733863709677295930239911805566228092649500449877527733462521733263893894949146540382124321807361584536114046021555259753667202239198810502846810737704377232931215975362275051572387645294363483879135289887879058215501111042335845183102276113343358047897141497715251577898482989361644918289793177903264672287494186754532691836408798282666191059531425286630926707017324059507062273866705792873388271849518797606853228061480881864659328799427797461245295409526712496904410461310739091921123969406835184469699304716866174240505192229767529852966848673483681162576635255457522440318439224623325561652251410423592327320188833636089013605047263374962058237061848468952998652674663630219587161369367867248353561099403738139969890044051538895903910328279457281511397587762747445318429305366136379516981727460520885464692320417591143500135039507534848961569249509002075560557543841702901460781818699249239391194382411002570518213882300980354585878116400455303112771792666147437748373662374602020735384034823096876778936230561678938067317856631371635387047158740172890527249125208271689304373982296588377632265870582768134735329947863858277438165477936098561315677934180002014758042455937737830360395631349135763401350303484073992757865953439127551602075308652365385274503788859712486671650039877419265374145011160495071001864930153582757306955302684228758483403210477930534852209549079257356397702757373204550799101581843679809773130351644989780684770092412465890171794998639015234524231446407331462397045474526050430187421299438212570644915073546929709320638029037759118818739015791038279468492628606493557705792753569998447487845448455800506346031019432771827220312508097750299519197688024658963981141533713506843610011310996298251092340076886268173814285820414110607895701149506894308627965260288795353976116845807304352996562712209219685525228849169734490752782340903793436643175688240831929497835431473144939914844944463428965717965533285040094675939963594990733864266562187481072632478724304062904946792025384859153980266086302820683710681925863675616167488300314934301281052995998880618862997236896416520456806077951010091774657308145469192581327312967302559205871656588042033913153974415917287194875701426222147192789110660275076128944273224291366994665927065725104193631023859817549079869943892438890089393463412138281362194718079811145030002043390157920439312553995192226090889997125630923302714291250144039818705004202596087808708135868664901772444736952194467034906502238409693051825939968039421038583216016400769477891924212148954359374400999379643728561303628943116743708946744737971676182086415931683561842400484542707621856066439597880214216431665190096072817460641376846555288918618196034882585207484555661908969318905511599162690872569882176388463745955064737773914158066740766500977834149348421618440383883109376015393889363106315487134597252904837036883415016860751585799025411531953560707703814971227446960968940953052600980817492700921933267421388744897485958260981627811239347933827705619740666378971366211011150620641783273090943864210443410015684879462446967599935247049308499270573111248239759233598986452827704154827762908516503796081505783509823027587421577959779004592060888004354874347352982814703676657845392604783416704594176917489468082537728362160668568691135194523833890891891110912798514587414076502852590672091111527992591421284355439757589985220717590994624144692846326862634021582660249829211586948010765766605491619087786452758667194236834434314341938123350021289777131425000529224971673107771001716851188822998892084729467521062242455347160799120832204726268215968866450816735096164393399244775114623696703082302094264625367491347034074245876652408826191033625198046411371161227393497964475670145458128842701067719626329369178482286279120561849828090900732388615464457885782858409709604774411265916188951776629166252716872171876251651363170897961764648430969865502038327499036901395661677245334777359428410507910768933523879355498187846781230812595819765132635425639402346170289036070816642417750144015178987133940719540680368401437775382302327416865127331446717927706754152593737093421319759704093148149199488987228678226746965193156630529145957136183974955247480194339279493656351149799084354265713102019714434595201177875945803750787462518049950522139898147845950331786257848999775100918367587992192282605503802850781001785441580731247007138124481319901891828791517297480631535418402724973198667605030469892140012207784918654167062889461437398736216971466574033954035465704207132586866333627928321215614881054507326446439898380024170684921991297480094285081669435649295783434412365261698482303194094863341021660698828462310983387014189280782073748320543074954164289632481395094558993370449182618664265415081900582707235884189828099801915103517706388164396642793470437736480269578536810367986653193903768776582660850368718103572836664336505771722786667287930908099722192218881367130934805010525726415738134064117816210480678714302389166811566310728760536945753778478065058502995269117032333037167196011235234440747526812892835586828684026325716056974500194444951701806618108190644105455246621997460551083766582885812981445152674903802269567811500703052376160976160751647435839334104077980557722934775991343313672159786610550734227837116776183199485930275857261397058658470986866795339609462918867805571711368786100785500743881857106412692050966991492894227497425451085029268848939544748228630674993942734032486837449145564735830378788605984756918370045423301286627585792709510678969053335973429361420032882467148804583531441386307976265974048930871107688512323078607934245122017154558018416921640760895771328756451994313802327207500512875563762033975330060539152081158801054294431785558933982463564583104692415828661178849010046341407609499821446541460392837510247350589440734919649540370272245345722012446368700313848339842309183240249015795186593378599282947015985795919685983868598194490544129809748419955368963699635471720618181358552592623299539916937591709242861366421855846766772062305444148858262537053208245437448229030278027065751038001710881783281865145986558325871955464585253419757769782177292361207133364124028163497001437315008855271291758919608289738898020217608210487754500133361319171319762085641491481379640663040654035429084875144609304542879788815724796980056566079959438836482028316033894667904451136553073142332760578710820792676043953535466422536781850268292288474386393039583740097385870142651086344620470517584760549904572725750315085058585681974684292904170671661413318850438469807973560177710481176836641077939679436202684819117731482408997692555128826314527801264381391375696394891108464799849976779062995454495157317870080407124802833371117026427230154423913602066185340630711308281520749753719314684009710622503719592163865824282289408364927262824559605155252350591207841467076056758736733618941117427616791555301719943675684792853267322657804559329786442566694443389254568991712253772984042896325472825553367989035077223103164222255936866224029328970790077496213095713496292896492938787597564476663310010012085380491365778048694771004653842197087555332495654302279840491862319679062531769931473584528027778205886769223247796532393559859917992633825686079312971530659553948783277738880713698149746405066251751431410646697548078882506210803693030149523602476687170177830459449398213546668120189155589510932377910663974321717152861012900733351801133111413566846800791039962245315059620716207040285515702614335810300780277816502377517200967856240169078815127492674101606302319578673330966741953326317915486900877212517307235789809252253022563226541902339914103803099343538458027068033444271651927725823425369059249275644499599318933730202415613392172868821116886256585270998729060165657108807389487583616952170620956326824609039961837889787201822687023785356834418100121493461723067675286359901128088910089647377924597956882500739850238077509591298155530669248953573727641323856684678177814057638772348760403251294676471359436659413455310631406958562634633689731065163807435534312610069096745376501440519811834923531887194079939990955389289577987504772778032708466093615488559657996970259562328028461747441648263204872412829894947810298822837746185618582323346671858688349581842191943883222041292566218213616277944900410223801402421658236604363913231229544346569498272220679082328807024151373524162312274775730325612470426854433853224701279777859978351819954302148759477816076188527083820208483499747127552820257969469966553819395937982896137784430079530185400369661661157628681207957971615356066202735762672471209934826291145872585661003020261654600684814387146083727979259614599323921101703973376987349543904745166541954737744116188091670072852497347235348009245947369144102322834363438410372077100134620579466406707530982408555035768869970078481436755104015453365221491888383202132791737495225085910409412646261587266461619176963173314166337444938488514859513586790187007958173647585040709656344453006310865134015456864546098577937682284642303310173279927121446955531396650548172764019726579062195388132535096325094744598989108785901696922581986048732516163148722533208681152503877839030921096397314087014632627748736199925160369035164018132286384101577891383454820869539491141654192122441037258823537352832966225404053959955125418804695534701692796581808422169114677949577090318147199522420048905885593746441615349093468210952738190692493401258540162129838882360671129904727853825109322126760086356788729911106064744385406313070269157932911471683574893086073417620348424225579743251001003864368816055246682773280148166978734963320996341723779237883035166054871671792874001119144726245671247002497622458224027397707027023503237712416913149130844802726400994497259572092359302306992730005224907365141977781182720305259060505366479310184870828397624359765410245471902129646244072187868542913071991156022134359810926127809924492988353214211516880443052422313351720366875910920612181715721501323049150385243127601602678071027790598783630284909951332333256554242832331269708260482841091164629355307970134715999285642688988970076744233464896500451148248944884381190520316202395612515508011429345593840225890445235491606770575264177519736090440204483367881891568970277893660449983167550333460997434539066796812379833136398445862204918269859801850628083650581758563282867239702164703792611575436878345664046590607888585936157260733764794736283941894928357605048336449401134986549120821004813255068375628197025686969954918762197639720450279004466756395119376131560064544864855250749799420850028954444995335745046836622766872082483164135994803070601611822309156175259528490028995293428737617351026742418815937159948909697922257721440139091272246178883874360805196751530314791141433573207365859049304277337984471291954446454304400959751830974182337618633781152912801517866360090164769745449589573231467955499389337513949564362601454959264673734721602188531326544686008853720772213452751031059526253071110235537885691649959116922083888770780517354383985678670150963780886864757576698253235404424542840088268747777032853826199762542581992934205912179778082778705118584523089729856387686511275072763410035994146601222794895749559203609946037804848385525959910817123628274420401784980211031762787788750303630226361609766675801060395554799787456998157973342339974244475884531393345366459175525813475504634426716109489081799689592267046440216917680510059071844735263123541644248647774387877651738534789750140252040693299113532556148136043532968312928991295356152904027591317677341277704636530852213257548630793354788299638340699937151542249438088240647332631233504613882159479516917592545098480979110892331137789539664074608345730097651170607524143628834660918003849063569268532964005516535997857913060664047455719084866250414627633572044250876603320764120027683714720258395775725483081763522817065775941532708326625539109689730585045622593689849897562270215826526528062002518441648981919690955821207898972671764613380083956648772201932046367188172395470493020927986610411846957048684700496386412595306737666603894217618938754237522401874581597228442522907977372292551018088673990839885492144913863562538863789161591888424051299819365171369259169577919988494941497711519431575582630705994857586353474963975685597038626780540072008974502527051939796981252968831191645904520975630528337309486023832962721322569007376753391116829471981277057426243752213758250320087363753204645000573891793465923557708362204145285013907946406724667360182753798544781407692125608569448105416619567526475074523902545170531094066263668247457573460704065275753577743201023913341138135775033225611439009760994695213981770284146108841360856591839329939313580819527070692709276077217177790987638546344602405169049949774757748287300933978940641473694571985048299051348428670709915093304457966391953558914780109443450982701736772409790494805928838465752690821406840936752248884246612560526950978010126057728228735993798499770457317611758694198467474290486401231996744622268636332600764110702934889723601262149845968416031874245315843520548918590453569419644606333798849315311695475836111574976677407031544805789781705045731922588154943114390257934504998955003727042361826456804158997001369770936461843182966606907313547636451203468088044854463947988105468098496701317954942866813882765844465058517977123681426745854755713822907266346031643813750146542919453599343608206282790725318865751797342457466122502744301909224296277693665315871680944424278624984074946655635268045027684357821136273406943561642515379232246664582371079321459044461110922107039760456510101286976059355657979972303939386839617991898691799159386947086324241601016103098873785439567731482972348965947671427213412840043762106602005505662023339519575586451283024177142823715776932876797845227571042372817246844546162244727036661864054672492501446712045654783572692144705387980542744365066549190036978523007037200614183725711309111681021722867212589594857460043532950331146957965649006244622695391251125286803782637520834620109193920529940673531650175837826327641004899446489071950821478410208366699644155548997311854445953123278819884351936466907561917443638748986263627650302720686092518809723608847938016252950392255210283185911952095216030879709223063182430490513612517852667830989648407626187112119385645233258801563584566325681536597414006351665385278330279933276181873164292843436635161566325528087740547669670001881483129926494975606174499455604840565169206606294419074711647405755619551834538740640464663446523332035103778447675885666660901728752098224471156450455672431109195734666267791950351111912484914064555435257725496566392678522191762385475381971083198322848394692229495373749317257755425809647949858910268635945357613551466037513914968451229674554784247177930607499992487150391737113310598418240045774257591786671219505174289611967389888904579312607783631612978256941136845078884344497866404495895781779775376331750386865692143284565907638770350854549228817745921346447903640967193788480015659908526276175097739401643740642321537883413005026201713197591248645879230068500253381354891513199847109339798843654460482728915497107603731744512609717170621549152309355807845628392179950936649904409609156994214938711242914663120546913223860633526874046418697649751346003184289825747512025844598310398201406094846870769161838308623878910614682419728320052615038511068199058351769563236569694142362610152155381725036939198820292713685444010629436726451203334424480829528507786502235886684798729233633452675826546136476448809927763316550213007449452989543396175266117490169121300581095542449122673852851223438369598397804839752464510120588267428306399960890765573443634480149048829835718981640964510119289853987608822969226435420824456841236875233258977838524384542275920567609260795846727938663976401333752981741038008397136698750179251888900509616272530290638512244815629473486671807921675743950233541879714637034135950706887960310150164644742239232867292371725653842901470659068867294069484254271590520534093390143210813138545825970434858093148550633941870543754820191702268823175109013294136171877005809113345796164220301259802204310738296686490703750445386844284408790945807138389620954492075996155366557130684404695271299487830971345078827572484489989734970396224651104987770041793712631986655042482645042713229161230932461641353303916768945148358569270216603190656899930352729669425409329858504714285408386710889273443108736345700269111924324963772982294009440207520246620664473839172044257548340145394080354627340999096406907207562290737468413119858657879885591425214708035178496735893693353500754467232461312525826870463756343964639059479070392896125976486670569071815846029936042856641652378271137607745621090317980865717319993431281796912942962045569520124331544608359576565078324467211258500776099689071429906214637225018370319985169220050813910205378983915622992500646873567979540662782950224745926656176868862932116256560500845429455903291737200982085881735374687831820644702268612764976090634339415664902642621944959997262787988742068653774840012402712025274733443616681302272047545870270464098643467573641494455604018046902564908532516727167095127900523934217027430328861413233096169647556020183862159978723609621227570421099687370007122579942951869630041295418877962872409327846179804864790769989057773388605583824911422831637486928785381481431462242839849623378557735086051101050926129323099492474189267513161881862075325740386848069649046982799912216113866566382032601913596840251564924790644398333003180789523696165184056141033843479937617818210047435190907065480640320569117166432209921547124046169424710431522220510488536638270472083522207228179230772437862146298606683003944318403189711959387588071981150483977508624928452053766099357035113846959784295954406485751505062084971228123360639541480452318303759039230419312935804702532239639115127937593601514087053514606298995194074575535488686198226932469553821021947202124884904426365539530539435330040506133599683201666987947720795258669143318990921186522605849608814962683654672349840481438109431985740368377466370936580637339294587946644516826114833345980894813230142344973630008177003029015416740179574436162018422076053577654231628456427644093755689715537872869598722457407255862889162754227400139392489093720555456160784241539561883999055824797402970741478814357270791492210435577454609349005737681596828196801977159064579660575494254181445329924798199665711964551885655656812151334909804658037684761826601373717568372741306170464438082924391653713296382616530723106068233388999951025530732744120942699413792011010466320874971541058744582611599590687724094286978759462694298805477860776458005229407570308406385160436059312555658553312311655463865541030072699344773118169078662801195532248099561712788155639351901256077112884694732263635778302596564232697384744696747938171918349844120102842351921959479411888645207796023134306321717435406924886237588135079501301954212568538960669312542793294445046041439975110593068307589866631208970917867381443106267328572913524733573733413996498162256056419741787984415602133012302960042148911478485752643862518142961913689838222749415586395787408237809038341408792976445118888023372009886401223617417643050637038107692783411890172940132946238563930853153224422276881857172889388516865007590484415709736636539394113814143300708417983117234397432128982693088281790845460835227616883923670670181937790638751868898267898592612248770725537077468090917381219556815424678175824986359084577528221087337094710053447043162645326509875418704826040850494328944967115115564045037599221831531506218941768079740040267805916373594923058021891056162459013019130734230922011877489054176347523478720509575083012458009760894490201422832151708178638297151787541023277937785407268363951803722727399072461328116672620238536295804476874489455893556129416678771151444595215072801124528978389889243980579261133951171633727247632203561341376655493609107607754288639415375091128355095389101756992734810580205244749886065694140688059815714553496102116404129920711915738223964968790061577179595751167559084819296904355934449028936964861900866118483640844547092298808201869643501024165892806728934618921288399805886754723382266287467489827600721396917908199418072364514382989430173553032251147891184679935694376925654535114088246264417878175405852046275209119455171507153223229003178378639299726457950413622430738874742958842038653796300887828497491015367140448727060522398327465443452935652807696047722150302406032996082014428740664630902436955822017514819021276959194854806500251596627667211562658270387072145811474469794369850676576882350350632790855260275245784521393118971219595602227780105217056312396344461127002125867235737090090246740694925766696530479737142762657053595744879087619929979754915470956745686626669331781602694992456378613345040128648268256454678144257343138486006682679767270827808689640327625941678840571459411480462916488128520010261056198452785431676734301941800287392809461519481854686631099079515044881336501254612214135427912283913036947262589780027331680030312219807922272339302333969902493238136301781213601131368310388677339001225252410376288392001146874739783019681516234484584417084711540563067122150252400600956684502099654423577855478800658445306335458651974851727110468692370821037423834451621446359164268326469767485119161178393419514216263434572806939369671644034523111798133136747255810302330033564709193131184154932715418721453955008962151995577648095322472817056846283525646275430576200001721499028964513843833117116585841776451061858250821047245469890855260571543347364077660598021844622302303576492869835354772286691167255092926423495359112977808670676400914176047251101842295428946972427193139578251117713736466128861099385961544636685556640632424096551152712448740813863395840329068301663750515937889447003244679444205006232380567807586140516179491567587848547537980361332045886720131374684222777393383010159278738266403520793857372733187872211600697886849105688767373546820717934420516918691207339060230403595314402484827552498849668639056151812913549133306891980509583195474524347688558773831041434453993397826437905600793257790326877238933597040892906379862359132688276912048235322685331113094927661454578911147071816782987954873977966493933404999580445111442637878055006181201942856580115116049659751470936084824478407151016568819151547630853708991777495003154677919940554302384555684329587122807033930365508052035902690222574326941773378330207785088164599774998435514703041899310927886362855595498666452151460832243270293986535471171461120978644646443256180023520004864169280901251955587967777071201415854032429272796513998214262542785238361824897440083764657199183395660336509497078523288974588149334773099486397383182019324468791919227598192870591900590754067357185234811868346434778505415782822449079858408700586120528447163358777233043808270913739688950568455535232618221110237312713688142058398385474704900053609386576177773048783078559721753881861727200525683687300867217691544126287754950323922211648722178615226209112425923774670550161255823546154420874458421496477602559572740291847164531588852588278842868558894965084270394298993544274755784884092534243675964612654381092025562998205154148019374700480357966774587410088413181187258238578544848881668277133032050914804990270633866946909935124879227100509277461414952914626105176485990692992381759902441618794970235657180951442585499576517929621056744600221413367375480798603596959468569833797726728528759250604441846435778240362377667029872832370604527442555068151809555888683589147533045701169217308190413682196197924446042649934384845273237461911371108244643350169480155025328418462873349226613456894413900247066335547078814160548567966865643266981303178362164646588208300503644548129228849644616410125023757682821894551184580595732090939462064867750938024379128960180082794047481742206332791471284209513701056194327176292868579090949321805556897906628628915473754867319869373846641958561889977082799001692464942519034737770398863014920111835283723279199650777155816340617619698407222318678270123540349943842916855650515174383773539203225611599297568796557485637139984984188981872386344774773551501353507919108180826989536012524782547043214097784693232943801472551258437608609981460219969863154847357629208099670223123077999976689261493709481313117612672502902025112501769538583175793324823747587160195989309689954294571523802778922356850487641824139102326914916557444484512460830514578741750738717674417355110130764553789788752222185205861330107591272012841581609901291829118566671573929980929179914916100046603332922577608675656663596534181854225605988431844272181094231810906310605967733278403950596066977210277736141182720643429853844246587728471851788363375281932542583005499614614837350414191861619862910670638791195176205055641054814853078236437201653999652095042389041167497643602902434195676224468514208945656803232777781828040235317172716161384745264342561703004038807168888842147579572813241630693977190486932101774849343952208897797746064132160659123542873066349856495138429915119375415682688046403440740031916487524228128990849604910887524818976629544394637536219830608530266297677622972823708841064030679839570455079864255624132956970690312606937272270497385849063548119466535336602643153554561276200224543650140928707010384502494229968246989481931106380584896383496684231546895857394178100478027431024343617063937322667141404764505532068525452777271337995989719129335109533521837623781448282123898331839226954036294419444779393386294782085653916027686547422160219745416250347948657330874869636214605079665721155856826471256401983236872218016273702740854612331531487465319393626134387278498409826789986196912202669754590120334748717152720342378485320199773941089399183239935343608383194483504071701605001971940795569291694412482684602905546024805566374925676902358565496305630549909473833868200225327275101476538201571896891764386176038466914712705020901016679314353889817992613894958205684315254271733398458496778421955422849693775382141987539836280415138532709515070677831761849268674924518788782565238807875593398741899239410646608428415951768002918996744604562347684174628436149052409961460913299078250776717299487379930049706095219029159187881565502948692499482638863968238495608685005799920812591698095762500632522742977572235324464631299191602952782838780863743794848781600798669184494495203389091181996840014360193709330547221904717861619952110929112791700197667202021639669184222413495352640541503434784937300948107500099230370915388201550820033012007604036740047502823812172353310546983710100965755488116614281741971422411114653964940881068713531679967489742793722635135810389988254516055367251021364169290032107312234300723995569142252464301262735666817822859016903399525588647085175428439793423274925339989258403923207983599325215743584252303743666138993863200080064574750880709379984627470966570809436929936107002734538156848014398180022649796165498392424721495385516649061338869947944876407062566016055171789113105157898124840674415404386343218080496035776369336965075024967546596535171500859975076400045595426370119626833504239694093247325407321746536577121897863354556824170391037818242656724415781843849453825620349781174947104658950823214082047820539992217083096379247191435705268927378829630172045984163967659793992468451202167315575940610850110840150149395848132431432648317063835229338983573286296250064539653232340901663455349761453977754354551018002272987816661057242312430623503991266927255939838704468224405690217527208905973140317194993937576065170443081784358468902322640906702558256315652710399198787449960056696531169420178903331930791287640450024529260777573554483085149912160462604079663570042929414152107851793951248929311310872340368754933321199716941558224225323452699165148427080749649824320910870913027192207360528239889033377648244024821643674489283893271787246301295213777584065676650342254844795273438929626352170692482957223372372605212148675590124375106886361686206848107532525519080870082393756679930005256400410568687321345774201100430212747964046267720796028868075453328446116396367029616763610612095640915903922675977256127708233691017979324027600947790504939059499035509762328552456920149233803895551145369453798964243907753154386610796172549357971644803446126662353804145557367642625144590571925802222930640330494317739911077459948051848434169030124710528400114530117015926417603100466879843400676366135754159381073949023384595997856649006331001925807617965927489021730881865451249156100845649219173398418493640078924253400528851274097826072818449936233443967778341643032861707465557447095887106612285979843832898882778608994982593444570625520846669336207364561329951753464990966070993431256359749029656718468035188787644371927343228496757534874380605868393873208710712341196033089306023521935023796475301514159372862118229525906701857585590486981033613106195370441077208602330006694355982298997200389420507124130963301247398988986501613446041636976412991855139856413348024401090382042098050981881637076560253542288520642504748958680899179466861171932503324823024105980558476638045521378932305723502009715574760259377207677608746814821345225316302087888239853556684084620188776333889382394005969382347555811966044053660170851554314092863357092159448116017532965834133347177302711059709051781158901708660299016051247945070243012323067026217970114151068200226813999750725832130356166794912610054201286453229800672689000948209707585410219884885295459601974730636132842969855385226523816130889665914509124886813125953536296057660319750429504118843939724705360578947986283171400396848076421190941427568120273245423319593111952395056290622611009964398948381646448745866830754857785328740819937572748521974137180942967777411722239364135603321190933440755678783811304519984514862898000608483869420621852719280187780424866808029951289703473294463170946003859512545338683557968905846517230067044888968406108630406121351552038742139284496202225754658582086698640604986554258859081455309948434938427338421786450513985427397429095857008561462561834952700228141732536765397946912752974701317006383541596544634244968352635059485344744721078056107810829649426478810025979318775639239043291785327634203752297565752743408295084547947015245260899313885783123911751269225566757288513340439769625403931174933713994495293568010603796944595685975249877267348079073267618245233552121621496802344929254288655145733756557659455570923953342814246290317278154039983415564198377180189821124760855955518999506207300714034520815503329814975070244267726436033873753973148431374070926654492295204231990073459463931199653505680733298148658411091994439462723284536771128484736224606331360285910596352371938716345986963644390685405322319315241354693248757673046338170302944798352260205181494445850496120326909233752716235513352623432072194300935881503393598974493352695787457278314039670396910017073414932531022063263016925237018012024422688492909819555117195612083815501448583657166510269086648717323819014860992469913154608200199270504730568876141893298108310235264828108102485450220875722128344134379484999727920258354341720442598469327409141782143949280179974565987369828742826826748442121371546823275112853416523703165307043258283372112371376096959399375495362232222197465961933252907404248760251381952426973910175637197534300447961782504311533150675825627353434762525391425152757047878437678852418719663462419927008025761083927497622636549001865320645499515580290839851327262732196728478302538522190479278689389538780368699318846603104363352437327154699898811186443670114028426202615047388235899747281493343257065474637022451887289061255030273791902640396577417606898976983456646470520471635921448307099584306471727507633718020714597445652514188505037163773818902969685284409258193174410055576089850292327101600898257223817394543698529654769490187384046465643730713195901140761317428220388331360297085261451234907307147624534050245423763666685575740120604059886955630114415443141696986074032207886003132790553917869674163555240250767653085632242737847149746037784064609346812991871902892759763070159840887781745192690147691030030234979458511000180886606216286801110915116104098327308808995433755118718317378655877648735885449036687907416918253831330636233820582015488544982788382174243758054923815972964061963105821516709190326318730933813850113091332770930342511221097215505610491387050426219805260247611607505971037943664771529353491718612506611636738330499564878779365697911293195878277774060107533372432790009732407256070388800871137309659634457096041175089444791191621745516970964844762046174128154536128422601551301589525862806957063924443547802390516861338549861926656762276035823498556919224890690116459866096156795541549215758128354092025393170807378146507883203526651345707065536856992811242656708448017786461497404549211843122762184522441088471507570190883495022437569885049454241057266246094583209596257287203099477654010739855806996619801953450050651450105492401886108913417306075923843946124656986160560909454177290736400939132195676836433329961999796542434802656940683698670617587413167650506027135882574433707216458819522613397054520523441280923173065051989954502858538352287378728698291727580782420982610606090150925211090898996438929786294301411140067628774992078172379474620916899838961894863077306027491026703883943352474243421236712177024610116024061118571687050824404916238943435047025081364915515510432725074794102473747819226520593355136255301812196424992488212992601774080103719884212547447216029695002774268507752175866917993801362584224173985607669916543275706123045286728070763189470589544061884213157138003398487408680941446184585423034495144852105399124893245548665930533558457827714423774338533920824127763216596753832665064306388069556915620262225946941429007998769834420914699989795683266709041413980686333251565256968787899225743279613964370265431446393337990008198575307978817613374360948392830223380327973203865364624249805511402246922647893159294491804038298364903488863869756441485560856053717722873714822823686427811365720394749690693723991561003682807514117847378256221277599591677581403853298688851365523231393843174225853562807019154400776301634764778126132438024842186566985527400764105119010954528983825634840704558080905221476972204287382202064451116558020215813722046634766333517561799050089778088560093208145417644390323524193973154721892092020247427040585791354379260097680763629875661478264433892612121345659445680104222761652418376401867345339148807900136360352843217478040168314672618806793649304686587364631148328269804920227876255454017850917749772829467569293545166609864194814583644478909603830458285369895608066566619036031004530472002422639388157206867469006192987308224849001681634892125543375444758038873615865885924859755874278385999295417099172251153402542222969223436617778192965331349674775722097843019381844505985075080564948318967922058343414789051025761749099758200123472441028507941231843760147142137829511021873589939170816868055988133546991379453783137711413549197124346581093112783326621759222758936993477049843525192107351757370200545734513058731322143846208760277518405348937132376629071120552694905300388822804204808210851928761076772814548927944032272362841247943192644192430796813703829482005869742015013235319872051992035387731421588221148597431823879098919932539341503787689959695804327251777689866125889395442013917130641886295106652689606241452084480340347411331488004313864731715844681575483653167051260174664076072809596721327294224536104266792809469773583638349822811476691695969557327702827912099792608638170176542101511158110926832874859506462623629925924969437818222916923432548536160415251420636925214774598094198892681477644390537611191746302607417041449224194980017062386681694660798924751697185000942874444662410058638035586306506360957270979734930709648890760630190792334617019745665624871288498673826785462689451209462290548275423302517321328278531651758693405411184571510483463283200810115252541311936795456126121610319742783210387954825391743140987706525700603767196838304786929100326748344206684066735150885860916629765722779969260038682733496418758332118080916861851713459115685089314940448199610725023378967798991887258268670537757435124650813798628134835066431324662709245236546983517407042651369882414330883552631945475425324845884093993784631867338133661031005811464551518773050141308156660180611322683529639711462401049831484646043952006163735425846982605212545385915053646201416593061524137743303724644103975985001568921027909378678603185176724046959915723405290038167607242477016978152148615194746270546142211256912722538159050203958305146858500360242005490945502682618509587542621097399132209502954895828917423298134315406925757058801573654535178927415271289413143182694769025888547865991968988359990438854227484694731187519748877121501915919088858132637699812159080896918233505907971487461333680397063500369555394225907345369332638969616238425410479462948379374638132461240825306902691465021517196552425678847127229752667920280384129661575021846811088693939925268794395032672870087581886104930085975019692809520482375713894543884424162175662637351803364327740173412594274558202675440278812140928688041203000227063180825931867664814904472579944670459423828111487861177124712994023435319347638977894844625604174547802052955308150254298015709039238214721457480550269684443809603801644372619530044039908184265874879532636017477343963474133302927558182000846488609818329170786212437034594042815016041477058185644132223188779392163988961273699240022516053512829372365573731931938983417538439708309035853330857183693113650370081905654504329842209938149004544540044861822140550605287168313414262789644169533398029687951753666784755096725673907734718169339975900118989111396246520616071885649119266426940160695906161044378014986669982843324652576088257101089919591111808350303650797428123070939519840254801694462620592363635107199014815677440001231307254102560560159316840532816997339070715372088090132654154084084869464851337622748284991612747470532225505791833719782998021737591424344714866343808459910139255494465966742373011912156910484733069805081712972731380662922967849316570700310830556788979123298130375103174678340112081353091466073367511876218722324789683703827950123954449539675885373844664134720247001588520176131215481437213347926567224469179562586330030699458362891038126489523388807638438188092118073979276831412308688094691717655267197134112902715814675294427625213295015430115336903892213841013378832753935920209051942093938979412893807659530870273550773042219114300432566846240722890340217115127316890533946785187382278485158224704841277392682805651726037644584400682846673735448259249691621423903388931811701138913150192228541073818145229259218514857525247618384807758382986666755676288831008601526358935863571274217772895154458312934709800847178289672734129037076071597089783899342792625573818895631940507275208732599945654560858685535826313370849340641393491374917907721822853116009498270366792789235878843160849183895336236157657683342228959270239391538681195815299606645208188618438969720018935678548949422165123610171847376046060382961644273311730402586998521537216477536320660720612329293239624078004742806780812454299279509350514397602119291130378021703950829509906994439391195500340721574148017759229971932827163039713393800349267913341650891139464247966132094725089819572375049113312916698427371148958662864933613397030362471630128321007084152026276899630681896952666694405167511329378690500341200428417394295414458444754124677185087103019497637306464566186349406566159555902220388135713617682347784631098854748031416075183130544034281127035071959901420305881492321488412935694452964317031319035779377391901656912577178069851218011520363784718232894953444655146267846820263039666301990692261062324086257493667440265813971924801331606041280430940301178183953384569734777875549650522671989203980646508809876595990402683545829084048874359012102485707190569558518229964816324570157037483350716256177878402602480795436431427740975204629600770595232159378392656058476318316453946086912913902970752932457528311220631653077945599709358801910179547846822202981379496733900870993483523659252153174780914929635957680364164531574198408294970424039023534026592213525985308033243178585774060569003951749662478311461547074710152410927099019069460555923968305614807726537399849961888020452613695722308907368225836972534673293043490796231583862612634442408631410349974036550869216050046280979394259573707752242127755962792858417731369309036459436384493982339291854895536764735608789899719778070386620927463185198508519268526245382587024957380501099381632387082022856447402189035037020515868245711255202315308780901619437053871768164482939449118658976812285822828630588986102960528325443860452415988790437047737737136850213539382265394902342171088978371005174981759702068682570272597123999047773133208906742112120082183986777870565629424693820042378134913066630287587520925647732731674636966474625706120034671564090347896314818682134598061272968256545576749859197286737975381067421738580194869393292329785455610079000547253305167081854955082957331645303896672805738782805825883386743956721320161223642719023999031850697809484729803770517200091305626967205284316649649046311031340090378152174924340671446624526247884447970326708092047966021525362297779841303529182491667754733386109757717520892570062709539841927672468102127146446516361829038678557363550700118367241542895404774834328434837475643045274450680844294328800326353481326604760172142269400349628563970257256283718828008954760238666306549747045349843766403859894645814480531950919925945149823361365390441231674071296632618704241988407865603468894409807356511171908841621313370383284752715801402333740874605509019733708360472009020165095766376037863721883200386390086318700252115943278393284792647056206906139403648830945520239437276001155644876784475408356160399848851377292303432353009793967833698300912777997949717046285314100435349333822674849658177523531271960159061728284621371401030533439202703451301949107034461745657717921913241437364969396904896573282575669132764531083445687159449900509202240475799421485141392454572532607827164713056995813723489622724101513581463393598573917624057344627157841431895806876744880080349010473159581907241464172911598289697025937777675006732038336759992089814111989857577054569008806673510534703721329348905545549720535301055732469661053806609950070275475226267638316527252791548331453619391671955103025151941717812391244827611145322188667771767341740645237899301503710421102322388477693731425534798388888374132460169484945229905107108955879321620563220851565300740795055924944597435103491904411337915663666177246177234250577135160442663034312685087965410397347392745290514055124103029836258933623583426786553204778075390909094601404380676438291147830296465182153861892014007114945518626929913247375729922061152524782916654575695663832511478672525609757827406443804607071542461773873376807193067971913031072597471709514887374746950349152024257187438661942079828728831057102815793640271463453279847349413902420822973866014373548560908029571346922653311826406796525443498999697808629347038553615700103796998646180680289328572972529014282901970405011170939604017994007727907300595740645359239166638811445976418742692009378297052256405569829948514511625396658674223630839350814877821146971451562642183972324519725639392618648161829774385324106434925254168626435227043137238046625985568603693929750779400699210927268702532645880616669225572963522442048586718120450934271666318905192624501490846006880522350944434658274022582905129503049799614016607725564487461462709786889732567210192923009824547654380086437400109757236660924137231868007744762686294526391724897026767456792734869542632962933077993830606951742589565375330331982513746697462587161719676711578595912938946419005195942311625542655890360404261172499890930640509531999646107199705169382815884249161492363960011138453259171654027649547661729565903127916495173602942136281872645926776782768960296649722476337423458853255432357319176321653972435014685762391656504338768002101569443582360863484573501025317463807091205815681879683858394510423679587670566860802659482952325594202921026887529115436922289471789836330628408977303931369921911471481628943832342429101443255465123776429921208276392973771594064139740520923053096407841631655435542402370608217818229921582821565401767669766120899144806005952990654376236361202630598895100772357556516592197145167836743551290845111362955595308758670837780019199618165568310045570228278919161302403618351641223162709045429397967412823508433094522021606266842689197180814965483076922146809272437721832739709295506752479298131156698823159331096989939122543447935774560661126904642965640740541928822647854797979744559229982135300293155312717617221863197089822353116106940684881575528948162082091816672481312890810462376990701322935328445008140894151893110987965407214618275748055858024353816151391877200444585065798479202545694411477966399229790532027713023499786440344218249616320189181180432647831115159468111481647264547761763497871308668875695297626030316668412146343026244079468697828598741839503171394290013559087722557705373858205488953169601806863232587915107058893271685942207156076389078597607765508430373190771766931455239135186223631142711608544580408475000247998758230058708826549146220787267268063637453759806741647944848149738923875472845934387527928676644327256479556156983137246251045428885007334895130250436750092419290343543601085669208294261850388397292138035920978526334813384995927253013258210860871562799411912242653301351854683014758836172716488218149835028778855753965978890610683222861861952982764025772256605724744655934032528658160143865185373616114163075572970379994466511411405407942714753778111142551339728349611528753303886443281608116519009719605585040319934565279822223428072991817130543227748759230282529480265505717408619925237062968149812420426377685988195395996847506801203170391350760070019492084836887963851424058353860689680377544207064271651941908844817749095380525810448247391349962282964378356130937457114761509358959457926535184445824407348448910093955756022910560624484561256004382122790034279070393187107523808563892113640393583540105820737115659807256303077282358517313619370779490857099847401336685002084129819112235959696822259645458832143393571194834778926834588974007603069394540213572747663428486665759667909377976467681630158488167706460389706583275923630814092995503945837813851437720113532362892642037783484121359508214072712089533733168788100003420840576180389037755660267923579426458250463428582640582466470413641994747054661183354387910763314524200053780899955034741739824797089632306577880661508788209327159575654484261688320589402879672117198053728362406561189079991380288320943433112469126814143218206702353906652549656361761513240156795689103548807955825825328000037407243165059153059069416552440264422265534657082709714384284185626503226274931962958902475416534576128240935354062701440070911482095483336493865766285662502730215442597984538294819130149993816839032640802982348877414716824958784818180055520669101561370253273682398464025891880120337650092064772911586849770591281425393646332561493813809881934729589219122373029584341575051021773876002742570067130721327155850271832631656732297416556993878969323828886666047534639873633285056162548773854356883005726249740754685155054477920664951596322925802293266172296221390772547495226462179754608682099390454206571222320193765629382978088618030619528493132084967387233260394748697307938567850075940939478674254988202420415470667198240680737708036607512546417371045935695061956103385552732209810939122754665443071528565396608248218609920130748257076988534894691543197165697224766161617667065198873444896624586286251522253842901560874089954342176951754103353363403734750381964569616208605048641414584922244531855693921046091709499351230970681243367449929819627438739313209704016695375731733639240662067336606643546095104780339053198170587577123827378025247349903133500461177887772747607203425731481597071163454090918423175198274427763779402582949213724616142441229924935894614340088093891446700320346521898372728974239743797153198307296124285026965615884663944840556777668605819505314833709768685171863066764959789067888706831505251088021562700170042329256525775535714748807170330384064659421313222560288183751881800277819930167409986441062719982527455695968061642301490583712942032835260868134658206866112088199942560871923959865755990688479447989572847189711576011266352332118719974665840035802181340436535578951022409632306446703623964969102740141538402618604002521040701078265991504497189394637653897423395944478094125964467938810595401770617103493179060102858481794286927768025160634698186487615862337015251602363718178799903437959551150865145402587972642320057250444419433171201374682541907085310721520851269398466280177111026424456380791588249566743492875534221533673980070184145968906406936381641534693733580413486216823628124855196282073725171164471004843392677129047095449821771245997353794989592501819266700991923198151396872039240781317332882274061834899368915962588277943418125978223746823356556966161707037739424555386021304334936400753195339849108699633356133084982004622052379421261127386469773435298406141202933574769854283798507314230296086006458390203266832971066474859280280706222894119846852371184628817825233780181757362738656338576525114589769142517386579768133455331259610892167967599216200477777366017396981570051893055632093476805752082392470930750564865354014709692586332447535240023579514208088609935236904979271649529733073121762702277582805843309927781993804392172681117659365167746348586811523913603817239938043619137087041783245836870732687927591512421327930692493680672567164093795811543741008447431807984798184562295337831592094370585987930674314958421280917714693715998839338365967633328550845214487173498729828022872245972111003370678851957086364693267471590612320181128619220703781668982540615318307653843983956690719804851395299403331186528088123217077735132700970934377286450690552483201886405445912131117904412799490178046065119346213835182007919417118694779020864787750881187224477634397287600533491197235765406868201936808677188641543680800990685123604632696099408509903969483621715707186981568085994319275507836176310635228624435829757772397161712443900078527257874425455388265166580154504944151640169244989042683457345626173402057140117938253155396691786508532861602277977618284482128672946293714911091163510449320107800723707449634925691218904931357361767273707579489881987081480329456080270142457402799289156950749771877632590121855832116833245638324635426413663047442069533906874618048742695730825289285497755704465530725372653544909165505854490500908073608133007772880591762113407812702207157721799184691999647647655001009776601727964696655224452669933769931290031683521179052832728749544751298134025062913810954966857283877952905044288966151554228237601744913735138627397538983742878364570857778791777228294183786250926281394514140283818107124993708570349600679768563369686476720810794013433268992292032107971528543223093687838982497846997755897775841621288966611830971893956180558988873478822385862983606148281970638853766387023699719056887914200150058932781576679554126561532407775118370166626802333634507878413669795089586402858492504048493379617118032804557079693217083088711762591995943564413971495282622098711793930564122549381874381430808472755308389172693462948996786375493611546243336309926769946870192230881483903481460666095445247038837612083165142010076318337589349399962008248009986046283062432490492757335719180582605324935512741107358603022530576982049946002145986397578505832139101615820893810253664043283856221560504818745659654507487713704550258145886878709415841423636958253905004410260672794345106150247722806223509663315736125142667943414074665206353454658392226114632355783939937097026201916221347388562453983020165547146208476297265257464268723386362315313553556816636051903571895244664237586619804114480252199013025958934999070183464431270680599004325613871121045068905575067907676256305038426262251372906522565494265482732134998484160539500471824985656018473144907426919645745265811357026510716238773346883372589977864367259174115570165529248420631521873791595246448319525159806339460374218673502419803903429172882058569352678665815820119587606982523964929234891467944308478657497450836696232960790189307962445874843725174922985957167812557484233167303580613732387207900933633692574245789195386758667611341258247160307089431687496491257167276344430305543587943967279839160550213514833324054482959124012187831340304592944162129275049984501670946484953440915247183778255760029397942501489342146338675883458963870261127297794818453034442314713124407849821484673586273265362862550103973603017946321255354342329834650428782992697952507621176604162749698363594996032434957912103000462192014621172228858441330174290915199745617412214254815101274882630094697483512300721702238025163626542457316682915474442181002777612760729789236825861162066670221065842569816638217984120387841026448773556619962919187799243489762359181312079342126285808524547143180977676372136458404335992767255515876687292681898646645773718156713727127327069174460768370230278792424382140383043987812547006213796556007441290647108353130420289291215214634522567535668396813627818999544967628545917295133246231268627120730703168674086601595709916631586465223887456234496451599074979209945903431392149406798483027225457243051435304549078550468575655985031418630848348650105751244928756718289912764572460725925529643384645472945207641184438179028342584640929845681217561693893596597574042929557152915076829707802023978916969252199569167435795107281101358448780347612045865179866632782748015063649022752319205745215355728802481958656569366630546997062951144220612555045686914803274486028172682810274248864026160189341813654088170275190363279822038270382089835124557790353616534469844285133454838643525481083128499832894181729161208390713906848687892138101036796504435251204222146561436472201498942002143834420124097014662363438582726929610862525525118921290714836045667955951686533053105451019783216574176268285593469187149247242547912327152909308767435328387505631625953639199685925802257094130454164678572397376266871116228209347413738395309745385622839540124847808174876622182715157013569546601451452768614882194513411059801959086376897851029047454766574382151811345102502465128213078825731151825135732082734220695504162056314244492977578541810479961944429363946697398135936691118451577779926435064354447789078668856676365556751013302039206410994467486972380018901857712373933385189115176152917903357035783597959554448978594989542466471543277067082726518943783794806403342214337724047867869406306620720565027737002585237439345579494371757594822239484821309090539231169866409648373506830772494450468792906337053879637101170440903752038526402962570300441750898478007785474006909831594109288735871895339473582884735120247775144152864143330152376020257165466393135151695802886647315383404234437057963764866980429174989729433098371512156861929654197679087543590065885191194910142607559694653688445618809901450714928355936533286587807344656348810329886796716467813573843886039356754812673163834632608152226774336103425627990445807102437290860556394198440975135534819368989443858562953654998625886048571349208874795326091097703034650129404022860283613342235054786831175310480437887068288281500040827046669007244607660813283486164716381696784460515517616537118876351523592785897555315812735391683028019688722025518660905434784145591634664587131734675240423205137846651454848521082743372800134867245068256794125326197616598876523966888739252407998493528141270966542050697694791090919691843101757313225070643390879078608673290030639835351651598000740530826896024170370232670697644702976026046981576139529220964311841219908124432974534969714035525042861389842059873557626554353472123109964180755739430498475835897786753408277752559453469072029492901386136911719381317360164647662549743551192372319033756640399554244778394429835182877424641232791662248726116615311955651531837930374483071056491908637692464303925333281823210265162984382479889408161531526098178358205420475757423919079066108906172633363527535883672852532356699956862701830812167405280180002553689929336938678811674407772991654278804467841356200936297554569151807671331296375531481657990907293104137962847599417790724890998839946581298870509883672688417262456006546811448063717429508458798293125338228957064263555895195747921004748780099067471349081771165970278740048485584618443621880455975536139781877110016001209738065852060227467398432198019506909533162304589829176162586011360218289353059467362871285557042048740358073801752241601053644920727003135873627446547077793526648446408067183202372794201434472347416804982143532190661854299254690278390239469367565855047152011417500088637443752809863355356663053144742780108559946161239902956286531638308517479794311770261662110750667259113679565731261079068742527132102089342043068644265621908898010268788167758633391987936068177968001520738645811186433222300276066097923728491881652219262768209018854780389443560320424330725687346061737023245268043661758961997444611691103048605905531997056360086339357467682549327302610292972652219997013784745668336927819603268412053872503967733874100943023310659498597575628944088749450232447104514115759283854319043656099794417786945650590867372794050181035891330078022518367047129478583932589452033737115409652517261432458213651094928649637279067566775702907881082452198737279403819995024928527363407436172234914601313374188261577753944998175824449373817062049505167229424285374716677617880644347567422409659208038034162784725694268290229252125238485853373479136715924694997360835010090841599916137804841580776617930919159471885690996102325600636796509775882954357381862985180328592847704137243664895146145050192069446910055451753162806533052264007677708933108986747592363114249211964737983859542557785447923057506806386126902090132506307939519222133860918595065125949662111567524770317261323632703634237172046692361752729643717179484510462385604258222738205746694163997921781159413559646469298483067092014257797423800935295307642131187963032500338498464286036340724983128555939809627486824431957818590388875500902591367550437589147202605836213776664200909010705930533871909593483383302999128166144933023488324286278094503744594199622771925912129739618715920208473155346980822917945574110692956227707464682922506407698844047590191734774146649892635236134717021650665605904732803649682439836851481673729696986157231072880503086554205465345998321799681376938521879386471374152993484829918808957757606697549607425734899720499944592474776550655881309885779153221253482542661842900833581533004255332405321421248360436128192217295783844480015460029895050118238964630978560709107880102649379376565094718793225833884460889554615294626640019608389113091285689074952441099295591850870862987749246293509843054163189206518901022108368738507686044955836700884497199414711807644132023195029043987298197405881795755592494324694154799405009578634649107893595827727866007415601127758927156974669185672088046158595689739292346460865182597348098762780327357831228242397149180793499521896489149874891195446601846485979393343279816952173481047300746483125306807551970638079106679558987664530004506852433458445014194380760573215972428933294095357769028928132730950373344137444842404965267264912307457602800339029746726007190696517893056846085704862419219218955295012064993829790452218907115449969937914434089777511702614082584014441535739125752687821120477956764332887539697262447318790329525014752686425937456143548799640235550255624128656418887114956390547794276858725041127991197852527863555532605490775416372818787942166756748578561416230433638240765037880156019880957723804879880877686818853155071552135675458248621074536528904229917221564124329654859604047603401089607930001970188160340187066876734930116806762537583410194493959959751799294529013819672487642943530349403840454890206908114517035801938191590053992538549904281164432095981042972560098939829781428018158679033616012883408918242656076965727547631996722453307756635651498892403328017852909671591215592207966059200516647151130840157471985733155950814931327443860967772896845628669479813650313566094452938685876216472384194726675264827978036461664616546009384320096386651058793835840874963614197063437324407440617596395040543023084204531168926186905477455123081429286713145478724936722627140194805807208956072954026603573000165918462286944297073535927977913514154572363668056135103373594160579869350944593076459253643501294918340746568221068024329544721198860420889704487725978522293551441435958666171084057619129648024968957296336190810647342929158012492334159507279086087473472977792831022117036007855457695093136478690591301928975081368206937476624409797390608581957036947956217339092242356878719544888707655404175386489494700125053265954906591158579312704816593456876477106138345165728635656730814481072241362520297715123011521636643617555415377731353126073673845116106084151358374964999144671831238478172661278322910119023056934267889747688453059278879053490310507761425542996293875484175196399791206714877105669967322253891393223401564458501503835897166317796965033760872633416256651521685707737530402247944039875456930997611847595036302112888839234495926700379042225710280651298054546955321149537582766497186706631970791692260507908921887407617766347269293430000285444517296016471890156412069943099861693668518983340105486629594899465690353605541570293708695036832258132391740011335789122838643818662142763911201676285091701580132394079716586787519933592260677409731015117422689023963220013016501117008964085660915964199602020603998595167599336164608725161053738306083013854701146917863353802341074177249771296949823893347460978146663308890623941931970797684886220394489665218553085537196766750963598805177974726179303269128318267486205780926525652903428019088270590140546637470013833025889361601715015488868935910569440449721720211392456484749888583660011930309334050424819094808467898760038276692181719086769660182978203559920718977804292361836630667945726051889605382347287593282301195158655518017828313356583098613731652593503080582396255908286572921386547219577931224335914732375240378690825360216462948132048845739870513672463824650599873114603762253497782210301014542987511382244821367352673721070466677797424225083858464887294909600521861477477151996602465522606962127062085416878723951599782686120792232886495599471294392000996760846261445296688181911180944889919558814713799314815293295825160760107116624951556593720289303451396577612021582500179271658211474939898252164131398331629215911678786311490350370804672911346756645736776031670447118722869777749372049841155253422836893646994865992816389029333329596705023331063186454715946198921174696044074793011211416649749227696638793413605543628013565218859169191601265017034734921985779121559965545078845902800241979283614688616696872940673265794485514121029331647678050432030238929162094969940946268112688477619419298887283020453254835559564561049750752610524425580938627342063589277682844228129581464734736707362255972829437263774877683992863763234539366344505846403222027497341502487576599102151954483914148945282238326814839805199707655926889831544715769511831555106187300676856804057123078324335686278130316986843408552081541485255677208828951940358785837202454478168634608411970360599469204205022389505099905474622524732812866755075605926657023819679854436973843036347551353010142231318596659835501729091226635606839627244308404652362865284232381423499086766091580811529985673188270001310938215761913296593145799781199823426305914119833894125626021521474556185978394081691455551300017513102083825563173616215459035129106180015379921299481140928264215227003187999595833637241432647124378051975244525862986609139765363120503485519687014261642737394425538704104093401178690284831732444669643839274132175880980004949886150245568393213699722603951315999095278370145480127595279256570668760339430121291197850593657439413065417846820219003381050360714952969682719340824995408242161639655390093100714463887620313491340775627556205877748079843945811949518820071320525940334421340012436887461101510266689010672516105842324526485513982392400435721956683073657863463628471394771876051423987077753537119885446765729346358469884781033914667847854708731515042908742459239461326108929195037101182549231842072104379420062672244936264350959550337583817195105443116873279605675329829161312575435682524564650081228052263681461159753211991706603643597448082885621932267393686560625429382249006199560775333065246484430727348720887976729269681479748532637460821151712272174344612137262433632401184329188986371123475830738974105916818188166895595371823995831091589558651551079391105153715928239197272385189345950241777905515151572649757087242876794409731453020409590769173875009613264837074559534153513313449000387528031013378564419114742350224523620088655342053548595620977763485917378780621225544022592527384830776517999637382300909619759380174752578307961563233626646373083895738467111670927506441574763282421096818667021420776326837552607761110898894496467327753439014910896163618414435140276458122289605060381554653157323103591573592275891134925690093560714797768870073195410228342717487574907091871630476238872340969630253407824746509725002722414526033508279170509524408937573333123198203021541635078677826550932171378171231371611421231812440806330981536074376395026542557472387777479516037076025486348948281530335202194134646696375143271528080291002816293441826410827591952495181736937113651514537697574630355039688155770393898348715498840132387691533308860839615203879265983426272431774927686269635413106846562448434931165089668748446934710340534822954844042494454802901500871209116791765860652787248125797753474788031668900351087458568174549707049735995711339834554368894821610053715261453005639912424453996258031328022857815556753370517961433593548312607199002585111086675429079991703537006064368388657603432842134674936328479813459950952445941366688588636535801656439672455889752138057636159021484215833508687176912138457600443756081874548473053787916068543093840810194972061059938135377308743093608025437461836043691487411272220989011476728779478953951733778941126562046748007712938053458407655616163671403281364506738962178520907892224643916798604380401984876059535757297848080536465417964743416320801881522629972791753618419010572539102352610066612857938612848287211511443312174816440400561836018672863279325396928232426014000725989950970512646811985138070288116929747036513882781618018114314687279332331454315102504802737697359069296971888893454531535369515189875968892467578877943475069709594838918709199985678213907843263703165798784080761347005954231533063135629197234763111237012637437169883645699391802040236017065484741044827168499151197376191570800687543188967229491535191956193124787701048836490034307122021693271644873789074869716889055669789349557482685994538815934237990106692455380866035693093474851627199700083726662594609163691191866834087603981605345718730448837878445994564106619464928279029871448513829662277069771018679726274836234505524986843346217582535199489358389264000821604257858150101486886919441391356686968831445986211992334972258493374105532462372231784115404225791978377626057249768611808885686579798004500743655996168491050849723073534559981156167551316684195733447513292296442913651579966325538347945076610328968486987628172465341810383001694345217588085496074784900756730397047497994124351261842137150277561668273690261688150889213493507321826932280660518231576305416072303671389874837793340501584198071058315310913451714395671880125030598869506311654406196180647080736123767536839502282439875286051051135181419197379569469363868127453165281063503834682835738440551422934800799366821080449360686216460067663448303192249589315595404581694972413680574963656793307919636715256980718618747311974596214344478745387556767923021361485972863033894182374504989176974007142884239766806283172901190857403250338545222354033759894400897932960374120546035438418200763258809362869789359558085094975650679953503345837068005723967268132946214075401312828636882307453773754966448767066237058674528560526287684371031208597830707742988942333196659933706724709689525249854458209814394921207939343655680256945592260893704379680883059217354990280818723942350083166725862989891886521707048580918439451741645600902259738411457762210305768869092600196199756364983572315537116480078041903407349958308441455122942817760215210493581318239662767871573714998284140803688197142273883020874501573985852397251066895699623496283549272734508268912027147525704270506111845946471828532054542723345159408698624119906327074618266795601170127525835086473884920460278571285023478467533903131878629664955207064550768958438391867679066785694775621300377608024518082734525214320551606331504036994154860613067595336597168002359216089478140468185331471060954683369162184806558707134105519361745103710159921613619950970865013778053389759398836693787395482278968333613816287002510939802307692164016669599177393122483908264479128099857806405324340913718621885323049102890113716108308680874867238115859742181565370929674465518492928750040651580719202828052992244416273543223825649525174246715774826896121618525639989365694450558351032818566413199762669743911116778094871793696573690376143192238347665546373088851777088449683238058186610490890214787876907311571261412345364963900842699447080255146246808750232039897736546071330432841705373441390389323484250318168830269138738845884794203557989165117728792068933863168270043214700842467578529416604696403753841191237643274386841834063376908656334246919941284466004865121778043276898551840227751809879011069676458190953231321128789090149768694698126335988541954556717571267667883715576312670276152597776992561643721030108499313035437189899247009395752824298729692241071111800967264157307261862392713715782806114143002017111426482584889272072257212203277130099829499920651648922455188366142159595891282375248360621720444959024857568099691558623443816516714631633100487392293226221943195365465767781209844862542039608301127767452831340676229436884135422093949607182598326001355753099690969163734966559745037380554178792938203007569843076695439031187270674422084002598679309241436629052273054873320374993181703899256416167449649356926652153481507710571777303188284522175363855090902876005207644455852172346692659704934706045532756296067906066323102672442059559496173835522058814667667226152539099092237347001406561397500633569448750968771520848323518979421232259292010069507200894275409808572680945059064154821843092352059880849315619983713486308631608177530993431356826119391131319755311787891831559922775024846159670664664052848809211928532569954957327013366289102018529597151020987318184639442800526951909043300223556760197787053090664264844723116541768542221191674862350821405552416336285619372915602656303748519633798312493712512584668544944179398939503613056358538146534974294520242828047303931963919665686795097812119450371518494839553461857076075329697620604212644505057272373623975657440000518850643825547281839696475595398026300097329759096766811250192035086291396430856380268780542422691206708466695667793808428879759066333385191831658073331288641077969980277388121632164618197229799382327922503439232071557065563693152921882935546190236507169076916658534114162027868814520633343518244458692779598046627970127434881999983671416159300403854909347712321623085392496688136772265723665048007428664506672319728135654420431444220544279556928924816510679063605431422762298205106039468390735987427441902527429805800573784246772140507586893275782389649330295393167543655826368293342278667996908620188089559616889819483366568308504888361764603121668763086594919836752609718937985086429615427801315738842262690972075493012383476933259946850644885035844843865983493006017943549795468471188058153183483885467009000362390165675090985197438260891762970517516264463210468224004535486063995436349987617932954392450932753221167185125536171072025658333543526968008511489632677184139489710157968223712323777998170453134977953440975537822404146878310311873204302877139841266742843083009963756515199425640823532499590528093660801770815480297746804698730184428172248913336690764257349831495301549179718603868488641641366820315278415073016038287609047855070467970510297237624004973267965404437574346149263092329939531021385733403946546431380393284754601668289457039852028989705619905005856633168102542479612249799416192380808171869561768335559308203432917111861194066142459302341685892832540228112237514487838380437533386005245983771521980857484740911596560510126102135739087758744852230707278675102693405952584004438769166088899837692971157675464446866868225821631593841533402184543020044556787861653538779006847964816115461477425676643466678616571432139560580510685249293020348631118769790675737306130865804980539962498308851629744832342091870932486556631685998882180763426336180380330937080685655211630835704265987849396277425742722126865260875537703432427972131624718656218150212721001533814352764044674384081792139852471765606453271666305344360658788502002162008322243397547438846569080848229761095989093615129181432469419017754297201682602926069362867759394413039980700485624722707461638170802726093244910407161694311272169324596134669925072649358332736922363720775270567953185986989393297451923406580320289778734716023174722746080557162944886163769004988028768178344620062203271019135123357703649008084555442557682671091481559673655385825943822195135801563771197167936702062224568634854690598778034658974565844785240881926883092277705460494635561584140974535542394776734275305008393605426533858342924088679140936814423285879009223052915279991590500906519247441417091004770849988903033856339419441048643921902022566287739846266971296286873757221618817127821235633490471549947075886804059463249806132450533895452386272552456440081303686346872684137921937957850774989027824315838273235033109670899330157066419524016404802598619582946661146570878969931266619486819119516889978571382608897201650221151500004591675918314137952842924016263075906928102591504769068722721155458369984724422211012783008421494898542759892875796268140828424620273448115637761588585666606287075979845389858885397359150678466677440735588962117649026388773046312288150082414864035251260700750590426855154587308199448361425175009691988121471776942905584636475578159388806623954201893749084032275102063489232830934102823789408898953172570727814669839254676150509011338562734748228265353590100895281786892385130548337080121637570618687637859548021488100672071140270517244681807607601299422257578378515262372980443754897446037591002939914877675347724241123099838146911879572544474496042009487586321049675622617109806570375457977845287555067068133301194037028368463183005066807530624706475224361857438269778398335421299357934225135203492355031032263242244961884867197753558031652147106199584104062211908359669078979633808121363989284373107431582309352969442335189333013437082432643853278990826149765002466223360134797174646420807983695465133294537755766227252446205078516996720198999934010133350720758077104038265583648170001882520487386269472797768681984124497130143674446177383603784505886773104155213802955114829413819681116530162355989101477594807594117715701165086921854114710049853076615445032636243434205052785612868371178869862422845371122780475373192140489569910861835758095498384445660130847465276512015225164046008638825408921010246158353618988556156795455594341539377450291006612155870640166529816814549150487091045363602336962679007420452451078747671110858160388335049073019845459657543115162722501328826413273272004586475040035975388411508587123667673305367165176672359234741082205566207389714589673612442860131844809900996619418551265914031244826821505050968211722386212311526523007131658654273609247852137350152630873645042097086869752775065195387346837523167170317938647078333812547030567421606759571812448172415490067795539503394974344065110140266883233981384072995257794268605098038571003884722484823787587024923392172716067232378375966828065587790533662110909733434199797844334852653243507225336039871946098706430167889540908433831832738009554905680850927913218961619966362620096226963711045923058598579332139457181218497046923974684711940903162865482672781602334664124586755315372206986570758884561592003927637676159553914381141064107128036641827384857021316647667552407500949113768318919687594594576779755050543591395884768627920441607389943866059704875573603207618939929078473257012189386351243450402561115311061598160410629347212590338103396221076910135920641844272757256362449921884192969284504886557168081476678966093634642719375556300958026571667406069670450700559764523975309356692672134756563223105217097972678820117567338442025858585630995827722376701242619501402141241517017062574823919937573153980565184474781497885071568714142353624433273021226810854708277975682257009325701405883696366404360280186573558394491847903362635015543240087944455288584149451156409427092240658840581570274699062826291235403802457997574932701823914476262867197280067415106461578426087089210088433757773968560088108136928575650801843593099633922487482273469794807840647767757743508106481311385412026681801462169606348638693518228333021346613369327916859503079924691147833251308207669101517857971695866018579272996719400552366904988057652288340540382957232949566661061816310978922639940730115700245762837477357630818379816163811907973603158721219831381962034497698162064239850752283277337325833243728821605978861098735519137785588140372986508381751163266745475940834529696709262816998084488901044363992941713355049172185304441361275537274043801966167062333829738024049062982586095139350274958987505280720673183786473024891305790548156273669342031533659348035452212375932319892888437480373241078620860562246217556691406649656032562701524693947009851471160099408912835194756827483296722721766829934944453406790736552541717488658390103931928741333687055929138002772731477548697755411984013889604528855416461552959673062532883041185550118882984158691157708185373637750607133505432687135382591328509795856142302743603957649606785980108937955654308759455387321323500760300773010791789640837991887086196320867905115889137412620483854115784882203959235943327045245914114735078054550403358190338470648101424868919725638116863193321649762981484953964608387484954396945851525795180911626654523673351745016360833352973965589221092115691197831672918442579257575500403074904666422709066432242851324544080760503099725830217902579218216908237794388348086565451658032249266413962473396051152475958393563660744382993667731189712438143450714426349066833674626796514487576042164900465780456681089762373524663044865139464823196604072671263927405371480600202881411947914174210964506313055942410056398778030768315454955071573005820147925159590460246611517839367856016125324062752420437119250613796485089198190958777058099249084208560010388602394315570640926229658546194059909869647650740890903710204107377322833000194344131318989829114607687934794756379260766087148325864793093194260650376503122078960597372119426458074333932294645621715299286987757237442174524351059370152244869761304829777561255990175145475954309572978672740072177410442876241952705751308188966699039025134180461879139639175199961068803957945781408699435579293988614007114172498946051202315286273269232409802703440393572135190345840288779882338142266098933184966747889266988742745147726958495465807735894966320431968422729390540234206993659346551759464401935696808875736513565527378275584560031781257854725797390168904462967021262486121787662647754837065335028591870593939017780464717594243236240820479795837934985204559679902540515940494547744176083957797368673769058556479182794887136785629764703619719277273687581742206193421215839221471693970525072478316583686909212066060297781442291451540611950586526514128818711064918796979431604799651288474036540839996708323631467927213244936269857074070471305843482632931884544051058661940375587325025731566527539290215236220741530144657593072275088832670637058214884319615653104189017912554845787463405381875056140442314611978451309705654536912682557944487804258829500769682321898626238111107236874499214246915040404003133218668230591543595496718901355903146969137362240776144310312264860376479193926771749354075341625710255887112283009804553940333704873282358839765090952167265647472580205480906398927909594975654229061846067947625812914780970375574292480898165417448550967270889203351426936069221576656346844171425141884130073463421177091338849728156826975564830840913326336717247725008190383325739818737436603642934168154160852874645872556535076211507308850688034569682329153540606927242413612638349624302522273482207667432824462519534381686632983333512318926415375390268980209230690246918808661653425971370319964656365517841852252077400377550133609358614163704490921998912980817235962029538477316594515932545751276218265882696502308327487795212641617601548390384586984583193711720936819908328893259160168315237898417509554214565735424477030798689073885423655119403552999768615121850369118581180619655257629645824743954946388495230522939043192083470040859590624775869267390038385675195963571883814773408191367110130507853555897601972413186887351769388896092097081199608639323761143676107035675675195450985667726092830783033338494789630261029049827785167734965663017924045814188890168611037149218707553685442128423002943618462997844709902389209087028258677599793290024068740412895878180015512623850669835207610152581029222069185058987978076103175274405860231492711148538125250221206590865901782025878010422474264403050814934008893553699421554124279402428833016355600845480611425197360007946836767439289136803754522585250356433749230406118813478986495017912039521392725893518850322747972830455537783064856392215254818172332080667252766596431620541805944807093733762738519177931869947302459081165317084647784897935244335720380614698700923270065387351237811893555880738276143138710477321330658524292176952009865221558322707624047867472018538357834377022350425081424571284375657147968931036341808937329972201918567752838733601339441772638156220284901596044742284106914681577796601935784853607566769164334614029548215017627807940265327540169883435434195316982597257270323767232710438850214575511607810784903672734137568505475128333182816818068792348394235790283046532570909969893392931956859422151042753161377858913302623839957249246256520923809821631002200993851783878629128475464749973808460988491571783874044619813744839068734059128423831399226835506173095377600773344155197113447780113636712930495399900198370576056147210774583344123575225879819732015437084932129176882040450744949109305178697056711770114196561695487469569955457946649024598805818205226782805544006305517162010917064549665772809123128273037117934488881927575250994256805720457156003088351254835453182167003120209888175665602481564333985612103352180312220387245461764927719760756163989992555884482471253975444199575287553381607523828907495794340847840981905049954722349176780899897355542816911986602910505481900466341371555736993081687879278573666964628266282678449837678112704991616800588086998350764297274029251889063949221831873692325603991587304511774483342679125168538532935334055740695466163939922312566237332891308244660515960756818641377290495515788532889906154123437813616994804639083110947354161918944252795610239155036306202464858209675195205668630960889827424160266486843101853579201093414899591329401297008097920933872852450683677063522719375612107055299577005685216547395630934014599507090684943999526109950370114911485835658403569443924401813758729506682050712955420991850876507111812723830525509427097018083673324604796439163711962481671287816880866722863275435721997602795855021249960429342072378556610335213428835403247208840753622747707672265703221614598530848070143271133232795589627033533113301913893098742633572074810144260604122194998739520982043140940011739601500116374649373933374250093596798354959808168174942641161758900297445379024645100115732568115366055049218229071820849066730683734741354087686468803628105346366063639637050840060322594442368068407010904147914080743724325375420452945492320548854094472777330867728957284483519930624062333601489465701029537276931923980079137424612898806209404251071821687003541827178246935885289693683871233950818071126520323160694213943504416422118045865972847019874705877049174523614062166471826842276504309872213025329208062441013565190192429768319418422479532304887222761999981305934343540963408734149400983611379929010404902165198001696534510509320118652889500134985548157976486919975355400199623921830371557049566111407490698906146880316274565043092929685649204939142663256004909546724624506038670277906597782558864298724579515518278895492937913618643354949560747960629939433289895607101850074129740279027598329853445366547373825443050649218755849054725366313745370776589299887545318170758033901446976126120801219236484960131914537587384208870327736310454441031752042168170202492424685433938481832397201173367271437591403573249742190766283951872620948773642289035555070995680644813853912139494407699817657122176758776977413747693008038530924147025926730972434251473897943330822070919844429634936827345559992756543084921450058959498583889721949080480021103101077469457503027986720456029668290243300490195865656152338506601086085247051259251072368903914426044804191068856917115605546765577541313378467343572819135579215212524416342672879351457987262360684768794244924543295937593225680382412430804044151703233035468059302554598084018141938839130991313780395165866885640534425045976863068464703852930422812537128881240638371919682513155064045865821220270334452515002455569718520449427126617557097790765220163140992434562496582346327419996696591909630315077216229597379413304490691235466289997678706396442754397053072010156786676514625620966498520697707102833199253552221017907154255491066890989015714352252320882493548326405825443322899338818143324607762021192763535560554018124664011806449074865679249304575303054063589985810364305066917883604463376007252105930721019229224189532238291589093412822875051098014631623957367143457654118054222740156504411131105058633768086937833038419596945386133732892471602532229369731322493799729280059926755672479757909534963414170020386634196145344182859054952805340999776308793433997597891056860413390126065078612560823204380454544863133251066372391013324302318546652650929391180543257416902759540719084176288677352999864254605851448070324558508800237492198538899825763569046940203693882744668184013998417739780380225429149259195749277317837957450107291618969993288313754198076726491800130643899054963744840691458284642612420496167874919002870799697918853412624810879505542074352644179471940403447965109102724481791903205559775877384272738131058143603281196234824968770668087190298872341728952793641870640694846398010895643153523342290031479810166843136947919614720609730858013615070551665133391443324485869469012049247732557182305818857471699146360318779330138475975986112096170716267577315729761334685704814097969154860012512420602987885535337647846511231292899852004061054006583425034516346856303094050978983625277393412354469101293626170198997139567103939774531009630549010544836570216719918722034635756363824411161709378889385493935561250090479363717154224080610343811886033057556124867332684560694175279344094970259977435014670199502710791447832109784571556218883274107109765306341681297933459346742756707244134694314516216704733767358268531719605428171285887083015931604884149219032436305805033072196601828090094043271791799057699323544388105032406749186069157840628987344737670923422578224494543482808126567717321258040238692893611255653082045065306634056149010369686585620638108841621125072437468721892420926302653347648510064882401875311077523879905191475130170115551259365095027766386560475993267772695534780632704930394893489795980911778925653744326543937422785062716532617100491301276476585887813004808407118441426902906254200678976496169966203724074999018383924962308016797133423606997570874906266593733463493311747238915673444128676776285007328674289347429843541691406948981446418541344524728510222660007961380960752701040772759689266151674443660665791711951892709120693115700607846131048600959027972951465467723383197530039299820230677508614793783103409232516679305885809444971780201240607532058426904533209973279358065620778914455124440482552693035330351335901481444516470171740967805413422095299180906029126071568339276616892674456115532092800093355234193476248116875078333750521448641230046935912724551684094934356435920208400866397288745264476416812224319790057403767520411314593569082948636502886651386671870984019126520871938214610496291771605611241326229847291819735019232646934760673591792047346019502146850204222725499060500390527173983088239346961329546058235596168859614438551773255682572004086406671572614287421586562936534666765030539943726433777117552486333465468661747102947425707471145240840693574593305810664791058725770870394121595834972080143473202166732002959217783114654794156763235809015934498393436031139470196023680643647101552654833033229032494848874017487162555417843234598358313173685674119482164882832198303929378208900666864165635632999002589124253674659874275784244531350568116333665037981361610334287691399779093956537587469917820529512660654358748024953105462079082869238253173487093488509220298997492167707593046651158113338304783246584537799959642245110552052822598551357995433140780468738288309181716886504746473420060161594458175927648783175100615405715334080277700173393486915972544835849957031169089050234790041826961127743891011136824983651124352217329412770603813026341816523575148350077986826106893578108357868111581663802542863945488244743152171446531882122656033716864388552794908372296727150585998390200737043520451962130066826186389711245753979831674835802866090243753365970379553017428601709822852543466282260502978228192296797495070684694701411147182712377179454395424754558231763707200209395248030550248615291942583807464456124756630329362111940643853512617336383757851990930337789563507099848726475632881577185877829735370548456218406166516380521163355359561571365548830402308390484990534640227536350532213126285798474887120879742391971298065157156225145357376229649699578516189472586019304801887884140770642778982111550389340417299078428877913960319090947564277462823464504961855895718672708930505099175082590601623035608541002615065995829409418822317117668561034310940901519556035941976295271519144654657011462735647603416640733553010784066121706880487767658296034459262386475855747734122855909945512619726150335698046742946544652410747998946799784648927454814462927046102427724945172854272025170751372587973508902883565123730751402162131170264048251331975042822098951384552813626884177326700882525431724357988989275269871603988463330764027410207254286075391463205633419005178016954816417949317348878122444725186119410088351313755549049418167286424417218802638816562753985733360041105959943360044510938252578802766481442579095548425763256667686186591270514838980441597550202022308442316481714578201023087613689400621715918636966475668011505893950691794861793881106913573911192911947645716384243985067676092701560138762547387755513082161491786331107567699693263983636019984305639886793035036311014621259261823243292023050487397355510388061839630338392022445021877806341801390292508001654765599060390880691771852440750963515195819308548534943637526931428347260128632155695589347590375217333956986053558181334040468345871203940744923635469708013539670296892056415327057617850743694104216200281385974099445803948437171223780859161062547291289418501433733201139419237769927284987921679570485720848262117895374509959016057319145103301592195047799861639973513634301812707663619625642182961355714741419682519778451292399518094802761577905150529962456467685941080031965524777784431018487536837769304812085949347514957536351908366451038348117838304020087249543294359801839909611614425208081024615483437721590074746546970789568255917810215356444060139689315984451593321201982737877807460527984806318853393592553264056804758713927361712743904944420640017604659600972674199501118019442199470307638680820189152106960803373114792754504691807086633068304717712769938884349752036150838640309236770796659624074665303205885579543535898594777542084658544662131174173213638193761117452671984537710736595659498165968875953527256553052258677787436196995545270088885043127590941433023642951983092817046363671057700408235562634578787478523448239984694378073980038821035519714677936743948439795042261555530639372957759761213908282947761609069866159952443474072082548727474163790541203204376326497675788394491159485261755081482364352014490068449037552549504528711277590244026828966023991381226668728716943914242335690716721974852985490650286693853139002780062228105465949194965767734087173852622258531958476574101365001688354835623699235440122359693600605122970484808670655982833625461624988840580805683874768059241672148992546676970704279759470744399240192171358768929455771482444048370028276093844436672655795920533328636382118343620277464608717645601823692049975214261411194950914136593993959888496873253905456168986309629627745569315962711129138906875337142858168326558229153167341288902773433554934478868355341061282300218466236526025203082990557359962941212840361584876982844767216650605084309332357791634125986725241074116285556088741764834982071420906963904058285391826216228998268695975949380590488575368152351745149646614269658795620199766438100506150418006870765847045347714700596330723357790794376706421196119205824254444186413088962966896033391500132432796099227783533958918466257599319452669024214636598684615865059340714840086040303385526382246381589158118363359664373818562104058201328165698540316735563816301968056458734803967516057164490401683827820160310032606803266839604685589812913403117536801291255768900097036049925914526513977577298346853058553693635182475723337804400750475514350907561272195228462960672210621607461237715153711868850400371478628178842646139058053647502894690723928909472263625662125720569197736932903139341358756978228791242833507250272859563234780250407896120197892164132387436929916913977434727149780099649672978953914872704895812275014589904462389058696429492723035412933532387618921156458876442971363897816413221384394558034626557913144029141250116885199892287079988203332745885087873962019584284916999880962566639784614021609505972997287096124330457625312926815643291803738394819151464952919885361976689649877753470040989333379727159490519391803031244093812163606427205974993743009579616220470674611740857341097442874902407222407192008491185818151812427633852311408809193386990524737551796979153348369860778847341792375900020696454778980465442096165582454565757260109829279462120160358645909800121461108129748652676649377548555016380093639144038747044068074173071114912039559556476378636872521258664199651815527268261024910471618972792199637288140577295437189483001292061255825008809586482343503115842725044714417992408858316044363542631311998838150344747327397732657258291837424868253221336201914847369762675550760047847475071302633152791442464845831054261792732559597899502163649805680167217023986364221513849136789469665189599636981895289292091091581455804158302963877917869354121830040998688888707650560675784523488371448929958031397226925002634423933729377836121998946004608051929181573650714060521324366571174865186510958665531766993318173830344832523723928096067690523685146455827238435892090666957383546278011242910414205647458071394447904816658809815878347299839103102752287469474046967738211615109724712756091818216032132711544828799022091580995446717910239857757760075937066236993152851061780016222800130689503482824380598897428078097863373237536738751563996250020268891715608720568198038132159271334649860797832469882632505217246773232158505276772769080739518020633239202228935130743426597860593702510692638789504893955632192116661135515559813269057575409440166368942600926755204065333655395145959443033647298697252246130287398349730483019618694555657529791067787277547211347230810666512202661837023659008353118127529782410474176812005473285408824483885466837414233650591259942286879229483507726271457547046200616509400348912926039955431957832683200403542687182806825496525383158353257730798874142984638739305884324111675854532875489997195502300338352132642356527110701750793748806830785603325414601943320967706374935741539533003747883990990070253146296598041526455897799394876475410724850931927603294897917174136213784198103506849616403938713561098187853350649482250675345626451525297740329892753756169181748537555073371637048051131082092768493599453069558121008228531454181705533962376276768523646265893677373342803558785781280821115743061979155371243564354768881163180868339377582789315224641995493001697844790900079766476198783361464566192197575452830238998411280198621038498830157743708738410828080144737287666819032370967428941970934024336445816131807477228213377537599246894948856887259048714181460237646959950801386604347059435174986009052318312201394591848890753040173686996125439466721399672314030349362286270110183021106675111156974413093694485088430863920946963800556700634047876561037082409804867884265850559964776275293345172179481954550738493811330423859464446390168372344019907188086077474584650233245520572489711651503735461248395335503707166335469558335922089003314811093105035625241575155460739324444620243895162945071839767616987097469732773185008363285906286338132577347176797086008286365784771014243655708737137294057536068519961990142326153519121878183240382660104099322768038702518282689905013928749433754762826805592644380644635852915698379751024085994057155596201690611806063853047946278101163688371115018556420832409881625698054524196110805010759134257423116274388612649920868926439355212150847906167359649534179203357299319229870094573119991169784226885366510539372307341483362776594610820275072013548479905377197752110208021488139107284434838958337452396079131264461657388531821170465993665343126495903472419700891057207310514031003142001607836834277549263847812555726811479079790178690706587063474951441625253213465913541611593773542711274878442640103209138695354514175104568359401016226775468370908677917638329951341468046889569352868045362009755798588010754417592852429641027544394174983197584543691671545375831879858306467153427646260166170736520150241250941328917174724357727936423052842049153843136718688623786700688669902695498242234826535568866776437975758217353681724178526139621292352814651019033040202959808631994332812220298985891741331294125482553096868723311629218467821310026202656856968633389860311490682515184065358262028492036911080130045106582899768893986223020029873020266682395983433721483435941141868009441024239480597129516215285958031825836245884073891924717130756271362697428833359520054337402297168977565143850023979631220832296886854415180768757504850991986416003851929064901878184328260738036579415375088922473330912890232978391570165470989902590963377562583277115219769901272065427673634314435963386698378990691427314298771210280981354038990518196590257528717110177255359810918897180596906653462252559961087106029038506826103736595190365980945903875680234895812098378184566328475101226255811761539113972787869656636476038783309584586952129741360212303926230727583162017153270980917602947021388975447440476453541813844023239519271050083654112614498747762957664613152927304082624646701708792176731621559023521033971585954705802422838270279714940186022288724774495150192048406390897784706393683763842470276918437140113263995349055391609284364993786270814923084851585691045365720342141118382724192599609844030715132883908461395367071412105272205061025340510194029407497595745271749295390793858606386322716975883091315775480834273084500345820943756785117623829181332285007239565267328818090238219283414941449565542842602213790588610200418833919731786325472260696786349814689795481129245649195627574858991085116766023520108670357206241041911139896508056310177625446789940282116489206299309939504162691936328525056590712236826429134597500011438126624463961940292261249313966460082178386024222634029098826070714131013402251822925181145074532496117982780980909040598668887394654345337415292835273206845203742286706180187577441930845756845900830486689521818505462058364007276520648231602447922945765035027161024023604827609189292591418654431079730615857216897581301459977941667168583567014562797481377628779120199707733760091548850548543734919107244488782685079767274247498877503716950996456850662105235981331559735770965590640499957013762197929214384231902193401513373371463885699756025752609691992041679698230878351338934097212741361796713331802161065533514784012271805000560589962544108742917710596386148887121653420274202194001089823491632143341096645523645641574425476162806149948622628197947120995332656928835757076874231482565476213966576158701886088308735206342138180550809538710626433109792183401239101558732344978992864043400856643324403552063429457083508674597822201907204349182098165274154755619205328716377066988391265389325883009078593309732527980300713903254611166790612622091484958642463137460474292851212258409058847153194384311331074768044632952910144117885336084147241830788228795538892654286664484346740126017527830053237795047173946198949841265861788389973276677309259772363725112409369357153099344533436315957211000477806131956256649419026610029205275667024981564837479664097209386142874282180671772944466864229698980601045005527182047419353303659476484286197418817359912109181105178317173557233620487679773497979516425829722861089343501579983963113356714420777512245221594458881235393183178984277679077619574751252027257634592410599926915418595094605377094715366442336816034537749447820380314799452485419024158225473078010510922138304388873009741595897624392851682724173540249533525649788361744765198146214873797373350201389963174984048031417473311253576810877282054402753015794992122482281883158599032176421808576117958983050763104579394151675401359916459608896611203563607240992607138768703535308360231371618275879494370788026235451349994710057516165840831401814160964148485556955730484032393220524854208409177214991579667050539409497091309426035844241073566596751505941297650572681495317756547067231503130463608454835845721446246720883776265194604923072910857551718087040119262985996743739966703984299785629244915783679456050193823228919978420229143846192877103398117953279196400870648499992736416101929828283644198702283182353696013372952696400314320550427157165630034780171924642065185460756811038794804264588691923654859303362606440276948220974068354234243978019485317192026063360302189849987739570514319242794157428371466917177565362215383803955612588336253255619898881383941315190594078361441569787973390220266643667605661260341772385273381717007465432876226735779917344206401459575985605811985204360990748786201063309505039894971353174758183494361183335852575639212464655851461773314300998747082934936630501465316745749214912742258220888494609209423211433462825171607831824274822368063119758762681072277963874119144812076079613539844998783245877808558470791403580403227933215701389593658177353967847577538591986059077025714985199792918862071755406650441436740619597569024610752451363496607249358249381528623686592641392363275844595423516530266033702306645558408623065624456971108791978300610297648846110574242652954741764866252078704004909017904671035984964700603486476171102949367265149700987270328479905999347892818513060236900749309573793718138695168213954681295914649862341491832620755026387682489509567486763202646934551755102928182498391196467909182393524187155525228632683189420876997759678736117498348588993008982463118544784224101131019114582133065280581124123005358964903636926524369193640694048651607563283689485719246133771989589253365265257048202672064769802209837141510874808272712145526565400494632261371175565225578557854386204843972745128112469893039538513275572087385861363328451549809991216221760819422983295375288430849748152659895095960317076754986645374137630467832607288385165158982819059836624424098412397675433819956413887733902556191040434070925405873312271951500439073325700740229108927106398570264233945072301662562178032650525080887920390398302390563040930830181301726145707308395001842861952901257381244218064366115969970222769336793770489676516002294892551841716903012990721201296501333506270071422766354974111199921981966469870956664006653242100394714517812910000178032454064536894501473949749005669062242571460680569254946226479467048866362893504625320978470128681090305962783791319601090907816037257598889091566804943193195890596973623783181042943725339610072872574632977674802262448251157855302750058601415419087537221131528876724434954889393712681182357650797573755918622609547587939006855053792263520713017519988485814137391208239095529104948088632077345265344956069737731565388547835754306823098580903306345184634352421193590099177251932732912298929823998480331430713420889867686491831766482764551648509783183127571966685940965467399168666738031142877256054767215666764458975682178499580369793880035091827535854837351023803509660322552556599141555444173691944962156924331126508124794987752339716009896404320451632415661243250145503431660567536064435401981471072977478011550232305077658642923557297979550551397602321950701458779264414739212118715575931178810856734946743677579086970048686007610485539674009396682669252994853769134670998340658310623221364207499710367664880906366581828908867836544765605239961168746643503885454965793933667829994221239057546757896113200214638887514277042848516141037908536267285432992826190091240042693001842308974194723371882770765364599634437675073059724489094684373350253686017508317203951523600178790732272888524363703330044440927812905934536866314147010465934188347468928262998823630130601376692698821779885172124541457337848823038246719166595110517463243127903156087414886070815548311021325401335686854055883431018870889387613937325023408807965938201480483031644811231762015402434502589721776700525987685752911079948876170334681232019932311321928743418466125998701817465611791461186892683702520165299119898887494882924206169649654308944234634175306462620663204127052479046522225947485262988218016651037739152095692571767605139151290790833063089131384670767807136082989918994490539984327494024388971060176275164865432435041746821740477205357907297881903006476217956560515937853174699754367850429962280685938360583506521637181437581203594638980135385789008753863779994425275139716428576455853881509599865425996111121263525218353737540893838299407147671947955656533381033560920916513587960431756452149002108737452194070166079074211714638920928718476016090249231911042267151029060178956746423834095198359114240864264571107074853007624980220673638377984459884147751507162293219203102605005515090769789431943783482112231317197696873083287468383293986801931916537026638200348246498888280099530802191763804197594627304342370504981686266314633138199244995135040933685213264862216626143045638015541670299756701810799145983714301340032034976529521643857783420248049746048135655627876700141167645327657091594698785747109517077561758971954701469140528987623863446660752169184051529203706434167143445810148812459041088366769369630161221404303079623341879278070741455430961219509880330732327122514307467437929490847000111815787217604725628436874440299990349072352336477956148260727543047507338357941695208541185814142116336633188436139304608640443812030500873747407430351981258795565121015437961854018176835163955314297889210979335064421892206382792601708085966151340923101445509598050049709333418260346282226613652457862436893382874818080831166321408860189627933379691796702389260039510884923222262487914699524694482213222071622818763375411744071764408256359777491004984411315866456552169347946993853458952764802986158402264099994210004334206449394164465158608227497279056804659105802319981404181666468971070381589917825990524437941647676653136370381649556880784171970666908881871118929635540970894493508380867208740873858916782805784646387301335632900560817556570518689835182885385581894187618464318855418835322055865514919608401350510913042964386737267017692094625684048216955942243816283631760549072993983829018770713786482195962795827372843849302107651701114120971271895136778113363452251194325640609290920398920303114286931102996162897157416513531226509765663872541502188189457696063382654025201746274843313786593668353589272889441372227122323730318997627121875635903055240593344068040671658854991089223395103185228040031630777931393887881242637399457661735057804548647097133656122691054526803233517094657822351326347119775415664800121647618915383944543827074135711098802738252435819294527063872430289838878623739726994810190995647633987267797438188240786469637206134575020404386514048145408486372294808918749533368453833291856926116001360905269807485077880809719922079054938464491299811604451051248201576813423036975845979313525076499172671897835920462441355835396802043901129880820848792705993984520815145552771604555450916639108614659810109436485529958341589405011322175918918227407885854505737075417198079357657134764225664007855202712359649841814780918524754051782985983587194509009264562032214567936003200980365891403659248029705970423893401417849408983405889420828137541084532719476594015784918087988412786712883469730444534633001134078424469746761005216325231469607461797235227518889113661084728250447333876988089978824961745714326538959319891938094537356200697795660073292073759878773953340122426282463811760466552954932776015165444339879779657596421303648495380297336297340540953656602715666209562420401897254100269030887306885967583236348486080031367493378804698810817924348705558586126044335111341550683472102803886307988424864795993442691070980705308289506513928987245609474089911504991593266076126398135041864212683987924382810639019024427167350764624024576817524129773437704721153408616804178294996765068580625127475299506559532498818661118722169921472095560654755219761455049109990697568423675215339297355971225275715087665659664502719171782052938851093694472103279129972997894959537217965414822046848471079713315292422565810659649076885751212831515757008915688390775159233949705557155439612034287580617518867039830867833408101348168394370339219341974243163346877167554010287905951855469702441074836909988531592235768360501858756785573637458577148410634013348975908777490583345539770579535213590168266477382725085565578135488763598832002785770631642240468395161657169656331177116454122497180862165255308450802635618913260435962920096403238435463721295159475370293413557820560910346503148279361410656603454420828537160023113668131909196410287304920850041743703833744628104646209427769637855809342757875987841833340399660193542026714882612819488625539504381515336088819835281749473542529613052058898947452978981927653623021464927164086320292356592994191752454776144084306022379318567606483039434162187536270414749761396384298639152870831145938517668485369224524791339701856796618981007020472212331804541923079943922150899183397221294664854266918247805798787826538813387791747999298627164543339304246091128474141007611054200897125853667283631486089863434645693410241748675676488649993201676076913951174561630327374498044609078090640304676349444315588698973721502306022408768962808996777200829540097286219693697999085628637818920687343124342519125716658608488533132234261843260558367351735755946247449424091891352020742489171844022318266702073646768610186247364849275801473588812961571164530777730991879061029888628714930204679227525167103708071639439123743167928668219344462247657260407054599859682878959481812296099664498418954355051269746222228405582160178156384893241562942941023547244744065298275956508523080398810417675310953945082956686670098059680397238783071088873099167083990986667030216146571722478408522623333842572081681007339653460321498432069726639309186514925480137010383870547849580569239080907147014680319441188291677410010867607146367034609701658774793861986557251491603212619971997380349016484226754491259673931239799007483105538506866183048290644335568139253044901755675497722458655370131148854521455752765003400128947427422375583403216774265860294150285405959573417873490709801590858265302204657806921368634418238335855058044069078904876946952301682422689530301950384904574094772378584130809424481263867625452617907185667849491594475752589043298597155625391687066405003386911470252752877463230763947736622050212431711197669755407073331126759558114307664350837766138393741882119872814024301959257723399249774565359917373704823455256901746838618160590685025236871722925582045471781431991858074949168211910106141017546675307620289154632134291872260156914532339244678353609292392595631799247736426558854142993028945714297643673232226292360240155503056432028370518644027032070094133089307407897145934113546630626365872857188977005569179639209408954049496757766916683128261519805386857951638874569339612697366987222044985742652078573393450055218249597364838727810394612054451563797961203029165947657469934154327101407474577289265442299660080219143075163201211471223362886891100314198269762081161023720046209913211643260706919886802864097226678090238074035935421449915746197968355714813677142010284368270041034431879942143613811977053870570251577675008745353928774720196545049062159447237705651061967599990856948777593914911594201505099136774196405319122353927497551027522621259329031592920206322743156316398835598947694912780282598450835836799862035335202068546055921678655283576498156695323158588572387298888221915594480378709089164856729907213738605360437121439616910385695176160284757070741220885574454803861554929996011109008952930561509283466502880398315529188908659028176649338550360211301004261404612185620272908635851705705207750060330829518090619335033657336926887231145986400466223734847362980287798810214710192458549374877745311596289792540550178074749196477840674655279039319556581389669254392861168127028607801649247175794769004071383841871022921733518989407640808971431883089221639365968753798701420400378491301275010036189355286464804238014072668778949947024252513956832936672012672774688760322848694287301349973554634498410829039902461431124852884825552468148762739942714989089896406588465382777488201549894005594865085108465819786193302486083380072550353705752672616262712089574838570781071679039632140611479857589273165206651387414183990141524080694271641531248414657507367162101437285661506728048482094590121411539705704846221539045505320545140864908348169336750662852070850447616870476424706292519842182340567119317597738507121384356616120054129148709109996813318550345675525027394805609455333324261650049742736992368959557120323458164445061839809446368120108418926213314665672159947081981768665914883268231854601655417288345341670449309166374846568976763423120189832643839103418758413624196745799464920222197983459305656369275684935977767109310304141130731253956424863850145550075794360426654494747022596898510266337438301815326070463610412035069829100774024752336575842434925980678196106766125498936694745793203834801189180462399344020486054740053972919887064890835327384625425978152377016539340906639616141813699362622724220637338198430677526480387417719061345607086951288294213418894326141155983741984309650618079924824859955747397586597917835001625124791176820566112456878979546722894411612072462218215036111871960386759404634081534052093195489945280136392392045582070502328159177110790863859943266252683370835162218627906963513461000189272878972239673342112248855253794962334805017456457141696886360100538717492882149746928962534740324906591107947746995501662902714298465088391795743901191544231663338727905054893157337140084303338771179398455028810515225387855858852767867246546822526013941421263800251511052536202028508833681167117913145351827458269079362143382873636714785502540618315074263817135131076739357650065187225796621355848452519981400465049664429369446264325353422704810873584386515316574783693494381756184393891019209933920793591730235133613433361740937889433243636766210205752064049860033947626117730659790071733843508611904667283091919140548761824903540960361117175873842829531071297887413006781572900718720285253473736830526838820885190065288899206711414175614821804859030161269936302200424573036545063083444521271814048110646265502183349180872813431700059389454647778071780075541159447956636875231302809685638497664674164239794038097802400682239304397514877618551014680749244431304936842402797966380697010721859444694667569526315883828526261340027805651395416472679784720187392873431743195634271468612868703186802680513077833113336497051424345861943399376038313489195361652219857173400602626816423331526275325615269986604467428210001630787133567564176057061036539724403434996407552391445970004248827807009018247852047697306068182728689501112304020259654646391688265344062451389438008685826309926370738304783630389808601099489941257512561401534463844237087490956244130195998756389104652096675458776600865903952152693072494759346376552499957398136870468238357822213502275156277174392239955413454901430780658888714513281337076148502576852323638293314742805966880964620998422476207439426900279429172375897478932798562424729659085321594720533236949043402796626630740273131643223047124289657816081090460225680448819724706799349489374391507550517355788273674663011336512806280676387389443510734047785428449458103240215302688926709289273432162228866530807917255253664825319222486046719040118814979669189723839048992144990637834224725829744875713871639376603835319582212583899500531756700955293648507888404290003623246079851080944704118776696569852700224236542148408230742496591289909650888536308725432732151415989181628756781130705162568510558151267135934483217802678350896047258005426171033289518836389103244737167483205917873365096282974559694346240925565281665664281336902593075874044002346731373767779248672610262584036880816938609418304354216051232899431137753391065117317425791903877442755577466603040662009904063042605149202987043184601327389509099815270306433694469041004457120223545117101132875640395937024233171029839349008207273903649597967324607011744165743432549961178069176467596474687979151557278151624730605833452636485128981677846980881899113210039395551118696836023267657819460839277758877356094075598291775428086114543301395004552465512429100491137288596606867189535571189037333006490897568335165004948243750201336851572849963696746425914953603739411549609823443143510932022180970935978032954975959889508110435013606216420030405425352518200915587623321754421758808594192994016616000363439101534009403986138161418529659189582746862217600400754022405234914487411541445060350425636232969603659720823649255942147652077137457479512200232533075772735440666725460638556600200246857044600372754039232960874325328139244892759626369997460819803076121586944368125434647600582345170986588687578964346022705480070837900413305141721926594157615687911501913402974858505171486081731560973989818711788963997543859385148127122856592027869352860760961001450046862821433081002880034237990803160388504060829762941823082783808603522724981023677059060464634773095240249025118717986424339190253045895732039085850787195225501777037652162664218528198174050734002666372515280934052081167101126969867793722598569334951943269320125902423076518277713527188447253277802055114483586444782301154711844183522932511493257269886174912260328402072777884330020182435128895262643485040180117669218940030138462303925595731289815372438169530773158947855646025489012335984452603058421107836641770498438042272775618146361497082205297894046841964210519595297634427944938008762375274587365404368603239256812039681539780620318441175173406354964644946886431290056599239710398026055271913444121764931576701250232821586829133991709434721860199061499472704193722324481136577736478433420225999696279855298823483581345198218142567592434988631331576435549852201618747009448486245729014154559189488870773043749586720792483838574340109825006289616607997109441836998747844395676792923888624160244369027154652760022493934903690547167448296577083073924210015283272337960935692399033882446560129800791917643031420219423739939643744425088139872031104733044683994406298819697937197577353254193649997033298030950573019449051768134116524453593299051529119861470957035374526557874245185688896013513044654670270758809946090330183569536601327917187944495410156034369228648022224704476758696090322096842256361340563483682971743439491345035015456271211307069128196826386733221318404444149770373845094446175483054536899360682058038898772474119523892924216374678456249854279850314493299533158554300276671540262962651669580914607881017471430699174419986584732904016553566585762630805024149558847753348985236467223893416365653247943645100590252258632136464125849984679616184355234035232472111052122663609157360271302132944820897661410378070919365580262218178495712207585119042287800087459286773627633230096904378031370895252076667175727182998614393655511837166922372541946679808216666811103956604393375037280755451484806816604367467894326404537115665863750531512081271327549205306822200052569298501430885879183833858882722616677568345546004203873216650375630854083599997383442031879253515109883833853900329096587405487398852972968379972293660129231230716020550973393093605034590395514435053077998616792471614432707476245085130197897386992709933257895246455475067636682646452715255225433388053548362739162623925296676645875489467344757727335601383827372900539389665659223059857104848277439804972058382111553820098920966136946893177199111474717037337482698105962706129131399606088218772148525578898249605715119740995507139928669201545658383431014260308085868849327192298415895092643571831409247104705184512875869988410928735902874312039343762798516411032441226292631100110969149554450309453357692140980331567654806421257727767562525366210180850636818295792871608398234021472035362598206364552008523128058003267168668344815110463737048499734839907210272119035800884324222116433444508002259779528179717226997323743864517946984457648063948949183343852518042878693263275290244789047593794042859845274992227797210002389112154893838239138287298993173119476173906115044782792876911023764755025225717321948181473706301308841788981959816299954108339024441069270673759595699711953593093849611028657407650636769449089301855864987037289727234334572249278915326092232477022877262964249176980803027823621723937988540050362571554887536100890114568649828243767815051248282055049206761472527146521896630049688579599767752259397406030511028985803962621881971282170519263223089517468158647724940066347625239985417319602616103692419571597760197169490239932872743974658804365659364968801685286397751552247599976494185950268040500640969843511307379711044119791800574646549307802152125298100873140604694735659064689241814839126360000736247105564819825893808874576453627742993768135876541917973572296127000892968471369649368367896352518230389131039926337585965257961649644990890955243550865890255302785990775532590127306002355311241372288339546404865777833161576829861517865092413747423720887013088054395225927885302394309216595649098407706095942612962824796778811133533262952874797540987883556678790042919545157674414867840448236392233509566007275479391401697107231858244127989233882002377940639757536572516250133516367264435915977475061192571301623009093734510047452761801638070967737009437680596671422941358960082475538324597480393206079604490501769207058512367261984589568309379680625434025095746216595188797550577965491955049492867123325133755673871605735638002894299024885121880124056867923618924755604824874955328263873146464164205988538514774334331725912973171197400042649872224381061421103274992413637133754743240629667251815657913864370256202430396479048900504429852624465756623621882085409494236850573272737762283655293864213194617852606260499906254796884745853044130593739472779307753507819355762734410692155894072757362859694496638890921585132706101710614979762053857085281209575276329498576677719475935215242167687786817343705567423740243650963517997153302057143111464013586402829024515173261076716920225250063376243107416178747624311018029013318097223112382400446652702557913433386482338478240836415091426303214665547366175962561696659433120665985127670461450435565056763231927238034514025354212809618536406586065956865009005429840500460935485306206267704765845643230355579621397040128414507155132958915455166928658278389403391529922388233290253888572605849243307420504807749658189661060918105854541979324802037965568280399926145969205463805877136490314877440480911274281654824191745721110244974231615616924754790847307516632660981952379567646387678825343150882208179566747714706801635105964756831889832497120460920855699713375741446504693478302243271003842147687932214248571356564628340103242412826327654208160894480701691549541907889908583899738707067015416665338419583507169714519341920374457438205104077772973273608393241637456285892241337653863674955049543056637708434508365177004646646381532867444822629049601846860503688344077608448239700256776213235721377269139239309592523794220566769837043926078903482673734754528332857659917761012569555350192620551799398021571031241431145302306985898701030358942128852315150644414206528495349362202442156032850944544546287414074018450857333734350776305942612250192525532512991863421476582140383079795273873761052730263924182242641542150906460098831844152564307260014686146011619491302403669382475017141894225920208067077454915759538454237813886087021786642478602868245538257060700785282733222651056334456649087436158229522645069096083169561726052652534915020704138021903400570178831183123741998178687238825101059747512023490654168401573350143178373352481938619828717997108611704819560792586428195619770249670042110009538004738803920047245467873090629279686005426820228388866840290831335207688650527791865629012892131240315114784046500075712617797115876960036259178899584553203528776418478397863166507073750966908836131673914766831068048300176113605941255839026184975476669621728534035859219034523767151164313372600671055941435933213580593431965154632317833809081857823319571680232256364543546573965389158512696172683566529545299336653616507398029873401838864612441636517466666989389248273782645426314272038650117553097076155873345431026760891681516242126487058077506359278820073571778056908881607984334565970610092424036098417826254172021527883071915797667428851450587738133761448400083912643956891713569322761335281604797325611648002436478133941949391998144463450338977304830790172218978761141526758491378276713640481452224170097638024592754166726985901420341115880451518379364707694489921651958233263828168333632551302342635169444008445773426489193207412771550956432261038689103857009585219216284841848988273268655470423667527507529843122908730541983950440894202141667808219680982797670774928984971242388093354144951082942562973278266923004101161806478685421633930127455892232424786749160761576954116883021345421715965846090848019719649487228542292491332269577189910652192682352097342852936279886092116791707629485847496149978359834308720070047710218568974412617231091035586226249946839024978024823106107738908043031729059847704522430321003304957569659557590980897187735513274829633988645718778469106403556448961252735144868231053002778188431067681436348836868815197935919480586451837858659731027120780587817682834764220458041748546527255792593212754220935506709152174607418634501047954448472804322875904278532798925864532242985233863325720785494344100713049181600750957198178380956000287475827557145959121423798241034420119904298000834846679847791736676339167559812330736044998178330002714620794715396260742401905177826968287930733427372635545596820513214757796885165521578563821506100375744210687869817590879723105471878597945093416353173097134275573684804654936846085893279519387805483535183845795512788897107538526481259181979522714467314889783066814412948090438764754172032883679315394873192784282061408378211112385518592573720264234464661698520633845340600855266871699988254685318368450116433542242467663197456134600849630856057453735903033205858460474211719831580072893001356115756207174231489330479644746806496381293164292352358113902966994946800145068838572950498800317429475562367674376499424361295901887816363422319493407258497317389718473874274935509850647269696844126520678050219420428761073628889385885038732456855643881657884628098866182032035782303338009930591300723334132345096025973746052004357099860029814550957846283200151357359254602735159675644163653011226471278640324482400773799691764665060238733966563567934039835656807221965404885119322488205427980912971100770045002277546120661716691559139809765659822716963173713238023308189464381281348664524959954457359960273403749531981034137354585996149549836091761262853953078738457075946329303714882251930381717511543835002670899582654526381103725254887743926013540602522145491981699579873716453513255099052087967799440782253080775816995602711127758544868440276052939451428880029095380284854110122615778414915814077499984149629224019889130831785966691538822900994694745024784490257136735697263979283040328606345468198590148086774140892108904010576575031104192216149418743145878476136714773918305353143832266954538329922394045613360601782141188650929220792949664091216003590511538805649216270544641912365189082065327758919973892229390120026823222236977367233003938217236746530526507439140683094747321260320884009899014802678019948268585535148065705391400576934547136732038757724513069759606056795390037265846113845113230645833725058053167934472599430552175008531778636339819472177438498394166462144855051887706616890278874741977750727859461678481964887923839242970123021952643848769171169294191367645398975302213189442746898644511952336113580869952565738499513227234485893231138679783119517843877135064823078704829980344715507014188205310414266822948160081609502468235978893323946769501559475750223592602042472263849410031136704409745365861030801205930892752761072852639425752928436218637764253542781899306480066569636727516169718199072260193757116892594797447612487628882179865013674750750063832347988396497740048841235756668657161421583110847360913934500027320051307981281570222561690655268330308366563814134700708194221664848221041593434919082040564085952240388003780734926165030023171799931482592911800377474465950156593998138623869286906265238206123362367459640720983507701108299079028069034109175096357314561823190444770495486618716069228030350137359522412331696418348799080748080408689982217275513161958780967752165398983096203489409368385653942119612308102110347105174241643465517192077927713852950602675186424396926553672334478410068145595114903678283881757053538003894600276907056312702323014141306631680174679733509725414626095995788159410727806596654228530160830980948279808777995415133063418519778723030126639225399955941394962110041954607825206744250803288180503393892187565244451699554137647784167163730755847972338659392635224018226080316927670846826907128840619197491176562869996908497073082337564779768748466753052691929850792803668182143767960730508738080830144642975982541700786439730496108341861969661959632201840359163563411843581859820514136319153091251744066240493909245135885190762706889366270990559464689376680069204682836304625016402102743791785448024851286182161251211457000357346740692536790368909502592398915481716225418252452080600390600406155405892907732068730958006174997192036471209788419244666709204449749874824088659052669358894877525751640135436742379201453072202353576834544681206865951393272635592769965995737774411037909107156835865846562208586210713954935453912256732806295275190075494090489639438880642545570726221159363124394916459725649101842575408220047228888466345128030448319017840074011676477395615436471395235581999769359010841775219733620308326257616596841193661458533114207532119529276697170420670518598424997628346041231639081227908900560239147276254723044656137389193482911984549306094462945096159115367552528626105912712122041446841774978186305011129740039411193508189083573332905511440743044446758533039081986774585870646675310587332044486643819547370848098401901457110801511114446629507460652330517345945257725758930786370071957679284954220239137265682599318384963573717455405038735780540832235428668250983407424619172124106592840528111662009232829603017213638492851047735852983920870989263169843588574220637445799561054144370524882233580267567460992544022776840093593181777507857673345320731185308379736957382024604745009604524055600641568355404686418106415591598692574489030347146086368684207141529519539968886399441629850126219826547899506312921479605647184999313392444952972883378335522530665608113911155759997907138289241837357409051932411808327532105758344340786287664294881133595300781151425957827964092837812763167468852532329802856792473204532093854210158071474018094794611604862776786734377575114375923330492549945720627684233643946932701733610844401875653569316078803127015677432921109546037466986463058964329961957990839163885107358365539735868580394756294040228635209634721703945047038525710853133624475454200105259671217835787463335941659232356257039331280188197993487698085088538737901567888592495993380410450709566819780689097913047531270144691199081713805793823536727157978743995647891549064076938192367836672321819058213639903497314398119674217404866069196506586883151348340187681346790426439557385900654837580715281812895107414409604501704396548535905382780434813583077244516003786097373743147217940264953077294295524732164285858641931339046225557314287679022533447878688563797709322070475438244713707210817280726216192203451676638569854214600293710661317844674349494603427459097077940257119887375313991238132600095632063682362858307898741532274462127591793546312149215856310068890958077806059372828374066045173381475694066896879074464372890324045717468931622799152607670087495794636552981080060563205359323461491322115081869171155006556665547745497875592906074227619249013128677758013421084016288308729212261577650952210150804466374403297822650479584839492908809137834911052701891586665978153952243363020381943077972210074929529190141757752516992977147935001371899644889115206473629667612182183930848992602460041899154669973852196756729309643421698898063419295331116601520268906755263925108101725929474115970572467020836237914457657307631055046947966134150629498747616641845707823855574370474740572018709533927231232500033657654418215016266023517184726721533121075096401585101898137749142654529986669208708890369491023049304630341750898351467990256972876511504451026758356083496277333454143953879619686112286271837770262649999543789756618638452242447394924921505485101221670755524051021038733002845936131845844278673382314261769735636427084212028318843673819283471319508717312219101203167211411093958999228846748017416567609937878196877076344759701878701153635070426806203432221962481896791090562799268720631573443595078978529230696719511043330556678384953840961252779583891054879684848620867971749300845214435942534620011241084266566758689780827762768401346982941929580203305740047491397897105912264221040732557891314047746709521633731095467107147882434746973225362089718434140168951520932937289579617990097453132280763181828994331896956895304723703995389058396574835501508194701003364946075415680939094827544998118100311514311243716206028508211677160529015030383998177874986196350048908052208969068279491550381572239746651144204071213280056065362446019685738573258138094507943474066036054359116810385474554139010052108568269641743645926975730111231427615691640643829304144191258097001501476260450843029947397770443406025584831551837098621043718244490932449990941239696807273557499097475439290255798479709348219032808505910233185056595885693410369752178796616771042304942352351086300728128713214793278040206646142623007856140840325983489255712085118985382238513620972879195187746506418610105011000152392140198811550103331906715391496612736381353490620189880118606264888141694352927513020120744485069394971565696370052810443645796540085580441624842571854483720866433386657525228581094828921725783915819147691364603268447620225583378843070662682013656256706042916609673993739633372559817540236901883535300799015939672492877457231001781338885062942677684523610642620854720708060536737626847668768462104365662552545771558209684895512560427094838699004537060236388671367910424911491996301475646726002794069393629208526804159391655694283101370172150024613412555388032120174802466199405716025981142053849733099095858647713112190057785168213546567692543695868395539592269791198151056786242787386355969635159652578010088777516139485947653028933659176240229706578369853607110049534756757228407933874696396982052754885413863809128046556795786738024779624558074935723887491817201030089198899323795339275624929514306391754175652362056553753374784035475143499180169624212773057517531727140899284179971054379976646930483998576569703889161802688948286649839647382240305236838578791765498736162847160152275110555356422709303412906341214050374706538761104405763127767768795582839693606879749299247305575701450712864877603721671366639964795168121815089563593221450808534862645244138042319376365335527483533321558341288886647780139622494602435843022305917574155275447784716651515806015968314346993860224116703396103314344414215237812127052900415296832835814274572054807634173997685403211427870270994658214566961420493586005178320307495998499945367759639015443329837295987702158798404530424172368853956543113249128001668861432133590181459881534511564969308722687998154401637903625847449402767622314058383024632327835558970491228763755160993522863875948264709234548966040439552829693496327329619453926341254044358306491272796994144257715378660212159628384800807764860068442119512842811118606563381627587966850467909393030243819414713450444610996238141708045889385979634382447612009431475013914511029035345846423398665337750340328875117844562170190700826875371234894254845267952905967289911416216871720725278954130366253131216168718400290849140108824741929033100395853328090305689816195958414640350088183835447766161764083433565762829160365278550533429201734442399991298215606563923309683123260611349847459047534817572479352289989350094349507539637348289115471101729844079071163848822988417921854283174985756016443562226461225946402830864776638735945988424504709908678771675009139300382117519811184256499449961925019393804725337399459333773125252463064043429925100636277264404252212933536398388871255865028214839351953782912192325132955047942707747981757306909813981758364267491567563803402416350300899745884664455951052637730388753348734402177258548165703260033562049041773557909734759843947599584542976546367412107535150701385121261710170943881638681800325344560780113893154572325876316875914141839336568222962466009146205514597833791156464792666354362782330254858219782070997473109160351106470097487400073152228766473962912778621844683555002020430719142007284627901831863978702570277226878239103697244548641105888916691110592202944493294362703541330988052688008793461709563048460288276601190708940730028200664359866943099128838669523792986662817889842726970488860447376760942026153771779179096775127871974710440809155990679190772341720808085990428600454545675142277138473782341100531182443063238871528440862687566050697234784773621962023765844110337215904381189469829313069286115985645313989313994899983340440092422837912517555217462189128760513946898847267718746650478527066436257483191690849153712588054145403632674786953964910372400574613022029319950310198775060288023797500255215749964464245334988591590936954395808452804500493663983056378225410562624168321730113237466365081832155139049801939199625148203485233603520297989224377311115009165857010326003536444475177424698915893573470565875149762563268039695816969490397599461063976343230542272130876246685734670460622349378419919838013099392802365227419198605426424971179228205037053758742713666727148553094608077962908093583854654683498403635552168457034303500634102350285348776635304712506884408723266759056557933478459113321260789019286980993596367757831289572697042883799355130392695124058919984490604631927762990564603947687565277618898780750820211548536425379197075472907112634428136059928119173570992152555519802760560371809051890207185773505552327139139625015942725393023718644501766178359500536742452835334629660040084680727285331808352724863433160206496873873921616095592777074720918638361912857557193948445722793390984130659405999651263847999733328982724471352363001173194587972985469557496641486067831936412121572645340765807066896025318540147824874797280631201916673807223776392087232475421013217402193170524688311956613036567070305219123786177939256907627223847705052392706222283749423814306103440377982382108877414396313901510708203127545660795464337135345992806287196946972555924876234056085997602542338053560291986990956076137368277070442866704641224740569967492098598383612829365067744980245221678095700993792811010739323086789354647755651487750747946650087569269504913255612642806005988394995155162576408277981605727557443961201814749780045132178212978637437510997476733763131344406693221698979064814152245960579603637492938539058045809826035568195289395221669574156422043036643722991469676043864419421301367590016932422693491304924670270778248184552311346110345348927331506000123028538334230363824715502555136874563216693665604441464245556981823192741194508279688704694176702966019507450249851652980618680546381347525143843327899199609271085812200893576622256979935986992214992546471768210127651995959782470050142217475458619429603923945909288284181468774841913614189873828126483553432410169649346552629534556346170833510950168069402286750567763445714741321777516730620778218770649224444752082800098342557045778491919168841767717868863033212689549197645739407537009883714004870254292603296387792875437706956043733999010029485263815003262899728551130103698581932674488505222842191805455408227747527607465389890506437479816983471777490761037600628289061945763967812992880200275967294498615477065204732195418902967085837806056950268859915202286168317793181381113370084664828231642940194035016674892993924087057564794251319995861278330973526538433593841675247530968424697781918624343771115599252828273132951369787821407425451631268645232757808217439154214688943590977318156580220579640441942122537014799189278853790337774328734095511741378352019197915279650013938688485569374748216129271672957278563847386324693858405292467490402241343895188323801079314601834291621633196573700159794273900450006384165131451765590859700264700322130221985224974139157795298792909634972898511760181137446922094253103131383449613559931817883544164714503878554716659769824672479744031166060619891225041569090447646624571283638206166742756470277596897462784181051476701358042590385753062036572937840164916694827135928569273543067691788670004922027323162640407025502795620934962162273386194868110608449358956017870858831338441728876389093153740724000728025325627642840264865650196869797443042592258495804741792279253400552524744950234083926561723909309423006093663032348020210867886808965918168479273683301432714695684457049365421273852364197627489417603760297520161535938944876220235739135468342725946282950905765143194209595516072612741353598331918412357841964213428872566873897084383114104658560037688220324630865651541079929646904657770652379505345960246149402061560544843064378729945258226263609197006342345695812108101880429485136828673985213253451985198680652792016175389656184118252242529689346349832387862657383224882146718221239216145216332527567001704289399052465482587785124125185612578868945553166549754643047535031903559023214381285817927533984012460823890717054605835960586771990218346528305718682775107625066537094529888302119627302931858892708475701485689985296650573384710386205996389432094133595779644769922141537865511246485379439254073621927524684823828499731257186457655515086958241513497981570174378273366379934306509060649809298386303335394250218225663812732097435466224458876434994073553886358770672063368111132294229836540526882156127024596288572354826421831454614331912545833118125597914736484012914686221986737581897719518823278520809332782805285034388138019528455465051393246902691156026768435854439350762856672612665083945358983093208037001078932436582915508013223812988714648091356440292471252441002452525445080232461578220635868716711055693285438016246834619674923755227751310510012677605764387991571994859706517602138914640631735022338464345839483543502798190272879730320285084688401987594987037814617966864628754667039989630424833422549049244670132939247258323623153119971239894462176588427193382546662161038214006990230277426443857141757458794397897959481580497290597777262187482791915421390156710404249879603838398730807155042530393201138172623366914341884766267550325863449267294163554406164160581260068978504890246540953673844850804419948123152264377783589280107705287235798131917642254407902629775223299431624405682282404897958586204209590301675307700984125504143951737057720575555081755126017901812007351334177237247622081200086044079512395142659896434037642450608295996661560889038571068464029141271737657151348879446426891076941089531011909992999563093090503522277723326291470140178644514635311873837849554388250085692730878394745287492017688644731178310411019916006314988189299906101527781687084216213818395570791840511980675977695998753137757726887891088645916544689831334742354792980519109215146830716323855351038727187544676708295297490534595376525931925165945147933685063816797347866368832707895439596677298327096680062790539599982945777316823832607388018065410251461721628867883587066190936772979664222559336908245867103212145301576140656384883204620465511573100331062717763663272535510511401137294797424234179965953734894214214002365844081133883197617525505890092454531377560588422476286523876062724699030212670470780945124147162949557027040189986666320179842300550700844075332796256999177187654265257033125495139708649447191452729448830509460184152955625147404095257980099014633837977690212939408531024885615673506063386349236844895075282334010075202582830620711371905942678155214109218605705420961030713293725553682257947355874625677765164533109298228760283792259302513185165813377060520921086575617430123342890846992234973515116314217452542671397892480500251722320908212457411077611635359168604652376411852083104556005139095894987309707087231114254702312167332038108548092017873914879344888372685456892148778303900165477417622812605807283554153313690079313963000637697020076253505072612334415101114280709368194022369899913082474246540127019401132229999320483328746713553834945796358368992886232904397225844938171077259058039497162595066369160424288128254838697159665305547425435455973433201650174716942614086413803804665953223880609959689304939813989144177810804401776804126311873070380328407813651523786595055100874035838497378172321001662305272199478799074360574231409928334586615303026591088028489438826271928605926885462526118115065543143918604738638320149520141992401651017397674092260432548429456592585817768997716520267498641989074933642588243030082299140884230370334920003210947642357493708251538835961285540285715119996841213095132976010606223844678533043036052833245947715175211091321846929689013599203990675174666377175408931626352691592231667585283815133095733518294423401948575999288757158961137352500733529944686451772778107293555066200111662786406845834742122015354618427456277813956310035038009018522203997262759054682726991437536006586551263453165342239940332569876199032700182932290453802164698053155309882953376189673095344571303771285992545818022726137465569058225957869209898046116740093917323357544514241815594279041648405012175275111622248413764879395289487689110620834678757632368819950650817234936818500492013953969311504508406318331697956500115163300837827110749772860464151933114977718620058172118357176588916463557018448873306567412167110459918528506122196801107322548295187740766699796023038472007253327600594678695267905143195257354771411115730628379487172387990101107371970337951113879024422857661195134709382405516867298698709458855280989655509050058394797768163621359958964546693677411679523655933019625431714598281637637734830415853528871062820092867345131786705790558624228776977038033586718966440076045210507780109026374014363278004628628932431216984895696926812699655700961162978104880833322640115844498657886919891551164987759500820116547107949547616272535974431406989501434791552148701805244068880531824450548615105575082458334830601530515271410340134615871762049327376822811793638223772636769508996060057645760743490838086724953303401193647364221640318773501742628383091816033713053081947005481456663342292943943791296136117974299795978982220183820433937515139008187956757808498819671169957798148004686111102029985597696284193886876123274515246277330804465733695463654938404008197776097066391323765425391868682035668542766193268439028859199678814724835023195058877475641591064189912406912530941631256195410954353088146423434083316097049504493098116735398312937355393411873200886708671067629280266231313666098383643075615682433710032476128660874213918935675213059506263362049826465500820665018774633318404810965372693993549925084609322236389181879005872492386107832157797902600355622266439172544446062893294594542958310015673005507543724742621184651637120770245996827747589021270774608232810877746564376220508922117628625949233373223067991761502464359913563816206074085843974251331593898633831027241143850753208053897338011591250879562340729139453038627070681780146819477240289396172216441758486302045164887958376109298506760537167764010412278781795500182331972605746176118837794684547320398918381170197786622080801810164834714314032925450314249522008211143307446640136242253192598750915751217391324329653494012095392865347084631588215049551680144287064948483156384372726304816947957920355668445778638297228895353441185206100695450417704454744925970866988636099344700619938864727344992791272223165852836232925364825934210735524995285484423127322046747107806424366995842385286374322732442018283439734000322418590192380305900587222928961055149938830614135006493691047390212915439774945360510806487208013119049022311070723077062428339195289372209114877839087904495963152229896827082205304896560163959455860755352222215957383495960928649204136611204987681652094163269125894048452822290360702772755091042347607151026084703720499533073566165201608031588356387962243120890070941921734504778787740940714687067922594259052275181809492822953318214890404208439333772858902536650842632772581439486019593764875492447115208596616658830859553361607170585204247977505790595212049489913462737333935179735374909554018050208624252947155610087991541470696535457299922407093258038425538974677635148089518769883646358942549428422073120364510050271607803983361317000227633573220580504720999012877768935337598574166458520076392168780485736753929495033840982293979706583142555539282959192296980687772279663972939077790821785173247610873556418967084941823230292691324944913403757697788000085212068994885195011870424308197047767765647705166600738206498848571710483227234571192591806527116704896922909858075153627517095505284290392243650048248807448131857436465669844521805366646754837987356791642201329619035170864147973371577541061516174240444957995803155611157910308731347209903530189499946582192992196477105688228298614101420194639054232858443817124083633226562432512383859477635673012067644108501475398144634285931049496869363826400464162596469514903196111048544775919170658439270676024003114521271764708333200941756887387594777063240998092068463053477433241945220021763000466228202380827780419779493389391889852244085506866690987261509993432755942195136148946032754854002824746381855743038672248481457120412894022001415268847709624612221149992288764391919108994000764500426736360335956446442708189785274177077451339584095760446211432765598925712124640704976060688947521778888467536577313088848317041308470830281177925946670120877184128659419901877875096320028110237551436356123048655461532988282999046174517748581477601231334341731387710905577093670657365502031757900430672293031445024199197742809676221242519928632740258370400752972817435480410639345063732675068434688183887483323541121663418804241233034034909675779416537790841258687982886103235278857332155338151988305880458531534690431308980963694066418137041548593149666711598130899440825457153552300652508228496172872396746508251900453245582357486877200667479497121636028208523543027838653611711245321486487942413213317008523154337277460768066376699618895122880491089111765955157364984738860695247166847523751446415213365489246727612258539361484165143858186917384167543482781317663142911693785564618171660966340291272053653025444763830653355045114641522470865121213129009990019681516959215243039102294969643906355219906513943216303653453974715157350144591560970031479537382507222864326791180222854544505100668683826497290748132584808710208874950514269642937392581367718416906545215610876157378020535279580044684913613691746825371728035367843503618901245777758338646770048718755154181150371412945491142726968772088619529031100065214806047938943042612112504746362225675393476819222219200635168766825821506827988016073570611080555786168670494748640420270006144009779441876147854976458239562498054449551257091064027083239081446009251177787652063803937135711764476329221621412656483739471074513229050737205542332620863523012111923009932821647536436923790632503356825313554330347896291533044923115380919957555329449870528019033511674075276366559814722061218043857300307297879217356850001256233180674259887240109968969813852397306191955928336948611903239492535944158365958161383912185411951519926550704372224511063367126689625672758667738823879079133645093865117220139628594478654429621832667845170020278188419240093649036627235744372874485633108728789584584823525082015627422079239220339204508281946226152918446070619758228521338779696323678640133130410995564537477406457775768490351379167325321826500440150064624163640463117827796605357566760371613744202669161721891429916392304849738254289422199854547868948256705457712083060696640151754701139843828993193363522888572981154828691359603242851163621922207667981900638840484271526086590715537049718593352260571181041504579347353963276399887232560636896084103154413642148782611928541838499574304427686838514591491891874240066190283144798592264459633479953102863027801831150089300076576280887077688855667113610618616899624996387993702911361950062155095910026639429805842317789649650662756529783441514973388255236336446520362201321628032135004936195975070269172783237013837157643230288810132963328739382457387462450968950822383308441761924084760510272468601914474303915108037774819238710529112795905517498822939075512744080364169328292125537800884919287028546754254666973573970536536245400722239895620130676048113391563497277605671449640906404511480948248685117962164044280689719576297535622361816888500272856943365288001318441212141123898385195278511948146790166528406883821869586830661295903977459905614870361228980984113820061585914247128622986004171890645301008203279408858038576089051226987600864246064826948504861862965172218487518355652881466312752376870674667526917244167297354569567331667718492843943138599577385048506109731380578292094499444632394306068759581190038602619049210983987196993364746331140662945111471520556948040279873582430918597382639771340411416016623775269357722361477563479055527521664824146099814862813287663118752410741743298743627538504577774254205757662739315698404385677291438378359018235173687708804803437428632366590745228853952283577868134721953766050084686198962633005033093604099782229148151475257718379528138489156804919218123836041227135829611649724710802612545920595248651142278339115649754666274486718521875618162947119647138066877715360854178694183861466074853653955258090169662377800006558368188471976982444587322984453088699029933788779526571972808991597939419343675227186634378290793682444032062463960186699049723190315024362504081305535338306531610923789527333914369792593690728697404262340424758703379170022149258343524101571864539834784545175892241236136735291362601712155441084930332164423007596971105885469586957117263203798513719294014487119501537158791633212538307938969441274689227398610118372085142869319715028646909873284817207387381520159116379451230101019666620364454129562919035548105191253438713160015241247855045224548041708580097441643608403759638018838607489535266269503532816480968167944880176159399293563064314571114835166747565462775942167253782296133795200482904228816599956705076073487042908590849968490952949104632685176365224631701348799893768877984209294851296278523015988301533612683429917766146392549477051930205003105560549367763391632839538955788699776971431354461013249618901917057012018206670211657766541460513685343451173302843741097526751835575924718515188909168989486576041645332124170280811484675907730132725479460941550972867896718796180122044335029687962196440483278863799604098388253629382303958396983739496101712358218421774397427036469112581075159452663554646751436788687978229022955994771576430671265259718556151103574766104209641784124768301584033979360112118781120082317450371407570040927108374354010891993459498375670612740971769921395411095210125083981365495620451502436684311339897385873611306512474524232154257150917098311414008602648905393707127744124406690768316708542405730036117869052432320544268235686500327030306501507748047387002402672924144800205153067732701911145489873963492924892062897129047830449268538002831487535810599705614838069273730096866109888637890295573247377321839296823726596409999947667955760530718216186939459927781644525369696581224500935645899443219172791686763985578925399696609882487227058690249200178490271214863539553280594682884699335785668968529914380341052833693838980810654163125074949460944740888646908365216571068529029379011400101710418758204392619824337261561113568584173076286520631003127497144699781910388199260901664617975406910297256584746904507192524494658335276417463995178861690567326593163341245854517825808244900718850178514288717667208311599555929267262117825611904459506934896175722832507114752044127677657505086893670980336668678679866809585451635645045670009828213046712442375802553358494967834550276310756161856761102420062290862217868011243459156477566136273107961732523468140907001105009794586345724419026620057736717904612327442085379760972626868770094642272586850071636459572360638163384749434997520654319048826875825350515691074271345868417945695582717709802752816862020313195443597491646865492287630804666214313185341739865035226451902580545172423793197133547989443130184302401189808568284287635611511359254505175900660902931753419723703731662676310455267705728410826619539539676802350046763923223819889539040992691678591566892197646205371386957697999908884131768915113743462702375576135602359532129295133933068804106622580955975301522759071143072612099804061120495954470252902245829810326046036661079078461456247718072122094537822437960892084783698815339985784383584762331111455294499316358956545170743494100864563756823652452255289027971719998672996381621378347132538829807661287146255347835297146301393797884322985295845439519676803864770811999621581708094439895803825070711358270798334780985661030080924836334010664378517170500867285605725665824900630381665925027603594014207243253350329071534064372099104955441721929617285189318787667540913587710997530683942283296170848065834349711181400922782530261593481394755173603558408942664474933095846199862068129248429990069049530956019916735927003422770580777725794298919248350750002625357538268748323634227672480871144139303257644516263630141577372991358552647618310615475055054350039788791534532770215960445663570306770661001920179321401714796971673846973333970705605859892283092531295264942795361836760792879940177086017608475303934791124788612396945329823362750327417646243217820505863121003280810253530905228112133576906734827893771929083668640350282799470624862476886704402085953853472413704692825937227528959641559749916775787268700961437933909121938699113630197318971094560373016111097666244244001817806505557246233985925686553861168261270433407009518008868971398949213194807654561609544651226431496693496974361698396168741124092692508791649510122518675248363561605712348638468927964566676498484647671650465612669908654854037052810502823254158231964824582861497900418034575969586571657893599120269240475446862562656707144162771143207057262320457058642548648538642871832592358827210050178192591032186210252542906106419649321973848229246721450880276773631002510614658987528184567259205007900609926331793502930263391497547899805591598387407228201211160318474460731309264223605720140683187407414368473566930281385968449636781635546690457525318548265991161791886475069922132683880788802178150798752627095916528280767673143687407626055402771583328466679056225244150316045686489418112599997950353070728399541880040621837690405286046378220683553744365548569477836150626359899363478702790903099746277218424110017648215901270567118208766878227576467699428541130542428469796771293655637190811243475249918894104423899887655814909816313382834439867883056142206994865643705634568169510209714342381265370529023114891741626975984689067549381513688231255317855349374611505045803566781944318476851348291726795304651549598075641168998237936862654522544768231938216555988168975654498984722336080402362152126378985700273204797098350733847558808852656004601113636641069535797344908686214328577769297713883866875491736835535914853057824571910998302983139513757052525620958095401789769541394615172026176496607952106330548645811890332327753556080420928807954813104430831425411756469379644937008805178843906465059869952993456228849781367900568424690668982348037672283914141463938344197050525552745661524307031168939958640952184680068901136191300908934268278288375705639519533012518018235004929310697272580570319664319775643414186491957095194411520225796015794217433299871249539848164321588401682318015676822058890334434057690623837262060541947083026988680883194001517792506775717517459372238471772205082093070415931173622020003881306078884009111773966418883673332044652964644593441976859642812624451256257788632315383190956542867923083451240276168883596525102882925470174588508778546743233541314358139890052342270388006077143178342526680299665251595805267396825662975785411273245999963482719371057021772767908830058490736336401316479936837878094275476160827790635398026354770894899217773445189729100846164905691264458400492070830852606455660554188794101768916027728337257152926339124809056000282337920177526406893511804497791997323780203805484515346421441121574092611717531775253425231265652789565479949524999661341866856113717265753576161246756393636346585290219883593583139219249139341864245413593442816603840579430340585830595161258412086641797040450055709015103142797901457995856719745613645353724475732597176241622166560981547765107924332845973035022141801910437784872406174681283719961462839166425348030966724024117848379051186988338391790267930764956491327966578197716956457475933313313426260774897136719700587905164110575608680390392686582634870634540551576313986167638107741445122594128550754494215952948573989863056847155351487711933227943103860066287606970726922388392110104220541823141878387002847488883890566750633122209205148078706136108428374406008904461466797371582627202911168422932474824789178968587778059776094181864431634002885026453644551355067121340118869078555749941020501202058436935943833843142118798496695796671231829694191171815804943525795240601837585099793437113088026402154288164434430672028630306124498537156718090967836741275202011134541349983917111725353851702142430673210003144137288710554407895824702376490475232030970596062076120274233173017656903200367749269422733032275776275170079415069130235233822952293804237429919553110013757008735740489604930149100131051482856386998429294173647557855294153337949392024402317194271602902312715943693646130477801570469751026061543356023532272713255237816494055253651889464983903451788574439635435801343497602714738438551198478108928668229457725753597842954543499095269077618698050126097324257566739651664186094335038414961838737035093807038010169536630461609240729436221133735537225631799245208681827167064196100450690001783517268153921786584748124069882994394469284753921204769670400891751698004473501340113780055210563049882543493206799641734183811320822606619087198336021714825656239371072770800442603025786437546914140646737998813330627498043404884443393728585142092907140693132785150534696812734523204636356663009170263359763238861424438018824049100851015825229325655672793009966171516757110370227909005772432264519348539581533676201804307906634693859522827634852807373926695415340681286594346995691180472437660893831562192438656410313134058911508072193286739168832381494477607199208103547538842345389673265484968440806351067157523712030750328876853691661238860177353540400910880395892751210025497166937079787186642922014014558824562342414467031323035012810324420163216305765377138709905272596849408782981186152588849252721860328952218240262829832327008176345561299714577465837854724296746182466438490297865300776315937919644254783948828268065501763316234010146327094725972018823335388133530254565390463483105173008497042615373676406203301379064787387371214645255533658355828253129869085396002636689072550568271410004173522898482171759994026807464914188870306381471153296467895593180865122302663699720471131747863490527766941427342272327958087000259828052580137853878320031180872150984623227074316277615294128040427317387669976955481915380842773570932813737605617669370728806121195580689008159939826487645120033217856486984320906376025629999288897307612477412283832696161107516489152282506445462683064172271803383431737658197124639514478783200093513333186552223389556602516470810190022446747793987501087746162698894095028131074856975128637090065771914143770296754856231438325159503852517313664426550285981057641837070482406073207871177055295453096981835197292941154182519583530833634749559978987631994251041743808773856423077173325405197636112390635219894917439052550024775592393944610777614131867655092406892223028644317156237562055325359475888341884110318326056616085707801241213297274916600004899274741402158343701248157419129887709471169331110411304646457319878710695701135487660168472395555808872908971746912203692511897246805917112574573943911456518061060805637865308957847735391188780952243969780018458236443954482446565562789229023722984608325547054940682218788034731789918341605402685996748721800813207788553382430527889525289709770802608507881752684419747475030089442427002773032472938196957991276667626902535976229524623326878831389484003936817044687218510139571324767540822323043782281750498121221849238110607200441017372402920022571947628031499451547833447030334645316373131527491626927728719658075797656249029624121342739474949499605804582887192221824373601628086164468294217844866433081941654909805035061939353734418444988481855950496502632226450862252087098394179516137292615631666411637908625996619584832695382064061026825170404948988385791924216865098291704758395293260119443105729997009488200064628250641429808857846119843850931743499331587540568461844308724816903828496944549149121128389917442698035544256672059237594015085287584120562381867054311890166818097178919022122935188742790921955155180888689031344770845777714549283578452961724874657333204316660641302224078094099240861486196616461791573178124113520858151699182455410544125676216433441070173512032368369224702394752231986468094665767008441477627112781820370673947730272527129920311438451352019946347089810581466817328707877561024420480747530842041044301634872633267883450445024484231091775516736707605284105175214522934932480284264838848469002099445286264641842034722165709568643477981110366220426052840320341215341862403961367926539763057239176780823941973879373969931185790454468787315002799164768258851740784400056127034280313124159400625600806031689679607752678055851584447737573204098686615089568326179598719347191082425622188268900233410539718917603630564713421885935991661004043119568998668547095296307607868634751808876682139900467692737094847486632625785263229965264902904755726556426281710673612277932681885116213824241463851419800618482560202162079647746012249996696722868524506028513800617648263418596708376361601771787875847872113524257127483452764923176264625743670922662113077335552056833860543070541587402449290035756111655557169985793131000681933285380018287774723250914115819850576954509512870720057652266342717714995753519942375852010832755725591013419830661178092084032701596302419735914966068109019295387886496291209154791318409276234623131144410252780158536443513026311959243846145507833436871321090511487271230958757797122207183607136023614162793363027620066151301431755842436447252712844828608334767494112067999001847319319046961301417860432255267100830950296615161233914007232481274069433748481319458570184419485195460907139625406959265565362319238294985722128612645094639194954110726922190617568177212932823950981632942369731247240843462067641516583724295223693017432684138741020941322315904311230900855917808980986398114724234312597727307258749654507988460850364940355636064213602463672502975825882142397090696389475158521960100567087576174342220068818401867828964079713421198798942420054262322639109160808328221720623832181566009563766131150703525394313704384764067125707365986370470574729955770563329249287066767157842639748416481898746442062732629180918634569514082111262111830778423188055048390230182385596198689725866375383685485188089002756723914879675747587144770449639059666476388405551398320851105180869467334421469643889365198742929450079635793367763065835479134409437498487491781105259529349460886960396179237563635270568286632335693875478284960491495594355811233762962794911089627284563066959031292373894987390646454823452653011245970936916636819842940197570396110501809396370767769574613416736594918684071597994097749212951447536435570510404907182268047753468921921922396655988926401383385425649428775082404565581803397987528075009321325165955626489684326472095084572694267619620324652425361138081285541080986138899323175276100059368274818919305726879270527066816509473844112413522522462164058966977377662669472230604792593765890405451089087271966929602615646056922347083077659724942225173449004958810325871173498512933407482889628228684514065870595822088546356622237969268457727080062428624708391000127132274669329107759578411605552325394275509600607608370533448080696135747986610034569429050487428865415852057182474934302926645020129015228508576137455210972739110882540490195467902253732559437010933022233435336792479155486508905610315092010532977003311490993319144158254039376710385615125897084131515152832179811625094407838446359926982485147799826238367154228185069666716266201761609705670948611250935942092576725027370408358338931609750567830354428400003970020286423333532380030836727576947167063207271563288145135402665452805370561633756575655615604568397358211272334930266571373761578088814841695460695189245089776145827730564471156036723401373751239113342221350995201035617764307709080447304826899917797646876003448036444148641346346899950784555102030298886333848328181072699200088982857193684138915398111676352370135996047767943273521946249418339830341772752871973216535239747836661598830001870135480072549967794815641222507319820777374949369340515926151214725240913312432853522660950991788624206214707618144436516820590669370269728484430350602521914049775512614504465725697123159579764295821796831320720497667628657047131171465971689941414194155855279213291655341080358645394236043976346169533528984633901443709771031718852633529786009866930866984352639341843697031885743906286547106851908002382479226597066957969129228277977600811198961917051876577047154804076234201469014747012300723672006374794146524884880021869725445463705686004723267422019698082214227784721393055099639306665883512057342095362327068335190537432350964241692802434924637529131968240070383892099468207970820508553026506084172906467894329248904226662371493914871852045333605092819272200266783545090067219293448357187400486452584361950094552025533853015019360827545508148367762943173466687018398966327368706671738897838170585143556166265753058934928379956883715661905117469340198535875250672746157717542792976654112430661688579214663048265376236291786363447873206048116856445133196337759745210891420642621077337168716290579109047378376399934031761013295865660178686150841320259943918468802660091941207015673670527521044602542464766222553796856221129982222136619496927805123461358938800937870064458889553009309678080220567122291173244962194666336085015095949168091194431883188755727288072604920484225726950234777273625668174264307924072732430554923883140548639459295216734612059347331081226707443585443063905135486124584692352772955595950816339124034488084615574831651102805659691260473822009624298786189595228730193832928596279934984472850958341618215438661086913654406425908911589698129897442714708606373440889508112079256324343912160486709803726929822324855824995708943110863765484037375213836977540372535093086840240831865921894754342546568199331920286973641687638078055942726490940543186086883587062399303809324893776063958808816927882172328401008007787446855284930095356168133698782188131987960915707800606587512041368105515013899140721605454073209842445711240786902752955637176499692273209734533903274938422469717756042912196379400439291393993696383431238105727123160165462381860803416937792323608064841668516700884580070799053990191389869288678868501254679168252957297950907781400775837291959525923077898529009537496931446488560420183072483668164534888900616418487213140176197920673842538852829602398428554013089339238141175701208083015541888719101171220354396041258813688804892939409662947667940562265648193922536371686301060079822869890537184707195524863614424529839860549722667381399271232326979135267819475081542475158259570718215174779333083805385422525935868790011201769715069484687232397756960219053027729134417989533284571722569595139398450080818550502846173120934633238976743966867841162982536644122223505420632363899786130116046064276425247211995387977652547098991387573337095875444606881810333079159233516940026805099690092016813695028758939377149493311215724159021236225154972698785804236244127487899865593145938269756931430554981795065314418668327328819513027519956721753823705715225229178899738983906301739917299478596473288245148057315766239727468127206928354685997204915820065493214263737853653777657763105425649156377280018981099444126794727692115095607280236282848806019820301770557360355034313476907412760284240702785624501867604936809217966663050628579192569032160921550382981573843650495683338819914203756320762894376846024766103943520229448101014041168409635222224465266984042964025300170064070372331719352207617831350035742568452310201544861847411294624049632889836405515453802300065762431476684153339805267798198723759552846345594350875975308122540783115285645913826698540619890759859202685372792300841475303461621845748488155548751802807500870114860205663005110795262621816509997046246093820030562461035531104034228743366878696989658957146052636013394740295502774288600482358997616032607498570471221845586671322714100697884695817126271499385898285859214625368691960786535613356845007576646743331086324711580071025086357042200427551027969222298288679505160390327842273887381118303297732968241604268323692533434394805615130277475655642243538631283413939265597296620263849694533758729394690259628738874014880709463380659799698316511192908802511925602858173049910841216417996843252364020412026660339061356441401313893221202873062944532613198313335654125205821195292932149405364882300337137813069933752626752573427205471825985193439712284754974232282540407662617308559179774871262988700226674104747061146869802870273514819887933069078040518521698287223191317558377555383293064193433276705871185727668714564964750046792370667719907069138700087116303944297482298951815094107419158382849830008905156337499709234458126841189055720390138093744926726325991473345522166651405838474159317937747013883109292072972574807268927486362545010226180365457994969418363051852033485830613886089153747576814506890483050474323104175672544456786775405653532462442638450112540158811337628792279144576999324549020710057193890243323158180677444472667231766456076823483862792139092387243041511088833740482602075644767577685231345785784346498458293362407464801415979464521435092855444146566236726007057107442947148089930546252461505395466729457454775223098859383492273211814012181993728972747836391302422295422832265812729939788697581742933644005462333979847923661918522402262545620101262962274256238175300517763286375539542768604195767584878682935658016484751646810850672530738693501865443186067821174807067102386061328973257124478239794432392685146855870717593267869335876854716034489616776117163412996673364505897921107546018301236333606911449641883879341218421949353787499665237975153917630591596461034715212146564274723918539650213163259112308165283502948681956571358874767723962901916931991677686458730587552887475970901591888584134023149445351637158204611939295386500630901968781148725200246325005859550973265669759408809248852766267444246672639849454940963335885449443855070827786604326376695588990942339213345324374586923695535840844157854104867882308876591499258587761349378939338172395661267326458605886099833130238817706692933483404804894481441182843465637528081665602947298876984895191128972799505976303277305177693767829975992595734475281486283944418936299209900241358060024233268552032534364649358977527069034359880903887764835281141728985220615766577189745996931269049942745958577489007150177102800505102185087463337480281826723866376110593672121511789100664460382809245724443141738580831441736587686372497575017241805055648156458882694424136256973792922559459020506132103923172279468628689561996741923400739013168793818041821283172850993591980470599890853152550606111290296074552765416055543234626101670881285152031851635233054684501630978768688625160955392182019384304322085788084740784823651151685245792053763628583004724889499062322027715010389354247920672721803903231808545493523002157032240483035751683461419504518377046131294502206404923254337208233095668957898208001861335005068753785517389822960864579261346012293364278941293472373772411834710567199474988132556630241748551125446135307313825080177595900205755256882935354103329405824763345954891191480026305941122856290209919829708922675202451182220011255715792407336505746127588382381239480241104044907188979390179213491779857502875171121244970710366288905267450506250939260199653995467076685614565930046721731049675699045562486633893772473508896872455308678381939797414983908087007124844406148488248961310269733073859124987903741870626001051421583904088761237036537135202929487876505488851828534282484100383985536623133764576709237044770544344802824908862322096586644985919433631192058316205453101445784822337399509556817273414508503565028059306482927185297472128532388175324000776256548899011148468346232180460707175823781636211573793933365635143612655788243001838705978682745348622410331270982486944422546320518242977330631937828805247362772790102365751583877704457363802324310105913302522397460325442284253047639249936874122594125253442745719143579042619855980323554107555171796022257310079403792963224177855361778050880494963158738321286755542970688659515555216828508491818467151197608790723569786036462041091972064930041231501888377704583113976291870092380526818209787516650895211993782704945513992044479894337884842312224876272598929978954825746643485755792646037586224230854016062202312395837939679061860820207384862333850063860371679539464128279817191131196147821670008308089507854458132669548181663862569509252316482191782213462414175913354379790283414237783538889205956684619798105231928257665293832880911966876104818588964544244022054274896911206933353455235173072013952795452161236905634557270256085826606485383918088179160707606613864195339075346310423163143461455149546839215254571765230176279071346702989641193481046862487310912905882869305615485501098657169943179483204002046150289224283253987204035091938364542056806579819349237779739923616433923284412229124161310236812384123094008595559439212389026101480024118436732572185669286852117117438957735567136944036553418826630321967371220477846139672424239343820655757101465210839041105802549905743092709365971812132537294532761292557160338115993272951200795600781120533146361127222089311501471925179535242820970463835362813237330503957992142571430996020339068800578351873981889314118130306073718915536987311697604985511407637751095130499113983932418267750678612930933434194460047109297871418984838011031102741884378329204828390622011459245419765221268914531787212145133126779878455604456159595249754529857535222154681714898414511138425081410550130854896234243628497910419440009535419847829409880436504183375719505308169336254654866850676594860210844032088836979178574562358881459948339271283258175664781489307630183188450317518770254338151217217473808647418369178051185427139283059255152036961544265579274334095174087902928468948476751281828993693696380052096625809630952244784114162334706388675154201504131753538500081328771628081047001883468965555544325765680376567350202672652996826688446781066574956350999859617889432443075158310549771763453238063905820477318116208907400124014920080192386954492021367930242580246465176983105671485019785695873997555678750296617328670794908275661321638302579365272711723576493719772988183876501600469601980762607172973387195864987099099687247174947611141014782590188011824536102152204220498197618163530033988599978726056037579759868030733147522475640075715187922016448589055409022006921571006776359249857239955276320144412168491543577800552659548499985124797809019990908814255453142011174116939154833148205738280414543627180464686626291373582349664828752208969958362900365962129406854850887900797060971536150493030709714479356640149031120553080824095024438419875824164708605864899073940687544131101744503519464872331767462602490066115788861097162688503239042564216657930197142330777144535538786284325143360212501899094526144540052685213771778766749432239192593559065144012279953236573878596336671886798210051122484817540292475013669500504759670844180126373458801066225304001850669818109719049088130229187287636601125981634073025813256626207879429393773088340581698229404803439324680675520008530432140538370368119674497364266432990337815352550225246825427764482726049064908269772138869837559244207237728578067019484075482502459031366717778767945828097120074709141033453979230407021247047895972416306316793904262463653315382468027846299984929558297067770367361780912744865109613194783755421473472609778522142206977441733393023758891545174462184146588817406332192510663998626369368800156129053977489178692275227186600000648688606943843341695689761910479315504073790699480541423931403427721205641761019184651983162275524847093788750088883031786357307282918767303563271353874927186278478368802704578485708707347281843655076523511706256755940456147510817462888651388948901961691873586644017891139650331248286282127732341495662570381436670394964964220174269652541250313866715492577924258247183930406221193155293952472956596108834910773118465066108537822372276507233007298643368167640663482712659661133551940546215024279598826033934377785136896658920777477038091230619879767544853888493488615179022989513355151317816944793898448055101604475387293460208105642399995653132943818118179491682066434229861417488886246889109104015783835789046470338506242254509152617858172096015495904190198081724986333236532399620352998335812881844400312316684412820921571036500317793276716554859267887642911944388521823389650944951082992926077565435181399883335003165944187490157382515153491173025292109119075949224257483071597071033946394772901771111795483875324543082191957109711631365585111336167799267450022545674617270261926582280969301676526353679785621815044068552425020632774312078924592807308316095449322819905787604227141254698992203722558094193132907397952984690749668849730282861276834244509402541973342783863713321629827188680287704885903981654266513122174665068839034388054066287613241514736498011322568352453964459177880877465457020953889057559869620433725788582887664304014860288134785667775223167700852815670313517086993687228395979776142704304433875367404610340962659814007959537338037660820668071019298809834646112535217262647461480906245084356091832662332861476571788736707043264496423755831118108613532063045273135501338932584698039650758945995278709868677366166565272940966270953618992380834352325064535406536366700812380843142129160848939260647575042436077337007697801048622686697327206131308771242883807951368232596049354626987547850697608709062139444670987050435399717068285577732455618338596725841529584388095410036379769074832639223226967631086303998106796892341608259466054119657825083379100517643071960066914226778080310863589495491266601968216898487279809973651882678777310532850591912303608390383406391113657529384738732739647586951190390961292144657800965627823085485257649831923721384198581880491491408122029836664762563895359153095424421023811400942201054358733602176560751537841989836183058408095095792328872313144825688115900293087041948841952225155771425360196960007116347447439350056845634437690033574176028255491088852153239250608784485978816727896690263172001067206472074045942489005080762823397203513834604101168558951501894545922832586999099358318483888333349590571254321971399928556698368262705426927598788149893889555327752195716198846758409266923712272429452524398252383641763866889502393648767029318151507672585976784849233745844943089231935310651250470844594598229323390449455206919519475305035974627883356984613202221299389749069342840233552962635602769933229272508943020206397278510558905844300789720504880441292348947467288678389150262288852912874295275043556502096294224736793464035255126954479331493143201237484386524665786633810460290770251674067522547035447178168614852922458798618961723244658952819715140614101219273275694847104783728576946092451816916879953558040498412411049197574392925110095931428097659219158870146386551402977596012953584700768611682922644374888309035896186112660684982818072956009457321865073950634395701253548259150353689577146691650957644504336265125119916820408853488218399214903746883206389219583967718072126073278856195131355765752434134536657084865934159844354645376945359090314079655081066049468224721451838346650131789067411039280361890014419260045177269902946519122625302754503806032488518836047936463224990548258049577601974085448238309028870415973120470316393483654892654723025152908040772707730361851825196120166242493551339087586691042329502521962227426242566715929828930404311900679570412010084094782659788365032760310302848431325642110534772075835031460386175329382737617103295213812756699397374441853371632506355839050047644050431846555050730408990389269936288620469402695844315063108897864338252987917006595528198783375541777917628876197775025249067296380621847945014014371102715759436540408833825817964419430833308599847759889176852252902745784216896900368437138924036903256321745803965288188275818677750903504077856772821528037441782855392463930301793557599469619528141809981603585622724554127597453696375361955709805352345132665746446826235548397593427568458345430580915983825089473892876921029768874299871189541517320435806519158561327173516811149098354192211828347036572886744881559980262163347287343430001461760387865900136880255812776602634600144920817095907337266610360736242308598843852524693473596609937969756917834925603693389615646024653120908008670272784774156103600087897533676639449245622950923406638335836132514639323912202114104758373638153882739120159065947488481804948983636563622348542146894400775250800230777863764248086281910281820347118317437303493344261779754369537719481282156429854650561096435593803114776643035513388882948516981378638751307499107404631767287595323655332912659476404873562844117507971390474005513323938961955512856978598020477697600525206068054835205471581242947362801219088311512081693681709227961780504089455783599130934763228080151499698891356968813611105140234198784170595077656404824631188859014808337761115523768193830635714319409642574226714354981847395407794813508778895488544130013317461251000430733254010753142425362432677798010605783400730462256735948868856191266923560123298435577265000064743197514702226705282803889500570021520539080570268516881790966535977581263688859147694197974829700113258576587857266967996800320896771899522050292034907180214016910200562865477296008692638027291114694014711955067728439687724873271581274804285978103024505132899744107575415357075206103691029094313706923000275848953212511978468846423010680449037328919226058377388613091210711770587752870318746530455255581540388785652417324957369774887607670119504928941832459182180707700622495028789984059966097284353140332007498193707480320834245563618631659974150015818925437235841475658435711934943348597563546491917525117456083081918043863357646830719241410750040948868501060599618501420458616536896955114758739606606076195171626252502367814350592999274323654217871595338031759236278898782949132690189601796158873699583536315303050304832586192093522214594208207413039779873837909064062124779703439511416304880082178681941363928392496378920442456710399995289756704861790288062734238454739784472819355128116073381263279174219928320972189396961112814976972284264370275407503476407901345333133132456496302881157135538112815499523882630906800982570403252224821418954573119471050493392745559351320420656215368929493664686409056310958536598612765502965285049085025477459821566929512737113321745590753157180290994325883405386994816409967232531224608321089931752489923443811948206643167694320572801425335205262187828721489083506561087419272164437457408832701675994309456501459953883255648240406611283333229346944738229814758202131797535505554577624296325512225636139644685499789403443974936816101659194123565017327701212257496652664631173071157348366699751314182591158461432810857875813421737613298382076751955597554195717239664222676454746520021198627822878202403645259902635461770596464704118323000965795490248713711791563189956210816754283526888091179891832700151008943093350226550988041726814890881229128708295210976641544476183309811369127897747712298020213321274658985263467192662455538831927714499914083410105952487256903065476732185557814100283844205889041468210966905433755520653291342320411149444100772459855641528901216225842635255114707859555321360988093289506964483761877632525942710870131467907675027632598732576679119043428262705147524536494231169042157035922697585321023117194458974786817232156114440928449874481225597231616794441503445868448206178121426891723482568747787662783616836774324940877324494898869106311260038047886581813424621072084554473642151847287687459371382984280350920827521176899384594910962462437545367749182746541846734745927049744842547339625754198994080811398880961788701145201432449909586952926214021933973003160651735918939332358754137954654082138809127473065435451735664490932758490061726388976458421845913459045197700840345225999096188791933984028895432356279060824936894154632361167752940382683462355519428633099565126369680011564888048929462661936465231843409883458602730585413338744627054535383502039757154252212852521282183013029933266179041222692387061468284264574806844585557582486688721350254173093712604179691242764813199746114026534138005020247181395569397702665136484009479262014589759138181669048177231659380550527069076839774618455309912602312300839997984107604782938514159887872479842239091437645430731876545189095326502310947742636863639679565102799543304550196299510289841429099115580018885576177703373467445467848761475525096699445065903373930150031316083832059972984457035801649539935756873406560221992121815670455920865803054460810365368880519721305776033697791282130976053685806300795151760564762996410624739834969589994916851870974989444093459835935232634681288025988542531965131635958944314542006815724356053980185968094371494286556694414900349111556979734615304236866068945047000453891921643594562912220420454155483397818361155128983312621025076967436929855168320378541867742237633716951455530847260914293919256400680948773987875363904313284521095778702457216803676542536975566933769168937215968264275753744949741800541699442708567746862794334574127819345975089292370144992534455143533966206168461628694631883411638168732635660966844266181685087835830220172682727951594919629889465471415030066994178790856944502732408037778427150341385373556050507742961538376582005594222095940727751019318804644245589129485936453837844050159592091691809920932208512267292474920514401517221610979212210269157230236569349855124309230660305936577985029687173529133449972416296473482567376407878330294277507365219596517539511732842538480999346666970118541311640518949526554950081439314826648814446464020940783235393423612349538986248150164626287251406844154032324103038129212028434275834077158714583810420168862545619529592250289375037943829260402097400297659130668606595275532751069879445414339965551619498692094065915238201172767866616283443831248166625203883657625412669984546456630562695630052414535081644907959147990964778200244813028767072494468710070397159911375934701497108624407665152147198933063018602130504808607034518380062795641871228536242328066541232425929709109770029297212199474442622854330868412733791162698475208548230041569057210122026554698035671548157735251904691404309378893340797835766389240794583105380933986171461332131500267957972581896229057661511991624099919326321505998246815961203508619616218514095538350773709738165512965135202631895293924356239514539031754422363313065739019184123145894299056068429253759897791824573698694733042393692337352111541335847620381814269245862206816051705773722333299611929888870521300396966800044633671809692370885305036087584320402755756772967005007093445629219875590098517416117101049895879708446952195784811694719989150710844962635254670316057917742116938220772209323526005718234236239343941116792458409152606168641300255914305681111177970827773615183230788938566750909280970836933132742700410401902946144372591081348354917074104732302975622169328016927704919328931914111490886972438904204922187582597997067564392655969402138114267128981672957428040764685833698703542339906412061908925873490116640570308240076491226128501018729351002460461822256831532382619806998211838401071948228998960737201090757034014732667850030562583899804980719849773423190191747246598372272074210855769543250590340703340504822422614308762808883420167299418449561628869589213472341857679721081980546181583973331783147978139288506482582508818965761697179187141501706091545003996639897044841309212546912320047584424537510041844647710493477384411257984961966549943416890264371295126805623028208527087804399988117787752643841823140576165246619311886069040513242323953173313951449370956869460930746931416427616166093185970588956635259602377530748304313165254572812065791236728498218575347455538754768260270022662474815467105317825391142737172074582716509627640099158475043363431826546354402640405973284371165072254032651366553949818905099347937981985806978218655021813270393153600498153697632986505536587743634152179587756124518580348309948337088602548909152582823779836683487395570987066276329805725192187914536028557177376713782996157796051868521774624727977445894561254974374283190481535080953603345176201862224601260462488022681448903020869954053406814154385184939659903845911174586904095735814668336030323456446280634305244412220994971113470241456023969311815207755289287487893639618928372948700793311171332579697602283983177455775458612993110518107239694876579428203755884462077707173234133890415195554046475576327027653380107926590450199139991114863195571322212459932729859118497350132241737752767249833216157371180056909299700801812447186896657877268005455511536819797198826848078945227542433487036723188421035203504853087241154459384754965862009222207569799320338036937197011862068678541949525556332466091158655042170617676506664877202306733521287122957286462859329268677061307692555141372493400192765224853943270059561964109070391620844032832798986619398759246467689391149503182808347939986046658372506950213256921756490238876561524018521701221162127468589481789850286474477872880522352356822852035937224412799366379674282448396437806808494923017209468877774251866079593245371729080261399410969767654663409431271434368806589206992388966339923778147478935028094373660275900364624161300918734985959634280478473695673504965124278435885422229450338001132620039715846114551960415420912023544705338201478038741000722524862318388819378019216582103744167097585735374113408393955228578747068218429437450448918247514388781233455586345077626270217716576308624209174705004017086640127559230703925990257096154954742574332757651801896883382854955713228848591640290722819747439084329162549923360313093772591162447164874142268157619944324616057295606007775572712147755502821957088598761030861652699743456773684934533075310785509520368342153820268676367990480875512997682554833269000521950313002848256936888101150090070833401009054160543970501044880124123142517279266978094246624616089531136154168053097688007906225531274958649556987999188853625530061132458335482857506369488225573730403719252797800932401965754539426019497499777946963916736741873698798782505943711750613684512558358007146559799183227867154283537193419549062224893595622487235001596551595820360278287417452051357454840974327538257555219568073477789127242952528547537741631054371227392203054066316539460792954280119497228598688626209597057713657674576946422985856740408549931614689233548567863314418192212213688629970654031711152797921389343628299637884132778293950989205495568478674730118373845505613147815705416301181460518125831815266099326685656447494864272361110063990201531934128825983210736949495291608627029779390422363625159140824703432470368192463982751895269102279503149337308998377992792454394116047159119733154123209971781337228886015363032800532128349392282194279859554554166792585108532064032098488506278156616214881284667672704162016898436880694859910074525753019823764538420560472267979845632601505549341618925533263566771752943034111901878705682235547120159829502893609563368361185608376927023150693340265942304195620459672440770113647316949691061304972832176408469533539206481500583501825585103085490348803833748183194421881309584774220376952264714441724599395934119070544163630797214176855938286411209471656201941013076569395469755996400829760053541886617882311102017271557302255059529033501374025869285427719746698446360302981411834518321932934662119104972061197368362956703341942779167623834154639216655897206710021103908596866839052817371965278139213450154756878629131833284334547580722012475467487682898189234688032497121578622185846523818179160338762205445026105352773016917736647808824173908844525891385240418917053930136056205025322890909131465997522304654649626487270505042798563552499956894354846562905335283890524074768282346944251242205243214604969115159950274511921156829136198777574429975081994571497877404754366466712183671863998593864775848049737957431031355610692264889332379418862103430300996712957562506033035903221766749415535633723911688903236692739237960555947822231835025757695690484995783553419927080045371029096730804871931921873490509578327909293340979011230509535517787879742573025912661514733097195021283664439457963959427214348479182656385965253201950438972415926946839252424218603807287126616642373835217683934465689422500055758131518403085059725619469623569650725848509348137829283722170682289794264165425784454200928474864542851382837277838133513581940827953579228398897399113773593148731564341268557738938282797440373940385808905475853764692026568181661000376224592307825369028319760597426613455826289520007471751986613934845228586067098922913986007376721642745021841899068751282105164071420660638958780283243197758108844372613835546296124606128103381311012814748306492500156551239064926376056315572415059444644757897193493099102668095708148423810488418579255005136768429135114112517579390222625874008845364163387127757530258196237227159074255547573401193630835292546627694571481133866548463902123036916905804954067841731055946591859830350306583139906831697648387610119951936625361388897622661650846673375947846630420393844658903846488347282284523795317069941161364108194469699672444074692839236413056793392301529191083607535780895440722657842315084058834195478235687997366218421868049687643075313951636703662637544391351854293973863930350473224166952865438439549227104700120921738010383576095311569449746487595685772393959461254950830179421864512497606909585532848141303982833219574415699412308393266379517589770912549177973118459399261534522139961410983491061840577367414824444133572465291503100508044625750253745275459855153929486042330214582807131173753191394089351712155180430170462205544797376696674789317309627148178043205241537398501695409051168830681253148680904395232324376023162252504388366898685706616530661819045685274746655871617726585165073415506594517561366784259071595185264923266119894199276978330288377794111175014474104229080890236608339194065211139323726761359788538923428288900897730547336312680332517109129839261484970005426861602994296096384886444060049102945503966529170234236346606504222296021098785880069442156985770536698448410868673105069630296090619342316066387489900188289495125615591102404462820531593770968426564803460337817314814053845044990759203550906445909909091445259725671495302827264521527396612218260413461475010286492244572657657545290324054714370601234431217752065777645527190011539533425054180753912191505983798526157337051622954411970307888743173998914579482534998715896943787734373767516156639546476243520818653159751036668970777583283865057523580501714023236204182085387774679830295084423383311037458065364190794474970628477065476794829621886692590682176006731391606658160785832842513862468330626033667954679124922303238892956877289476121515363960309406276531197669010911380487405493778751586082757323635456685806749062716597215990299218670861389689513737068317315680091955482779204650557777506688852118669297652110390778631844336959067235202839999643239638768673203613791646686795031121791267912049422686319695226494152603183846016537045092592578800424405944349467622855508545255660206942268773218946333902767153582022254703312234798566827028252459880123468395377635517468912253678812381891995463784412703324187373763325613042233271184445074974242237826619704610401112265327588955723849850576364804940924804011116277087155527988407903612572788359124144608103336856769783495825697333839956169239890008502935353429996574069637795021408519030064495477747354841168405510287761108641985672662267872287859393358397028788359545126358807626541463405148082978002699115811418605476295128819943083866532048426740555551025332274613422199310361947772049524338821178503225046229221424569555500331377584285710265052016884487127931856374126072774114178698939715422672763228658486169677581873952946709294345253733506500569601346073180257767909915513450348415839846752650573742397471474812540093578195354597345847076500744709732549393103595244087802427666984630842644463867363801628651193925985133419563039265595711671123044979923211736068489759175582631622390226224898462286579357279624910376403823104080481974942859270246321273900690507498877317321885468936424389420964928566442461752642327072727933081557155886648416319531614117369090813201902738952842515499672243034890237632805437291613982272529908369088924973885229959237754501267808873261195461636209004901045657272381218607340291854477995352899592119455188052138295626177408041273303794209036780753112567600804260495074061905648780805023437355891615538992746563307620080099691290761006320537323126937279620073905433437462210258995721397889190970317550197355937869240463611160272063383384090322398941891672249406584603868835991272521420089279274309866163507957283790514385513872952711298366789616191813948640736857942261667117859905140382347291400900979224913024997870400380541456406429066379039225230449217160958905202817816159901170435828913409135889439304950965996051133242944825098365107498514890151282305847215258025185011999672909230195341591046634975148097657585419544419386603010239328940819094792784807830452404529657217508603472258594175772471071244270779869072099558068222519789986479329847328307793432374088524818024125993607628074995522310463219910682998081182041577020240378672352363041586909642813303646625339494940242686862576591833522241354102004887850569974716852406728657519434257062573473667547365031255720837472170777317324261128030775906546923950229067582820612767349847106351976446644271672093846156072556820379137520949039538816862720308421927493301196890650218554242991742579222620450885193664289287722877551300947736463000642410992990004593246677353137444054866848758777157886475428825132571024995835523050990406816463413145731448493938698331347774273521501166697679503234920870266706333426771215264880879536592993735189924206722511948073132659233435772079645297777548674384247689261606817339169281246359135494609645011156588572925382446911719755728510786552984542787165830234121111553000746635255504824523454104857318779100347623305884072578334984425498805845876271348453269204022568383164232223709764547140509123641344063619592205000038714900195783359807810085988860559728484791165320708745934356308021871621114895896268008973308214206067063769193099058122371610501633813599391835931871303044926180189710892820426100316149965985859667959009433747212333443895178821392131689613734560088472118340553704173908865502215538977424805978954172343536586149015842836947490060430889525606111387554385849627269150910862397554805901362380403582626005307357451248710774142634775125097739773093907252823363210026480288229727064109520105288380786769462037156395760476611450058080477176427287800131312774132443027234088512989685603831524657474367982370460127907578060892422712832226440307990061532314102079712380053382053051219117387093019838536790817347001559734751328332160254612250272486712583495315739005620693532954023597171539469246442743880275961486494129247527733741349507148780335377866363118562306153486757767063254901868295800382587884851764556308708777219208318388986225367791551404036491281933272346464104104208811093126098396184018558463702354359467248574915309080485941831260967299406674844194400842598321754803345986174002004313785082861832997568177657103119631581865995049067237979178736721907515640653437764476306217057669856708749227075028087672462042253538944741424134363110166436639699880878573350453467245406692181042688115669543845133919605697691307452133941219295087691112175255550250227078914717380068542365030323737486778702558389059893630502100871664697857118051661731567029479585884426271984103550946215100054672653266686174429351162104756739024197730966147242208704524111707433388517866626228389759505203128872018952354482173947821942443997589998350060780412387921930656793257248728701976858924652325066961147397300880047710443386543722688439568250088571648130946844612709565431395575475805079351426756313819362170242297318784812277683189574070484623353836216595868433085796285376160313676474784725658660926676629257608745273124622235504415865970636998927681704349941168127979282129692269276650708667244800880233097892820355930828885978535341197850211821400468425054674025497714173333668952304916831444376297734827205059961842796013824382640900540500505438995622032576940311410729669385541238618453416513571633768620415488226311960375395351579651156157916875200816745362241270843860822715495044441606876735071527867361649906840791020504384460123082621949618692440030831429304478409256311863207775126430594199594917717064130890686777463854391779381975761644681110663893235836184091595321163597880906332951732610281710148666948643961131017175536540332278904447010019763121234107646363624583097732689325932774191957149924498559646976173046729152699247405557698159349663077375470407104034797497551771084931213539242932997367572202934597575880257640391775690512155280231452102931304996533393730232009205054096856615040586803416379342521973861293658971856933125374145784827827008605989216540395608173187429758719191069327571217995208732082698186359846006727643387648206815611367912284097379440355613871405973903686799304742369235031065342146664191636140197023934232575269429902746933964408159301579187951544290533462614104915531568845012558555000913322061112701018443500695217461730659598641688109381630424976087706154578395449379187191797782140502257904967221220778160238014923812940085463237140405297277693352142122684618597821174435852420591097028941984624689995232422398165559046677132287636196018384874319465372981229633527406286439610417591624718206354197435685713007167543681062853835858736114148832792331046006134451413086470002471956472167985528236769001963621404356498533319768880648886200204617790255802270949683423461083492572475354452133926887369393128985048595882232814751038118880946045143978036923529233651090034139345846785041229174135049437061960586661948266564318216656629645606373347509328955343251749727379136224270823935645582443273066007731554713017808401693196075223441839922700118976889848446350552660726916423783790080479416176843343832284585376841381182511677563838892583940201206135674469196707575278047069344581827691577956860232495884116028959837840511525597978388184102901478476234508967028966728888964765797782306997988192708835134933044589817086468179711128381820020441974991177215410342051654270270319998466349146952076159865068488522031632873225903815064835501000845177843754507436145059221942402418726282490356341265264311926550304063202575366053150918626942304009333102482986091924700441157769350573870042859048669736423070558612735640205404826776438809032580278850876909948092573290173311716530546783923878398599208449494428235455111107556714179415670619711986419956408981974696503835985600015377631978659426847065320729130183465878244925078198783011235042612991308041293778671171441743649417041309599842774961523852311952163541571620418554261725773289754274896425245583690080520697198978340532795249628326415693415613998572867309874226214028851812860019084603231750133307807483123616417826138051177933714470414812118995919098022374678777281289045303579959340056720430564404493547802696346463971915660009263686421734741176193906414540231793906317382851890365239862900709983098625224892343712260609858103040957638851092438950976336494774858416747664414121044269967768519849816506753795395453287080549905298268091627341027240261084195694627375916305703069360493049551760291677145256732350336713095707817696108902556901313383745115817342608720809197689623761582472327996967626594917696890350001810871147385743498364099092793369454718156290345287008933177864626001848458350275093946565743519796624693962789671332753001033621670580280602032717455317735493275712812897223016943175659529582131377364076503258241209583942276617489875728184847630287518607461981595309145177675376142287815383246915820396855647131870682486414694355434186424089865340226529793504253105307455647445859877651882708589209421996518670330660554024323585305741249889718839646582694981414032729680400985674094472202944414410268192913411094218741513282873310798232925145066107827921012180103111970427769076943035449752830570950893363533333185109690238906980629357163430388150748514989827901710659364412707476112985186817773137047234454037456002862191679132213657827070240795099679141803348219625586266951974361124884659465827287656449897715944442118234927551749896827448384642155445225433577710157111531264690883868010392137927188857961098424544017603589273600925798619743410246093628989695597260191902173807009755802375380835506211199233147409088468143519903350329776225541026224766502446985717135357265288218568611239302212235302190516277356974128634983540839032773548105080711638965572944766845792174112094484019965561435530689830861208494869864517106673707691815725446046682028205264852335869924999080595519278288145869413682298976929469666575230382603431048858076055117083009197101198492536480728361569767818774221507110373995369276615245244965350910034528895977702974277885415339785881066071568949262130827794926549436210734569678785506873855611333520651100095167223844443533158667179835359535764511966809574527400042434015440049062666137962957470652740757837146094002332655677207837079450102526980479349759953631214724888120659995044732454052956949161135437651275923571260142803889143997132062841954681968858841752929226688644262143406338432354490358718369905053470947584495815394054529883914651863181509397362332140545096908945353116235023162645424287888032188619172536257980921796925106976631553486672128902553534276632117995418894408023111712410789106391179138011169084156147104326412032435201946687819777327163070488510951900436345084713867267715378928165562125093199330846173552270091856241962610481528464045526818176983236033294487179905087448562440525846670570782029673843869936935465436456444723004453622737526653145299219622309881176456806767139785437916584732095046944304384883707718650184325692701151713494961736980782426940804064500922506823933795683717612153905708238585482910045715628540523094477092336799211584887188615244229459047803961052354775294518432918217764704012674190255625784771039687550336529962214488179352640586781333262159209134904418941231255215399597795265706825746240764954866113924814670065722771960249573450805840870221307879945435072556036021889510992483703313007661853085253912740769203896980996769175607014847575779142527138022094159387748849404964683120257215335558064888819994902449124874438702696481904561785671518215321421458688965726342557795756265270062929784596450617489642530002109224798180888946251675732735002967714705032799875798996291279287466075781964794847523920352226455940631262832484175397548174570106570926022593172320874093274914009797818697026014374214786317938531308155711671801618419885007706082881144649675351462171955213852392511041984108164140482204424941782795380173574309636944364950635187482039605091070892098443141678406446191093677136150577214300475164292784627606125879326495558644718659029848182201602100499771983618037782118959565168922539341826350103713632115778121460237093669106321911883916952705363199942535844908602398083142987243632625841069153661791501171003458273988450230019002557747743121433421560910214256300472929521680512822156479879131483612303346110277520338297969847648751075308620962846476786353120230686050987180875128226550528198916999445054582528742745970634022960335685388694979938282801471099860087059568484121519647334347663376274351356005241363537190114791202992225315331886602515377068331015488909995369901717369429844706667704827932244823418206567425879146781115189747749072558489155466470043329222039895064945277075532932299426267433298828142825568965733266786575619337195939080664291914750311132844675148739635772879342989756413360426581430509213481367985288829257251595246368667052647189839619635984921134156953198638045581484790717809078695292727918404522943010294283671108395063484250638208555865392327654528622726648834185074874139385493074176302795550310290813677069430289701202531770184941820914979238296316560222983619803482040579523193813266546097213588393044852166287214352575113723684505929298249561147422682921830579426533469225932522637203170191999844767571541048969160820055609293880438561539393886108000388931415514251988072813467570939331543005256903783714451599730234429145056998641467595030318127152727894250238346672633173337455880994354439500367756703109190940716114115405573408848342833535993192144371060068593660264699346572009360316234442638215142442839171596146581317424731705156325348237931474944920069795480164682189884332759152807095398821268398936423181065489044804892768489218547106769788613503335244981138616373957310268025164231339411549810626704975020136128532716794506413100084685100521121363995839031402261910807289909816307020635413111542266607869548717738202141054740140240326319645639300962185517129143265244274594414418275602144551534404540028743249577705844940809840330272581809631796524917350701494846684157254659289949476236370059804890396576313824027694236662622690151478947116904980254949025258782220685372604573303597309077583539317030888708542349531223031802292879599064050177373344213062743143128615220905180899239090902879120512231186846024133278609750024675079171260577404575292564364823259159993166445098901914614802860025482343871969033739870536003763110023850308855156273942623157390714593247386985029721347782260711680996006044074990934185340057217199340913082088234123050761235269621245455084222401498616621573160299790401496699491727462378267301789409424959606884377389474315405894732714701696198582509128215714053085784661918613228061036503420039013081403792861284302253788112844894688305371033031235700434623165907687630898083954159168520545880947623711927889907467857536699281423524704411716652528910036053775597355884354254237465176941851447073145254768769289970059546134968039738232936238998019862056505624606681310225203680548324843349695689653100385237546675878567994009464253726661505467570912987623619267008359876267855503028630668799392265099377398846083906682082066230124612997303780115748296449826052470590020138856244146334105814533631328256053205200592926480830313212035078776629584645441891695373424281390351629291422504839036261444255735810748683489251853965653149819630557124199950351323821951186967238151458339349082859755991966972170453430432731619357189676268639789788684438861190418094418582586957960263456303755247758311154311476203593869850737767074276510824819289768101338596997861434244300067684394207595549574076093250167823992960045740357758333106586041155550814690850848399595861676625129053153032243940117244488740345224071805352218797147385313216889626028531253487585855672513707818686352116963311057203172237060467811950861142666656026580629084848817231556597264624249137466762446143719528456935221561844002089813015954860029902518858507357307152932312318131849917893637341453991341102203556541051010772435986055631748277847240137983474630972453826070078510252638166027436710934976867796097426453923241963379897682484422098019133054859645286814246290873537053411643476969647296675258300786930930798498427116879044083381863267759733803252682422433296807395064180671565602714268211230312342948551653653215269457610646824700707679329111011960165468779920874150621869243525586056608143500705463657282512899089865298827626568230074377036105806222664547996570037627144257157725812686825466294687239956406509728324077614389187704249767623422145130917936877460629168518390246803136439897416961358829185973655389064577513081193455198291814912845765152299640726298338964187393802463224707363927685951291328962522675690312898982088924713495701429446868226555957527745822828429972809777383212732530514169924655225066614655913575986554748942601571238087794284727911437223671115303827477533414242407179488602028340577593858604743995094332651136487754324221472663136485905777194353727858104371833790095179817963113508959960557056842175321440798955923184808524878083675500683459483934247832856563524764189493364922492977088581624231502049139804359044981004314932330105944902474718476398931631684443474047505681172374643921613431838126854709402109279571879936931386000038468514368458211668002182820129991748092639890989566539405829588860028274480269991698010642404924265810759212724690630992456074216611694183897204028455317073315231511142056785094965756120390076831567476272107045735661718784029626248721159176926327063591387678465536199985983182304514554009697426850377501200832133206958860197305121870854184388061088381433471343256668979262770244341992180768631001648573384040824075853991365579081178390854206293306812294729335597163936794620335391527090637206946734233815138342694714102439822438830866768989624415715064474790566932331808524642956292310160051118640956880068052259396549137978135636662786584825404606873151675168565871305305211587055927383753478689080814844722468403352770000119125467123303888615629669601587218133024728247879162197849116433286067222446352883105320858360458051478498520944223549847131411318817352440769169838170078031706833636151053133551533095846623655392600802125833620966795554446296223486922443190847463919351749601595928620445379912792443954761912799230415844328912730521691240813192340886616809185433824240294544610170882751608810427472192492094539469702686028526307940310706909913092204311596450429819108579944260900152451424283341581548822767582003641525105027903580048053428092302369982089414594633169359389907001555983506446908224449861971704430762869320144595156484877701259485011514053979796339301004384053190679074364712995847183321388711090998235667221263805486838741894010107540013788101839315914880874786587879500151553964407616257750818635821793101172614404666888481821945604405137924883197154571243841934389672475514442366589364718518226071883638750704592945198112364117809723074340955219414052446422009022216668654835608101851443171555087452030706681358203884352154987944960394947296065470806398245627394706397440640513789295335728586689990085990869067039434348708008176071405043256903200881536947167076099967808378752608107329924794981733321395318387783282359167370125831242890647354742150887825514984141423501301672675082179111002557972517427600739373192142103926032970810769819058988038916181382579914443432210529156905787884745821110382660549894669376430572820094574075292533611636575093600636734985028438872658171072599410784930308130117586486115832906605732742706030699969482400586086403325051074570771362035206886494623441190563168069892406954125655639819424718889220352243226097231754888531728266773910375723710106739337663808981515842676046852036203672407891490187927355618076617558781815383071457220388177297187593895662961497505678534508134597659282837182367192431400974105437297844510162575439587624579038208902934931501481048364513538889280304386036901642658923162207218966651935591627497955048009255515951904618606791880818722697029796220208880024877871779125810211789425072761319795431096246640197720972322610026863745530018619088598256565626527936608540782281152515511826170482175695615416278513963778247995239435931246975243690592186779426383330733739209231890347396557573966490982052618777270846169558736145592952198126893316443382397314238472615945308852540887188657764022385105108797310172252284529976947617375824995263247141181730160201833111918112228135088569821004818161146167604851873699956114717104896951452849696758125834536129780347732313296535965223906335742142020499047977949714036872153280706435798771212837235867186123284810142893866885703762072348447967592914421953864220121082077988765511025031152937169329199651538878042516256025746324085042288449977623894692696315286572937413430169360076035329369706417827787737793065010569739456116219240336676403090783541455138316434889449979237557815875014455206486934713086498330073898088056894346065207348759524887381452856331188696637177260653929012996245121362161821249758551092460860670329278198602652523263228264835722732391838349258202127593894057153041127362818836102715025364815499370099624982612448826291798672824976494874375237721882327023286078786741446467607560018209489067346574075767645525563642243021209167963726132117855243254451672661784549610873790374606632941769264634585023927554463003063866779511564310976617009500805367466292149031922893154613447952205175673050782240665412164309774725130449522884992542381654379640699109303726768644369877159674558387881782369993907291362951135658592126247060512379920709844530680675102192359762580382091795994036229322416000214494830694988847984025711575886642601488261724776092275527824931800612454680443270369494280519969324740567656213986896794541045778067938189867874389603154930808754485087084139693776973877043177428658169640187113187555513983743414948043673850691099689283408455486588315078298044442921781351968165206545962885924899472173332920607370072548385216598658988907709883546595044585146811251957872729831356143487873935778901650631075864406944483973846508885441240799357171892723876043392675414211824046241390905429387061282390467449182904617638581776736597386933106850735700688392261440049675224410943938679474310473017573522143068707911389927519833743170803283017996889374427312521582135631706351219458024320861852112521563609484108627492827688256250168628994059815893041995881642867887107620110956075974128723052213171260507160053682802813777234299991773005009432736417487408931931722894048033459985522641089298221544911814713634885180832952437115609605107576510978703876312812439595878309461734903983475833694660579154522058959144056918656096427650852458957058774828812041326123928589487352356033810431400035728912378562743250250463650074389009557274063694944618836528666054372615245417220582983085096593648284195869616911572593241982735832458538314401670681614873475086126487519897807761879174968270011712481891846613898797807611495726137823984153462245734739133766906177880605463474924802150100016241121217139454356212000027292737880906863891198335160811628709104432373070159783768052842819095215390089954681456048093477272389992107712708831199940831181902204147888292396454286509798811164285982169556628812903107065000093202373656256754844374179931102181762310080201404616668489913449894241224497019175557649285423992397248206504152537039228810588634119197203443941487016575998455338478687656777347709176671468038236731340163982840788020534954683295900144178046155394012922359304469985445894149744390975240122334235496542515475897214184893791435027789414016885281649814395529829554011283072905955477612250008820025122725613693737437692659490087374604434475687479171702479007356271678183376663649010405890049089190374645620178677383153699102840008228759819748535247250201437242104792848796759970557786331111404474698078827521309539908080311709187392213784736322633200766495163505108258978872205344514715051636392345586235874774466224273621281109257958287611916625415368465731854067726266281807464561236527057026139992916165305519804652650305545484991794037554110839891390539496691499562413086576574402038396516635578730617890614207972461756714788535806936170019844579843509116551020022736519845348479824964461874462583047674648261736123338632176788831250491277920092668848423818185480897273944618069227465490467321094749474591173096314265599310511814464984916465734889299095623605691807453782343016627431623595003450763718679986930718629506983311087556768767520957403143485900228811237823624226101946741693084249295818822909711597530124904150583934405280223506510308621844597274035293927698964695385469623728428517188700622734337169764549988286823553023276435037635204423303121918594735894560426683544961268990924013089983378701351245239487953845969039342470609246933983359445142833816687683906014541970792247310862821685927654723364212180787384299729325758725227419692110088899483495642276964023114275391244744324195895104686825138415711722663081780340834694446916054767932938894204339662086472722713405850346947698378481116592561577153522840427648249729162557314786408820040147197345096547770301284755681410163286181373244098590685626637160588907071996765696936955777186970008347826798465723983128062485664119583559466864633682410147066349690545555892651629622100768416618973454423248558753157654115752350824419774405089409900945155868296661067096709024218856726351302207694616474196101248350048832439909968585541868766773096136362855749905316728342790555208749417006678209583055699624947773343363507138316650091609944586030701991206362094726162816281543050557973001978755133788352283359301917015024377492382939563793589629549538010617350700506211537941161369245401779331106731368079062915857711534352906341740273374652512188369391593552057152548039141014116076073493255128653224200668287083493294702711238230448191080636701705555168166051617085257753897094270729668693022600648965741466207261504708613737237246453254378255759009256753842261930842019301417055445797375197530047041686118589733242245538937939958889725739655857866212042113770585010041536324733806348493087817055660615334112886073767434320714040687517684530102491894478822892467092476454535781147272683411981251579374793859013653631922285377259074594948916500890635310373293460482081275476655448033468975099417337722730080088351386612163960876950803327744632752021123833663890757017365868834071432495737637613189023179572011933183468407571300355600358910191442671794848640975070348915715578801216721948131742438746984840193683550642575388859536354064578459525802634894053684852456612071352028218360912107282448603570984859862149911072056038245919485982982354366474772443187443625938524431934988597695084769983030114427791664023536244069488936433666519120633002270696431428914178156515762413660679408644277393150876453278200005143114416938450213602453859527358241280822840514800724995059504215819802203211911703806022726228531527782250798281601848480446388454238187782171045347616593762607297088842176998044060036095071630593792353372760325679084296637714903184469807592422930615928875788093754556644160988810322733243261160955215205586557288084122820000875492308382839802493037018529206223877098770427810125622682864582582074893745065734680589573571270244699330407523545448638482611794977490652298806639691549161945675734171741466566677615589130228517249374989142315440420360083760231932689109975546265851442441306916999881628089074859690483068772415009109248226072211953662783562688880666917145514720406546986724461341839275466663949242227578726053861942662037939092649269513080814316765928250487647210486358393805609309137306920848388137756273064149155109110844125268842822447799765828045167088789610015596232545784169460313922987805452872155596749804085046227082625986099215606656776059196478661965350118610338730120681862698898317555385634933349620362545889058353970499641814143440022080602998861413468584239139340153564232472142530142859120565763856935627762470877172637820785953181433146684288614405778794843941854414553901189633756637537059024278787829869814914979048998218102052906879742490994284322732392927379229358949375634604471174134618118763775567553171353328694467886633685252997791338884062520535576727452268759094250269880262302902959198007187271543905075709204894742788081121617537057081777860657232739443689675971961324093497733807177485067680661100024970948317758504896131681710471576013281159979796697117964893749365801828293146885326670686356473845919381630061412473853884559004582927311830453194923750739495359713935327341573558516210856392947218980959393414820835849569334691831189479801443321814633528391077662888449608686963782651073755036361644921669180879049103339948482442207474508737919354745696156441020723233200904265039496704594794672172322314104619778179232279689115160333870859699947512842805010007507936666864488336267250377590252110262588133484892873136664049593470280206296700557077340622029755773349891842778084850329492415000656210226872992169408430237869071121487459408905047676091555973770140654311513641993910153221693197750605362646324562937860104085102597225325173092650965923479694992248331176811659480608800082618923704059498077040017396745821892429548950716877133100103978515335345314710685957094450605373359195365861719631497006018216015116781644587779937232745484370216719698324035215895168535513924782055912827961534916630151458051788841148097186706984272264732539627856885621860135755148025841191257861698154027609127050741951140396563792898288285227408601450395352112653895388386779399517295862927094784127391152433112925946400072613464924997268181094515144033606300528712881176345574744004968524233433988590299130642366501730923117254932235693646270826473653961470193614656488082366385687127431181462802429670841610218758998609649692350312982446820228624101581183380869587321577601822378961801576779989263352748408957310408461068537718696398441318584611504148287305023118066959863417933895317469817706686635251177878445758531114952252892091504281574922455591384711330427158913553411142349566732404385307357246228684692228408379373448470602916936013993040950654596190030818380252728256308220937269752752989520766338895811003934670501955027215254070784222031586900159951308263848419748777684991692392219653723166544757440764101009965061712627959017809881925888477927081016545937332535284128020075751048259116525137578340100895184768524910186221173555348636969841574019955602865124223618740583409084476878971542125953035591327072076061508973819799481185638356745062572946951343691678918263066507952431155826364371997603774446201879101613542447700627364765654919626761644468077219092292908086622811295988492478114867153425715536760311952454756156523696770385370476886604698021385248030561176382068757506758136412862878013776514061907267002330978458776691822833391651290787076086693751711689174162769080955175727969805201682102716262136069706041609156178870530540720979768493026637638968662736050113988988367335913513960315474288974713854169693929318308680021232896329599381271653722118529514501671084320746942049020976670074228274667222156833863413023286091104602401561230498455914095239210460975654364834446150855037499705955336660221346260483996012273273641910694943992246524570005239136227333383284972755739335649594315523090123323056343415235105696282286778821093084612156866114443870760958284067151875349808971433102743967023207286830105305585474061120710903593522245318973774892872122393887443165480209039008108108852669227724619314382529097258631124615779550275982207061668708048769500542419875562046699274663988639348486840142233528728214440395478422891745476582719454397372171674600060853686206659734305152428332728939125107799228171714059172236020738527892642080373792927864355780211583575735835906020737813547108144950490459183211755301545019836835859869923267993632243604356246020284705006583453866926334314789829914678538149164332937337706472856119777547178021057206562416780620492496050681014505544400083691585386399196405583027286332121027159254780491989067089066871512194349441699015818121629691645296566728882261734646998743806066636501254919352995156342670614836862978791948285828518127841377026940221675580682835676215271251002722532175501175391676185708244100056978635520154571775096098390350012825128730291388517597460971546374785158162912190028421493728409410165155706168620646222073668955493931454351822662501773714797996892061206532527541841391447611392215213461406928641935582165447967025369448854441712394333499860298027098502714181595416780254324505451516922268832227680705841685710882489400810805982436388069304940140036054058825147274558825823285297655543660060976141881745439506835189943064407677097341582749754334607411032688819736325102959868912713918327323940654677652057012685602158373854658756251286737197305200835452057115115637967152422854375612319367176856700900637354250309455101918511962299514032597437920935437420911843155116834985132549158654381928399557383125945367248250671147389629672990878885848882599701074227252504035481804962852257052082363485122693831562806728367147435055983927973260668429507263513827510419746889767672591369017306512365731719532431012869561072580528336315890095826698417353963848720165200490649064035498544923722942741837841103308077738694039345046633322001742224053633940752750598293574910869881854105227312991022233397661253324690730080270049025891197866095461412213341213891962638826661786556146344210813263307717607866380636342431909183254194322747324115237704877561380927960483576499695368748511308807062476127325750376659107831658785768550661988397945830269086027019641122022573660586407392914387722598907407359876447331552706846619167081990942108608514033280601787851430149967994736342366222291820690324453015250155785760152288473671518234944926548288571797699263163527538455765576440677544890668248996613455952180097814220867268863056429154013829653468573489967197242017176041456299913025141444752488487885952192226843723645329643388078851106993397696127782691625463097323535451462264137652139297506809924776597347261269093978722139280745585647099981589429668515562704033660587623053403109834593229001269832269205022015814343028080002236580154632882552904706825073630063078118956871980940767158512610334401938296271880860086116970723967039431812613097424711171790198574301239907540354716506288051264920095605513453336202926306649809154087581763402129960016194911103493751576558875248272142376797264256426977368198890882172269926555304987247904798100065046843426551930595486463515965834193256019953942725424637317151517635243951403807424423857724765659615245674669931628602826485504068591224634076966397694270136693882918560767582008669438337563145932941714551996669772822181470620906203497631712086466030605675614933109167359686926299803365159852130088802404618168331860877929665002779221347601161748135200060259895150218963264153851311775210714641070725779349718225272679005993370186596157932780066176911183167614715796464874106952245376114568879231150886303623840717691959989003565807547270107199166447759227730658896111939427586024665729164647782959517792521728407860744329511315658116636186290447363155515655823373410205410970553981055118587774847255317701694561977327400076274662916015578149893849915480067001588028727139647788555334050152578884671964802052467242449395518643725584409996006306300289818578112735319400344482753400429606559508922535186015542228917642946353097283905715525192200671822520448345695728302485815877783543719512685965426708169607982346616792592607356189398955902895422982006901135011999278337057617540712583480582780681238942856193111114132504933164260528023303981416900679889803737603209951643848905869936960683071012317961526692453046492374632284627990824233479833037403445017864480398812755922590204653660846910213794842368881452629696866213566476702014267253205644350313117144413771351467367169726545226546510614403820274351610225460111162195775537690901298148136883286248160366899277390833940514714338487476920116426194819239644946320044638474688479111517044843919386765303110082423870498152452040557396205818316248694503295350919858056458989087442568312292543450747373415195274236476418028199548731737721290125242144675404294585540242390647170225700446424875936387663670677479620244276809437785482576651284377690093142098666071018702933859331043773285303437168895184802547799127333139633667250697624004443999842871548273540021362280036387835780861930328130999490596589188937507538344269255703320890375832462846794994772016161849244806707260664239432321923207176003725231360026007938117888524025045773149253502497399425440513990997242778918511892389555672490883322532107988627081564000322527803151097668662283346777383494174612258945420980000290932969074377260138690910279140625985152505977668184401078167066934000751493482854055561430475539110533143757464229486209744679084475876468363178927730859885111355095794744954218629866774966961594744440927311320066978611380859054531762649459016781969714986139949226972233845270514380938951350464437551225486111708913966808936677797309943848808619331909104357860720849673073825937923963599328475100407272793862627167044754075719202503934191972545189483117279024614049668955179079986910253764890964845981670901713935120678283957996122631197331491337781834338419318523675386629019004633433285328343418249210719160927673080132353694726484892764429798706811256546280611726046073321917630474121506403020178932057956876051027752505304361222709604675845312738661652142419408683408375891400951141339295457700947317481168853640941835286109971034167235581786028234982020314998679401740417191402839362105194806048190182451800817013710421974592127984040242689630053355368549416400863921774567695344586508832862982165846016450780000359898521290123959007042026607449887850627176077622255060639074531947718892509905810093672989195409957663353865837809804479353779918771214297746197640947272121402353265517772361634196607437639153866019450177691400624068412731629586080635067629377512529343675960734271996751352015800873739548389734399012382565682907859114425882852136616920140299004131462136806323526508654112180847499875844111836290979089198341187537664960480936264893291043905977256329558138877674469546181579787041915975583350003772867246073518535088549546420293097158563694978576404837415055580991884020934333351281955145551857333488816491676944277824055543369773119201437225415419274505976013798414437359942028760525557189378041148926125798303618380107711005004239239264415692277900570279474013649422918479336925354324840487802317774451841779583558257547618425495753958785494583430848044173708798492674195289323031489589916006854228795789294815900068735373333333863813908420994872551172617108729440888684478508116345585269214154029967209886937158862322203314855817426826359506893623448134224737869394609232566007547212567414103421849013118963967654732916742471899342433028029092698507522949079709443009238672877439362551113136287615919738324134916722682612282631277938117508074089589439719002542641266494798017644201645415881317601897265962461441391319206785035246383065776401652297320470892011469171337228786303703845313419426441424966498447440486177385135293731080998594728151117365071913988126930748269061403928642276627849432955882859383721484750707783551198962249119558823704506458200561017020532484449021502294561765561859214574399009554822941375154413613291504304691417994122460933816513626279028278842138122077589424038840622943317279892594183668293679259604224184594177065301954864394817033552410287470447311715070347750834323733311632587672763683468584448656253918723946082732471350044895708680315032503867640173531507940034557285503700184560276996150615682914161170610461617408248462670335189152551882482127260072595765678899125678702014978667908471066310748764673098909147197987925985906257336497349823503126098309873468616273935805790735490824683049728409773238116708249151637346808705105219191762054169882625476054458177111799377677869654216992578557720426344244304207449548970339043450720611900769736351740195265632213928258312052824003746695459092804525968798460814087071953425476138836335351191121441431485055201235813806264923135383387675809188923797585515732036588317624241169167523814588592075164035236684372679175906370539219798112659770811394735167196299997052090170907589856916389066427042357007445027751201049039481483294574438097462603510578981954076398706078758177407249118450697884299413834206081242839014881487259985418148029294922787832435610554915641091748877067067820119859109589098386883951171838013491482549927491426985525951776536126242157266244889609614829797030842021051602796714785615940646136382477589020110251992342153210060175230257421223754210749591872867518955215532994532268942518840942282675774422227552820761560727710394718256680247106606773831206303146628474433862047432595685056892871626532908327878439965071672422061382945329166004638087256305952415328812093700992298960069813962796862795676351987418240185629319849226233364318993090170488199525882733880795326588514493938124115432732058916457864229452684117518808184050956904691381344307784890211487971211628397734430548461498079356243549671412947333266642248305004364454547027491723207839956508680187617327033190656579547539520692925201530706435047130688128903205385455639879921010956672982873047946610054316358462344874415554071338143234413117884241960190370286869624227624650240042081371350464015993472053275567950353390671272161779060302162399780418576334810054483887031730716255256479959999869353196813010156297097871167306964940274916657267494343208132314613886925533494929411831638778899032594010934111572742980133181457828168791351424395578734205915614587736898808079170711455115476266168208177757472484278797129815482385203689591652405437305246672873130301925829524987639320985731209161056135722017639271699598686108867606133843649616951865484860461684848240743838118074173422244839478939982780147342223057865410217729264820914094850350132241515599990163071478148527051614432258254780143440109533660239362642493138522940547536416836467041574300558372984704018145571002969623469850599778855736998021822303549238318797629894156977212363844088917892752775284714477621892057425453151037479977706862362421899063030962822117732197082303477454550602385859114038989691666220778768326012396174199976236550636326601699066116890886877413337809195161497705492141711819110149543478693820620980827878957313278990600208633911278471536843043814981509703047708868816359741925341341221913962874578109934248327141091782763176542096312507136692636588213575119987540115790280285078066983338418338266739455368319656571703194629336410927266727424499274732291380098357445091340799308568360484677866535421058668005211542648674972395379364215665358720818554125981945474275161184169366255632419359158569508890535314121833662399878022115042456600150236469108159974192025443787361022671294122829888805336794395032940480496167711072878810316146773037150218352890241464817543095490594488754104250168040699998196719379820827733464855815859107761788284975054685679139904011384562436040357440246191237694402200760421433573387260392537246640896649147146547300721952927374176796135652330678042682000242307412186674866946280587887873829952327805010706610138540288011913855730911380572755893681940309380718863793758215444351626559912030878482052393749351895597158155182804814807831310535096823567161235509631615286658578590195287177546425064129849451057303533243348909799720945729170095878408322140440501474114381709565771252671577981709767638478642064876136793945784423858603564966446314013104866705613462769017492832290043271120819229564158948152826558422192618902530513815911803423108851491226653917944817433904322700506874288819967061960688500673328353614680498596081402879119631127482546640437038478288400798157913445232101668673741121294496813451012237984294021947946916648150312431873969119602156712114227943068201040876756809373898205468421478560142776882018807171741412749367467817513227710904673001530946777306922329095349569449160116904681818272347781619751257278515355698616292202918847453026983015663874917702194760509417486684119727660444085483297504989078258061539020030103521802717920995081783912123397007002783290619371336821833696154082652039271615180227915286407683150329974060928048310506255157226287131327681824780116915493786248322401723837072716088641929421181718564674811856940087052996113141059458293870330528629791882649324742017955124423294762903488349527229283080401222637227611027520380012093752088562406453112503726401539964371233707903743951203202853502547482779809303020219663250932909448819057451029852172830699622421954710165193932976937065457633343243325643313639122108352913555770081265053979316468149451341207512188350547396859555387809194737465662790318681617136416152155407745354380414798454584063447474508568028086232412696939931122964056032731092793849169187933359614853517001814969826164800344027822813985879014862852128674617538485034806838652016807476744021147665569643873967579664429588640957755915419261507196653734108170649748222041913503522393203692779239073695588057799755260190308143550849247598185779798029812641251926980831075657465946935112856279759057800341932347600136961144729013113729326518877314672141074127522101051515586571349391276885573006456556663593525354509457378968835800277072108075468519790215677663559608589952449272204977529981545862535929556885865521908620348857429443548834017661683055326602458359944543309529736205642829474539664101759387807875790401431956726445025653896405200714870685370656271174667615719181064228046438268678064178170171014557998785949298102867487747167901743550399316968352859211648148786128628911637599276847108874366161776239309829498234064137828071121741237834222414406998486328823924065637743898084631704339814190170417704585646785993494113767101851048288345847591129859911326180631166520977109326025457776640478113979812027396279052178079656593348303196386372636054817261754402626843572645147411143619747488532813525432313210406553747535609140513357644845126503159949939847591233867625899886282674242141065631702826842027427753547852784980625547796730956213501075135701081437671209736106569338981128770064395086822635241957989987524453151326843577125269551165684260624979530056413423679403268694320221277155284522945590601316630023329786184272936970542564089572247314796084227996064312115572289888413406901570607916985539706270694986922613155059545816240665427626536098988246922842402217051092088452264193800405064723514106544629397362950062687069185743503468907870252668899031059030733202099770701955626708007842141750040248776436938270496675406914489563400092985235499129699604654028321299512881718293173380258934336088863956188145305493633210224670237123490797406812568724883352801820879686837674893286595156350015843734542714861534249712522615178086471835019904993217819915535387378562345508714313905038432869651387690329053401523842824396391325686729272248708477969680927365604215169040230075017366194993585447144041522141064749724216152303724661255301796533454354088980086901630718915880845552219843115742231294519670375862605877626333668485075275284790344250165376491633179283207357204363149629332621719841204149693900215789875840550688363131897828032706818206201147097078246477602762963513245135225192242786044766017845546358689564183440825955325433408871016151070367468245292204678084853185295603026039336998791252960230732785846937162703749144838891633750052621697332332152400708758098485646289779180984825342721202481272565551505030570041811989518609216787809270937241480471120320927521638219693005366775084683589386544528152235347557559076380237852151946018272456823639549056812593274728954569893447114180981315364959748515410685460978633032486429877701863553136745081107676386047334640295768821152889813566449309493104358903645141317552414780992535059148130953147122623413540646090598039300729540969213694564498578781314849834710618588580258335380086634822074587547577692067410067571778702148024906809935403404978086974752318213687886719206942034418621529900468668535749778710147528458215215350982709863527703575629384931393160423887168990739823956189887221884206119027709429903227573668718607977070772155923264181360169717277740702884134571773206253029881617264064980178019269641550387293286248745115669440090146910371466589528076907506309916580190402824912396345679839269565571594761366943873933300683738308181230942044159295951718719249267979297129502949158118526944654488816064489091085747384972252662561359833739178319495991506543998379398350900517433878817182955161844732570694229375365255153471178576184977477973316771607149942145263817047522727295570500173374401356029781216871886130729572008682704728150994493655761353006838203007248723891860455582340567631876262362589043407960239552914408186887350391637299347162815765862853465444767189779664009434202490164341084863053640849409128877119965069804578807137977951591204253802570919860455967388601901634414829009972971392282778638712630801766921370493497690438081956561880129790914650754406845318051694049624845495251863363242222261458699500929790456268865970393098396956023564388968632992332376590811424860358035451697820676948892486638330687917659426382009263778903165827050291137857297509740049386753580516323216984736338584197352048763394553946427392885249745167489904651459473884977874365758947077177943562707432572285536101492929675650265851006003218146153612928591069343214878686374342977020598254510958054174455625081164881956344323355550915407022873450617663489800492811148486033667358805224298027624506580641661646093309658322774120168700461864708735460759460023553734363668584630008298911593217465432173511755315755510186309658856027447328817436176453655926246176438777403799768860801841457644764303571298399555691565594231174530659483625020603643822173544096553539509045743693865104312934271665810521464773628560410427152372939781248710605985932017807577384367065631135068593058886083620234778064987975853178401672905978765702813875802603233337988320303896853999145202912912522642348966197633971826810602370959759662980918534819012504031589962520471707676639986835315319660868752912542311537503475500515367406868469956767733057751079235049034577877826339647387642905640164433316822456509039570066856800982518273305819042432261128948518491882214253968613100337137224301868395596441734670841783204007571512416808375541314824792400452430812536772968970444067964317974268159359203135821514639678923853314691684801923785613665706360942213296256718222140853765807068346168583496375655648152132788002082516961807984840474867542864812471892324572784880995178492002381321495055976860978043922721365667914325583872939628855575318985133904712378084559407184483283611533615780257058364385933712923478051058091607157923717358832712616456065679450348099079972050842273054741907781106494021601666662950945932469680827885873826896084877445611837984486573045432053689268403491423450881535101678575706668749563760666307293636497984091052840084546233261781814979761412181872861268653460711665095513547783230627411811482071716466526542709914847880777689282345795486110671504947364739973648066529953736779993402353274964801034460008563976973633732229471469730277640940775396288390125824662939693898770158620893799185516933084638159965395913392629245005644067609742316903078027155970074441832783863920059150419266647287527897954927703415082639154789692688330816604795642091123793125124523826289132391142592592488723531353414037167337993061711996480374076644403610827781509371989266789958837505255476092942001843074443896493496814253542442287548263467259939978795979725472244117287600771260884093950481192159674887395558626710654903021324022477079265249776944955205108056410482206802172927635615223773851063602097203137894838908760877304444339107037138713316374909282154921296609435599576542505065970239239800133971925439883533581932604235533464070907285804865214153390352229706047122013049412345535778954712486300047055628894550446086222664852384731073317223038564186531180217935120788367893163243192580644850051145282276974702881297556723041938969669115168403425219126668605613003845205389336911210081205025241087952203462366013906294095868063810486156703491895288995944342180753633129570224126076566283785776310584133249700802109639513491608642051940551379803738265147259899902124751359728276487048030240957692462436925511139223531786948292842185557243747361826577956003518901587687598144266576265825837773537988011685811161188545871990328237725765974792555501517035225204329594566895045977985931335460305804628712105099200265391999022032802985513499055895296203508118519116239331768415451061065516247882198069414695314021638542948465099305759018425477258768576414740917080050765864163376935814660781872244505837942437576287085454033501105370926710216016889742519017266477109118773401965876131923824401677866944731603643323591053046392692548647340576221166484269938330305048174397311935005367616450508447630473256376421666139818172167153111289102455851620731970070031125405052082382908931287575642187541678615691797009700938050142984666852120015915113272059232133736245100927185727349413528948123231159923461589690978967445413062762687256330468233531371596513000406153320056264213843223148270354735863509198844653383568400484168465383514752987266852104759009105167315924626485357070819430352359875504929773330753172203557347023651707931593278744454981644593247393837794365278003109277535437349297011203088850811385110362985620594883469615636232082831084250287376136412846726450367957498216344694599244023203866360957965273125048912012359996284808751700271355908821282445921236597263623626193171749930602780067270385204438694420239626594307173387544843964935739401654469425438918315939596750099329847553183201970958681114740341146430774907873234732383184316977580069510475962534780392905312278972028317103077044152040962027536066168775095387491356486548993528510813754662302301044164406078743379938865943431973972762809887255359642183688625252868429209407669353101746760614361504022410610065751838578184594309738166652742282235952326563156004363460606617992954342681278246980231107831922175488282484434894215590509624968095516816141784081058068173009002631527217960747234579744753439008266238408070488767662012566975422632476841443602996127063203642476725566239584136334669634201833963782542254474306328053514644920802840116935071719251343449175916344648154738160058964567608405798016590255748976711877225395270001783834618076833574250619637793972907186641657756554922398951160504436181020594168505418765847159029625940307677186938605462437938952917738297414846392692211185354790599095097299760747387296264727605210459511282743563127096059502375573180619545259876531988819158370780609460730104615314079672252575778609273091902469192988451739871631507685766351864937976297380660316503198618172065118786733591976523956744318887953365229088652008014049981149565766450135714869973922194603166589011920226137063954921500008096808049365156179044413993654732119422707627168066232679931722181257457609152455167050976549279875792849661673761936853435468604260079278210505029351060269911077292583322331389423980871654050463146586178672199499749697290597915791846480370351873886438202706098049340045567860930765382619265263181120218638592516569258659483274483164346145940369617235805971795888290583815236978853316823013314522929991540592302274058550374062853590459765785964573806521600263159177428881248018307666463770771998546947143246041543087106778821876907079694131367846057701838283928309479160915776228351293308159945269760684026594233928858711054408683063663858102047363209449653498877627578626990535391553279118811926335106919312733976667409148613974561452545275688380518228526608713496328388418368484801362645828954007306507915607410288908345465962538086962552626371159235948263845456087258368603761981706726337448128763726829988777229445404077067899401643812500275542016983023069545116299831343107188990986254101600293552441548625913761597478709185153402568888130198921884456611164910632688832423448309628880496579742710340822373667382825577250767715305186061648306335598019340710989716309884087467259104459888759596053032924889936385211939490968283710864571352345601580438642971035384668305968987968083587349785762678556588838364951627235452070877953346765867204916172087981314914169891375664645456974216663388028870931159655290890968583246620942368725955209587658676396452581062760953955291491765181737672918987667798425119216807552581600469267289283769650286492087987822244210714046467307485197437139760530743223451552532121235870851616285214538008368612462951548039453329683773642486296457024358189231686226499499218634983246812149467375119948195045074496597043271760401338355222360815340004795981936852230925881457545979566969475623894957247325248486607065428825628767359288397614196190591329083994691638410053218891869432565720667765232382473164380797696044457296944650283430616652216987080261757570512416411109207357726203970411688859403761058433130293144482906595568429648729637716132195073219971641441702565468946101270308245972384182836040311660348915371607623286396661656185600094671554915197467308423255867674109733402984616967564210763223153678979988580683198922830859763375092946490387910743707740084634936236240083008495007355816496691675977786580811182304770742469643604732793518203847198896117035900830045568512528050955106676996023738782353766372782267740520510615320189983806114919859528750026629455422735260581489488099794079523817886224433013323645543257410388370423239809214161496327553956636176867524381765566251013374304648082075528515649116718283454130472387959848889991562759190821521959453589439873919878854478785588393019531703471240250072072868196663188915409237562982477373635896293037302748649251369197889067635824615369075723811889000386834089303979375199306538172287366775385114171618214640630053993407936721095094123328350571426528319496746948502122505862740454811093958740537288809665227994913135041148573758189949152273413520402201771742697561032405390025938558957849154940687591085109004456698779029635899957858043995947222843355440391384551575459051012236770949004290725163272506438911414940314392933816049214114829869615126075681193004885160428925653343730686239962181200837591143173089441989980293377230506522502709849720595963536060693015540542358093562221999017615513369475682897390100935189886891023056203345606747815955637373724315051310463884368461660222105807660550163384439513392753905047198111267789378425274293071714287376055437904153578146194855984706040401016336531189306836965939759500845851332728473088004848774039317183964923212125759155986396831005033440560527898876611472430892073906771713344899959049955652866870431389745563864195065256263382007256053250254497912589372866069366527475695458554937936549466905956264822166011090722271664336271478599464599992674904954961512642308529764040436950307838875676652232278535937556772170054417615227578900688492224647258100685483167616870537047140293293794295759712945613452455275456568249439714331385804950973720607539412574156291011023260518521610876296113466237967436112342517799340059601494432947964164600310883776688705920048862018019633769761450582921768913766854755419381160747064364618355095042783676384472746207161381971191770444487975137788922899588473820082965070462231272806210512699103944589360789044290661289121648867329327712450595576499953164568888853937404965765716880913039242348569376445019991202878400273546363108028048839039864462866315940784010291779687774189828622227028532919145503554952435667446119533668970392803076336134227848130080590245232298645365347593792470097712372514855978962233505503714082373885598999635725768152824985732302910209663365529809751869164292807619274983229652194481696043715488475908552723586440480201758142575400529343879461964319673490293470269618697328305602126628583594142914176432704388399714037984862965074407226526416346342898291915406945822384005322871978130120342846511500021415969387560598958467433788321510445817334910293140849261962544301069475586326736133960131549360027028822653755016913194817216772727748879790713086459125176896227023434826717374447625403604436123834266368529097934730262217743440936100473438325947055617962424701479577599383961282821867040465947367134674003802886890673435056065419629154398232331916634157727577726255667127287567764740358782518632401429351230992652418610536526239068980576795900937826721251220551113158347823925141718932666848696741049338628805893314125836487308559685236487095735227355156417316000570435683375128586486798777626878911970174198926297503739016966811455310563963891334919478491126002887272022436295541133021032888312521790386091534116785776233880138563643471230253133127583492149626816843461805655064376864844321691600993297935886971326345948047658016730287623626375404641773711712333755529076168457609841203148149067126544788130874966926524950728376339582483127955424169984449141560908212342014466356115143987869283676440381999960736130356587640683341102908782368523045177162181480494326246784203403756912181002048571334683860316409189049331870282565113342259651395183628517923265340031625303117768583043905855303143470009499540428993106200690938429859849462576424364274755020092959821997053713856754024239958224936146881835783905292562766257814762825490521531188451672679258510629964112189047429032689829030019539195564907348181246684338993876522912442311981457466200937808079651108208092025003722176564662265462851678069756165122984690402876381965360231356361364976638902219792361723388549181980957352297014232045491394760020309831182651347083195790827421779732291100149811042092919972707939131054168843056476680682881432639312292484752803515563282795273265608341088161697961023963066523100437026823091533999011018517840853479666457696399564386232590725663075603947055135897585127025937635325234545460711578765677751713231407198493087072741725990383479908377522266238501618900013696653310225295738651936909936258963337910411775860518781920708777656099941098051551760524338381498578844158021483003773807294222057611422187341912017380974191603908969457081286919618687718234413339778059759399170408525740245952795358955168367104612241414848823507042098949464053346102981481814983849628748546950040743248430100423702377026935949778090939009555164281254168379512226340810340240060173185622836711787912863505765122105234648754708922865475797991986634913433674573178080001015922803245804156062040588149733690546883830568311188564269274466682562826056931827114971107908022216742737252056085239809705192876172818294917079681084956342092215680052226576590502708101059646896004191594139713443207974875200619703621436531076819492314665746833301942561772580296562871057463566793619642933509041759154760564372284823152054488326426763087111474606360347328343230094190420867481232196335598089298139013743217231902944033802138350378466582478492823716028457090185093998630876897463612139222874464372822230689814427108087673984745198685973565683247585023790229043874338656501635430920494975139465171204239963804851524043827140049987366092215951679436655209716246719028784972343068794146220933065403515146533353438176212140974995290813343668874219608546300562941871857198979654903892260994006458134576989890293752526031594793520517287383716670072154796195637574070128559260756333580436117856957032715108609733266002110088271231991637593409971230320261381098899642220973175527414255363413061597294843720485673053633453566183219602569723677437664041985539084586654773133442430617212600862976052967207859322562292355846262846333189292831983610002592187113703997150557749320487597831976713628632018442823365393471636379457127715884098417687777055114469465240422088538202824989296395084670465701934759746010821090022379813893938891736619958702353222196294149913960484299279341165867048778571113372653492856653689288750896260840586049730811807796500601006810979623045595480118976856619676242389312756524165598319456614716758220572051507331874386499592077292171541152707025157374293274060303889970181763924928444961449892119960087414559201197110619178135600831179394370021856788080126118115799464147173035479067670391626448036915230016380975095498647857715301933207587076728073824162729979856572198166844451931151214721539462606241547478844925314745222342898144439356689652081728352018491044685012363534665944391017712860590789232036981778144140657657953141693427566274427564792495722561771122441508205905726084814714045923953079597060427172459275216550600513715396777242631825934316495999408488134896294439801928050446990307433295869642023477994406085552980260168762745948165247001320475095699315825105659565545112468121674104418920149712917059113204648692995218936078725719895433268702764211207971112580634371790702853656868188130649315290358649123136625719028116080449925331730933188619738913721183963488792038092148177397515121555060714212378478249514649493285850008995173231334179449195719549373810225162043355850964044299950654948218174918298209802850161357646979930679132224784985129587419897623402048264287062020511304845432074564363054682985899790358840556461006745899723002864895895241453303792218607675721960300019984053461042369673948465981989033226447136417782885831861564108998106333256695880149087548911855294447548777707033254281654048701145290259162535198012387414010436036309205281399608185782175059199204440716799015338445864015420542276603949509852531714647656658866814588422462768154717748977060201619396947738552977951792063934259381963552380388424839581039275670564005177458415453647792017073426820789537842419318718112513400191354907522301885366424561518864030265041520622587526974644830596060008664808467397587469403100443050711008032857561852600337068332178341006973073703640321298250395459156645162518016358548892501886490417671308623474164512000978052671659140945866695297194326626136275546662763974798831324207660024708256555168634654157322730379846334974354176053391180554958485171003065047146570917400082202203334208427162102550699829516696232279205206790124999105979017238642175853690642136187723710913388149956001852273629653609206373168397847371498411623140479545716310285083096492946561428907773603095689141375737242200843195367673720751672340211743272646707775707205664465381708610430491301993304747985963516488796461944929528905825730979040950627720666835694427988054961983751273274650760182121520533492208085191762661708361357233342510069683104178207971860650279732577611571650724027365119908613767038988665032755774389422758156617307697218364368019421958476811417575765780225941229369376285483761501137120944477726788390726376506189327449474109264058693198959058559969600972046356710955864259422250713422810831610787854562083865526862249687755895674284009651707897439983645219402878969929676885522509924548113167981196095844999451283017439565864554253492467331927699292211498644288427428218962343777071491438577608058084856427303717135376424530679378694579057523350764388152181065660792707515725288399185157105260056188339108536221275688426153686799818073601708756736421701333242635306193463545436017260388552556774580621314638205488997794379948659252807324771277015335667243051287455111305227076922621510652614798139613012054825955398498290382216585400027871828179452759345759816062682566935359109197025317587895850786425123816902286844088555046233861768093743871255003062767791144604271750236904826053496822003468062797939752823723519731070856662324732554815669120184661565393448604754035740573532649735659449189907361608117631335249185747240294914221910553466942302866373906308379579526522916582302609976507409187334001330523431010303777850787520635165834627784483536836655902705583494796129835056123943390247573969305052295130811046709132498820483153789422613223556634309811418309866847681028257155028682748383397571925873474011536646716826293701552682244212771105239091796931923912773797717688015422468834962014009973227575932939177240864634892836464443538761811383414398882353435306237178360377270922206790149131574946123524864980368060944848857198938411919684715248368996081472224187543173353337423694900817626436893163678853454542857139636032750992289571258032414630563428729318699711759456583631036168351573519241152917458568654839747092069981588999971336036705125178322165870469415652062712941883036728616973277595474898327009337617091038055159386077975183164791131510918328012752515936515048860793988485860993081193493801277896709108478408470943154894557705504550361821811546026502333598662621190754572843333406546559236526779679009724022559037666277015717874530106783684597462424119414609270255181653574496408037076359218204807031707800495030515279198046841480292623759144109388211758454223002587105098974340538019608096706001729446131594353931902155249863917703060325109395966038206235644413794178842765240643899787215289854873908254194811268497400341380587702933160023497523314378325068346832390294862961289177107044987706230858455583007253858193699956274947316552089561794462764776882775111576147049901948228432386802734707467386281475267533372012101071646686196160063377135213782113885721215547739721693304401947166534830268285098055310036760417985335910839912135600946042118254828382608059451163333745999330985400909567553128225040676460073412663544062482616605635769125279981301615925942686486995004724775332770649993846444113929558969146522042990812243906286000465035738126952170225639216821773367320209158675045004788981687036460961518460048557414398817260973844721274644195450198335593231768829557830645802089829527631549073550054654111113719476304362617329785902846513191614666551676635064119334575866713781810984156465929623657690836271607223381478850855063886317749078723491919876798967463625454712604409541681977992207104276402515484331964773905581049610001647059895157852943991917985197806089395678647197363890098524223400054422376311640315186427938021795265684299781428838321389598243939588770155799078394489206709170655203496769986054155902105765147715787378675137125473044660334994239637877962711768362368962445967764401996978693027895704351674431509802289865012877454039340739724267160500255878549888894099384209100168173874898358456289352751707911705490005436219621706429404327806279873786676730222852018370415921352422427596283750372997349591431251129239685319012975356116296723084861743231763892988175402470391522806254684791030979628293430421339402288412931047594043460835668343232495613647542579862544554498896351671364445937935735007027731767348845174887099668250810438991556770998488740178829907494844233167883018060597371518899642950324199139880647782140200104111777478968839555108074211164804227507987793103151151108433831772887252558536680132319275233969078693015925808524191590883768045362608975083421104441911728556321464612372029116740614660357396431901332673511383180868544275306115682200642050776276243163090763395746802731529177990810125354943612591471988752386663993748525397978887930776928132087457027296121993908125462554625410900834305204038710838385722642176756302904930176929511528857908547895413427296790845515266249771074342215376569954921693119003567558879719695936089444056027985322829745923005729290225019186904996051519634665873845766286165583709262295490525587150988780191535985441716721357307006356974623664506999438595865304581695576681415188637516729582855194702568148675216121345853932624252174469525507007692700832805350536951638370248262056345211908643609455087863745556884165147477744660686802732090527456817539515713203754621706982626148475907106925055688718403630005305138681095753887480633463299948769553743481082454131098108373690707510452638146157137362035056374120611543698395643113673185097174963434058322907235834016182906087165871016013042159191713902364589705902734815681072289867195302579683764563989718769225175933155867973340773733043216755653910755754238916160702122717375920700563071368437478212135288989798668217762832572533345183230392747618654039192087965652589286081930704035739642080989321089432200851994167611717527353978882026618744562282022053152831427848303386860279965175179755819883331025625438230416018942339170386337835792103203778668218061890863264867419662008345377267213803004835349669601066224138642725292530005372917737061162348654387360333573151227139300475257703092179902691056833698681470070046680713190090063876906894203541867651074973393824758598638628919011849851605676272063568183641257922449828028996536186177766867781410290398847347627179023486383536719884181537764284357906836358790567005858121342784860173429927311498525829426381306584979321719602718883988881367210302529373730687284284252676818495032793295747070453752303208640889188204692025781143747067742104393146452786589638070408530744824078053943147968235436205409865242544613096095689729925320004693722765192645252347104386806162844150263272906125719272577676314022420185623514890590306131224408194389634712598106722230807362487403882344642804839175997118906930494868693118815733589463337313783064630758220603607272216512039408317360771272291089455309972771304131061415677302487550303033119745936782356969206929008684065517843550699097961301208591342082523653831972164002578438653155268518045595065276218297807292700162623807539845317874932145717674428422404980630487336345595571419216555990693160116854568047578569445825814652541056909421304151860787424364050507570011697845159928514363633141919856220392836363769807369642480231750529550137335897960359874442590363690717246275208403121238030892613188023207103014046119559039673478322147276210394285191545150346992392868606087894827204013155178548892421185875032601207662275879486610780619943166946023124667003664069456988033789419169279093056380077125569611138551110682307186263508781301659159665719956166392695240132819371226867383997102313023718606144240281675000278523701329742800573141233771076730526300291885432184952037726251725196654898586302752019858055528655670174124247813984411479456140361337235929100240288001695428252763700172605581740844534308051145690107092006853751074980056229956793937036094216558524012682608620139896639979818266838146426887629454986869869560183587213324687051751956171604085036070219265934907270251099475725221910842445595207830851434274897958314090611381368732186562478051997330989401100475707181898522937844381414345412750827098497919645792920802355036436353509601251717716805655499827883668720305795332335489227358143909560512229294254511059615665989980158806400542294318769492707622211102847618082615964466027043097290549291809577577590269624782434271968425210667370895391287926957103913170155241989566593796288840942869051952349190754939683374338510867886831129748407742561428880242025456470750857403395398767464470647241224405084157459877316927428065793845108082933471369745731717078012150465560773087987578705024420182513066251328457937966934267465917675447321287297992553229395654158286835862563929622701616958143610479646337016816903837002557364944013958190229025904302917933014131985196006053939593015118034855063021486381739005927865937796283974600501660024561924250559351652393899385785832922591711647601833158673958922691798677199264267707228044516574554501282171307485007367793445470248714883718847668824378185985568323003918292507222124723395438145081249592057273858216386717412145544407200077462566779999303388581438395224684186060994650551174949312624747545411490089929888024475117143941471715620484316616148349019046001190929625568516287760436851209221765372520306632610279260457121123463843089769100576076038205062694894518313368129757008494650362783044503424298855803363561984544505418523948398908251480866797159530872371873295246175261964989059205469690840452251974665477634065536705083961295269437798297198225507400872467579607375592988511922700401408992230997692507290824372529302536554584962933437019516944831600998169538217539750893931830881834902561945268977264011060413490804531314501071393769710546347665429387332788496507788911570443389987596862067766941170235325721969700633559801276796321735405701737387345600278846155575539188888190157937805544173152124711048525279597666087261897929914561575520979704048086756054469428312274540256332191157104455429631522523043608263630844221033568337100347482864619734312032202472443932293380297883927316609665734196648139711732905763186077594191418982874783291136684330253529252496479211019646490652178242802165844480119414837560870626468221705278855586660939730849211724889880705529500413886690763683994300818877934803775541180454695193374369307401500438691562902746936145881457045663729762794944061609311993111741804520449283545614699712876823501751445373892838376800720416806963953649250578693080932586432379583979185083667852687093943396098783481513142366452625415249275587799065325616332081271863536440504910181314864879728064836084966650248920735697536217190475720554079269663844354262130994352432518830971353082340787314154948096657487919620704298132176243781081796600003627805961686458583311024834331251029352663857765397147351005221181616567263513538413677555892138833561375461669015061175377649637297641275729796185460065305881543374664637502467661873682860135938997966104887037321299898807718930345582842479863258650832971647881368783693404315869944158405607310517008074090624232298342148364593754066689887990245296775038063088642462354000679205016940257668422673337762347007385086104194711069943580453445570489168572684254649000937125624761059366963889973127846586244379914413995156946681083926325223181911728640074558763410456288575125505680815252293927925978148617475452694776380447699595505060703040572307480234705742344672410312296534950506517011654313242852197592232503963491802465431634661291802225697714089021233932878860417394101352631152036911145392003875410900121740080037076406806582462780508755720410542581570457315479309584722082919046179453753955470558955349046238100816637319455023584810199222719291201617752024446686059009664014265572476843653318670352206558014589136521421488427956558662705933887491878639391231094985612126299412921957055098215904145913861125266562187945691785864140841846629181231277170185607642984140347592485979536413929570029539960004476524174118063609089107032993576012356745028948966724368311323482735638137007848180922045444878697136394407140683810853750237906792549199074354539111875441697879774458807061279467910261059726785068754968619102664289872660415540003559370620961468777480211955901297443475619036901503229876507442116594074948464211635836077421426796439831027568155546121057167915310722177793025457322874537292989194954644443021474349443399152619976461756050044687614144519713784817621178977241435546735467024250734783642218978843024064895284631438816343507529653333478207439874478442439483437862158000529594120169584499759566219531459463851706574494064454137708838532274753954622674721781641078597150626394829117437331691230877947558401624524346731607652792303833610840339322785923043706961423361851512020163003710647339236015940934876141393157801473755209993057143969093614178086869200812729995012689406338154594261804252487070552936951201209338500618267008961125574026292842893977981995365853346768901352513316544784862113897579395337638477043789600054374631526792261265540350013294479593320389950440369123410089565126418333271896351165130651176712022579372906101484235246743785474046961258221106399832604515812547546779293221601003968918351668673368303931362985329988728773133651400992007718115949585299647818660678895687304129796819333868640365429982502489760838987278799683224799486129062153811952781175065350076812703463806998532134523960704085038220311383731246735440854003549805598897628482182550298417519242138199529518355344031257843107666981982362890498595699397614720195040741534182884971636795557299811576928990294536517544152653286097253112470609774310064281021572319914392872471828409399674138326975913701920603934524244628182094162053668835891745861519946102892975861163326253936348579165089549747556108870430826578335339548720604361931381687421184175298180045024624013213889215413540631633023821615654645339912191886658802828303673099471289780816548788972062587681901474865764326474554358647966050544193140078330581576657539339176601496901725110135193032764125437908172466899998107870743298828606321054287292306846189654216257857556016125523403005801973294312555344214886520699809700430142983450790538092344582436794387491628148340152942878299190846211322390876235024637891877012267547630879194532414911410912534877347045290222856769737570216702723515203683228144986530301933624735824640022653017817862306131826734757455627191831385937038694232240607834158561737501481032037951001913262226859162075839999284142583607550237036751437347250061084565212317820690269323271707170180717500766710702438300882134956211420966662792576294753536561223119630348729799239612956100144117684309914435980655668473318377111148982516686052882431582966815773674293017505309619663515876755386412883686464016803290102098364145390136182012310600000775796607677144532374490366645381903303565964053774848637705689195214360679643287026511419820587140996218849541275905528966271743716378701546311823499580805167263878986901169705743325252330668811410230906371609653933829175424740572281318248528656220140842948358903054331768669388627252990137430129882853320414925964724870842887086812156215565905552011876699209953492885869512934925620588529975945981473505525503315145734981302496356660057156212941288201622999848145291580272745294336713461339895499251972614295467134110655087486873567899050526184186494670036261545565178590074743468302203353062126331982820548103883294377278480154352985423406909915122071140819165328421628682826366356108343235666218458349658424351140825271341844670438854605640891533111831123911860539878116762767613703658428481807313920056249047162328232991080660606647062640354285919007969734730188705856542992129141065083105024921181152561006374229243293904732428585904369109978087368701612715657608625272563041379461868532715908948468280276438781968830346901398630993534890439939614131385964628843854485451786146989483635930250233388861386605788253493820429754205348196605394372643477979135529870904409751671425654917341865740283310563786899303765618156623518204755499419434971521548912142520647079290437621284540363565400426443885879915446526504588441502208348189980825237626378349391929908774186331195023335535079509550198504429464600379207703264723165383716779763225510461508344705727864984310406919552119029089819095506643754003665989157129669037382605868862209431585676214169462770034461465588370961454183836781653264671798870475162420027698410568104993479741747427555662383448218723949255987248081790288697917808211307826673882271756995368158100683494417701411035314110709827967960457421557346773729313183574290098817251070700102705681610590925619773872526295496706438269748763152709963323153897802141958462837023585522802977580214061912503939000954972068969229351548709957962168186517294143002365100714102755589431262349994526217425183407314951822665413670711205435950477052984055164144082316040094148593227671833561041031952334848460795236466106998696317658850281933170909277543809750296912928290287182718686765605656010388362597476899331918150868463510202044431914159077236468302553916808891377426723321399471288497759795397734792296789362193099251120066301156617390657573683767636593718921142236849912021475571972230557410057254525724538555650568646053711226822679501929631039458441745580652122388934673777811748771108535856365104804007023513841408394344914958733631703374524744207690310465894028070652040490102610180630714409508901183652829100104263112612172301607303914278299826054825937487197078945590863342170565376911559913371696415252912586550719274834593711307562682233144193075059940067353636503729355007679804215121435197253256056226439454141131674729877836871409967589656307019969560824628014504911991240712185748053706939640389212346469787122550669606965161506813006062941074008047075701309161735077334755648772547369122521509813503319299338334382107885543833236187356907160805455809843670057435085075319940976596533687210434933222806188349920048278738112527503049208888174846428319016539600630466502915620890532294731999667891042999177453412876891030909976718814803093271626981236572060433159649649342053593097499554635341599843823862049425069393201426663783689481202199761417986083058983829390067395145517573549997170753892480315294109011851492614087594473721159393289263705069583299181008620840410286489923463260345642370424824257063909129380801704659653630724144928183755330479486233506336636375886561058906603353162911176597900236530121728575366201890101649815977724729054022670786268338777301117009431851403577621945481676206437531968784148518425893448140529583996384970253959762126359785945669110637060133227953341910530379540425978304137667516749768787465299649178342336427000745475481949471359866806915666645853291490308232059890281205878126815767430930721017613582263189992887973230932010149232126373267151796495548968924776611843154567161757493938401616522907844089423150876687054665275793238805549126661693777598953925561080406938118224800051350809372046686020039055009141165394481995941732187190340971882559072629584283719770085817941850701023924759988289613573778756435885496342561146780783340518710951312575999931805190921902266561569503928261947901601702312243305754431260654464625008686622748043866744194420153942603811557827540000404020712181901315746401093427335748336101469403685451256443203470752844838931754561764631572209287810279912029021892238282470350546338309419447797469130882924572050292206249855523551056541643045762988641768062017411348089234227288347454320119807266068956925882293270245447753472176552839080617430025428281598287674713598313924867754531846844608380481508156635419462565813296359550594829076330106815644966517880328377723442649573476209397575955793063867100477743934006498340550723621811989484482127172777851389956849044762700861312697815775722954647603359273556343018515256595829201382091502262008800317497285389982150390653559331282828353022910424849910104096008081292273713451581458295962514381717546634167630658001246761930273939749682827160964943723113557562907810196124240298111767982618671404839546685238558072759405609329731240555537304479929325649327981148318332021373111562324040925444193621712935732155195558269307036208693910309562625792884944657181752916336105084401385563679207115718885798851349629804275613855008281669530390869896208029030355380062556321403668177908180211648438779482785129378171151953129206025349939787617546408001885491126509477377940338081385165821773654742122319328208269808040149053483955039643892782029247237348271696437467813541562307929349307240336751699252188922405669614699681473878851860314289763537976243242698191015966561818629392204880958915352336772256873643846681697674177357449240277324427185217245824903794440288306738445640018536560746541756053710825468179256936469644180207220767950152974675083841352311356162549952917635141688384581887938427692077003633081667441340571715043076445505570862019621875090213884932155884931463611851668192193333106871041572192225845136232219900267083802223487321575797119113968268038488404028145926959232839596418866267961493051598203711862831094501976913355793881589511415327250422495358886450529525188569766476775406419896461256327822597017023337558520886222182600285359281446308610907067417161261230022530622943269439780326835730088162486844963806183381290631720666982539273397400494758569587351393454769511348187322641752631190577688592198023732093522988172495982321802051416465423317460267710479573856951746726028070968152504373358982055047400803013301755815227169530967519720161200920566230877542871069645863471374280667516783193735132565221483833173672308119816534223980262474376558947675692163436877669156494799894490895333548260863798232539491667268994167499834770469902146408996837582495058290814533142200622637026588908567589263050621772504590274990999327919762378666652919186395587687935663877764742766951607896083931623525292783250364155846780246181598805142926914406989652471948193396323136854634186509092841382717252169538362006323009210996206249425060811181486751298160865486378491683891420244074612537349911807444468004565780723476210113068446077979422132044175184816160101908431185778373692302853393992756111160625500938380159311511135907852162560485386914323812245904299772946964322273715189525802973366045356007075343804126696705867914369328092183041139251793786077259043301053693860564531228257539431737223358522116815430443635849742772083634227879617830153625028018585784844259719867132834248512769481082148289899874543172209779240360832619873253615859560141938413651762588232316649713661871498820913042815510162243911604524963384256540786205403968475984137295093158148777371240187179778380478989949436542977673257015705381263785222746972467874241300793642328497818478384187095000920272327654649817697185631159468301209971547273531735570252640974294862538148140078594209375626383946867371632446500669475670531599472687811256170460064074445580742901999701262105369442807140922166151821307934869897283700119529308107366672854879857871482235316879674787357526619385423624000713911305675550338852901423771854164892294155671638458861411106333383120411085276458284026102555584547225937596187234636430993963801234448925565298982720299003678439151041868749582442954626212615552519867450944465290221964963295540000703852105632196765824842265073312536205462602686845226609688804383804743726232331616660159127936881995940502571999932917673393102710012595360946943796638596808326643193164965849633977291944145183731667573688536451820230238148263770653011391128913691346249132791260325353459199163234527758142476660279547954070433050957305857105121982912094431653359432408468138074887538729708537544168280660988493506669963728979443165679268763670660592266495503521043083435714033518387756174209630866622504815251137848588257002504051583861836164507635919756645647121506198985206274610720778853409008974133378884529056064324678372378442381162453960789731143333706096052597301996509374395456246686628124327527788178576450978686549138923396145393872016099547277316887599733216771184419958948486142610389151875753635313900844721671593136105659055230688227016390060464654237193404309850825077350154851993174718357373044915069497572480079084269359829143830931389855487549423227449491627921911744168176225851532923090627028862627327172713736747288536386212322152156598140143461744208641223824870184217621137984800128918461150291340723510400996828163551558849625934702284245296564463145812208779641481397405213189828785428426965782243489218621245340214229187382487983128365520838811022350458713289651197529723939560011425296402196067696795758147935979993141849812041111542822165132392559070987481632337101916113979198131133436287560851913682356263775811195201592830109802456170110222573672111807537839399705619783478589980103958642732946843133101094687964634297877722682194448056999245536854601675335399408618117622592942776471534124000027690102741176192399224871721293219882821321458155833081032767665682157622328610235788886649557570655197671423095042057620106160092703642002340450972083564857718166824151192694485068151862935190561171280365926782136985075087749822073193348619790072589775826641428063197595598631453709706547766476800725878500630994010878945547097206380389483693036970026974582925418893568276976759232867767101698035097327693602728831210398704047295073357317572232713912886823089697758812579145493793429853594473006165593150559024506929018029493965319372764130759794350301861951828494006827945565927733810621490164498834284750153040835721432245892652000275214846886135202683202012356504519019118723235591670372329790345978755069469277215711471823799668074639072294512299085346532617467973382168394091646111762121075682647338261461487802212088546109416072495014616471801755745231575725649165520169646279706183473704619611947071931661127537770751989446486891611246406779934062221965068659137053103623391875928196574161078398298795138647707406451422449302925240762368664335949866113933096820043150156117174402845705892934250488997230280359024388557971513154588328461904663148881300544616501061916339253963249956689188558120768329613750231954026330963046940512479868495658727645287697099156573617747339190531248684494625872269120955020707217071621879679187760705580481015192295074326337820027918311553682643767887579911981167968873963177814529954425665773092756714329124847023022786475224533540251407909491825462535291014393522896664824298455993425575591777585758242352338973747484463340047259313572926244839848777017654813188066970615022889309610656882030057928247768456505759164018129455869688032645811705112881260506082220110294813788676234788832482528250394668865604791472434959362408575339314941285595065802576280008906356881492320951921640031880972999198025467032863218567448770476679740080524449412301925770616860793333772616679523723102256030456073494572063560313170703759627214649019425087954259668365673496784779640178627750094170839259651792113718885026960580859287154656418538911511244828095751369332743829787840259129242527015238018394282776423077865998007149900112718626725697797493558585882762078441921011501227555741779763862705852706545988937833296495187701152644142164487520863294241085419318611140968276285129014378480234391248047246668281527727431154896462556708029122941047036654412796194587245160059110000895993476482685734682460496951136801911314321302307246634163734250901921361990587934861030116849136703125159321122314328916323155148639038920490730467537906033384814622379047633637202231768335411432973333114189394247379319875513336595192369206055641815362927457172495382044574747097433811199825206939055925739070777436069154483495464543945550651751304659388351630848247463410990519949623679710358992713562010978505616249952318905021558146844677246361554697831683248275696313571755831470789709172877833718048519895459843828596699776869250594382809953116380964438179977603501130870739448519285162549058903110872332963148825592074274014344023881471254559590700119366547096738912587270273568527307775193968862038706430537341996367859408521578977244356095538320973712223499363623409298990125319603399472142957874751476855432173216712746227680332330005638232707227545294942172575194125105391672186433585944534926876922082387331430039261354663005729636733155649097959804899247266938645643746202249683380000505578982685667696711428018767262177865576649157700352461100932794682563677161539624379277129483813797234472909685220531233182015789584479574840496654262502039567468235473353258966746482118862207730244164139640057439589934451240708100231076667283429860057554936374749864908555630488045734980897457849263197751447359585777356307725467852982333254687020095719748961900232497446877253504533172730924230889057883062072728554985674679048486118049266536573811130031825472998778742263224505235417218301325634179543964983867938294564119675227721807970795055644450838043578920044101599100871056208654575358619881337544255212730289424165307580303308079636039796066642428157932448605287249560748740903618136406243020176522623955868368289209627492460911889429190221269876819746106434478899463354904936758430485143499806460954496732887730015221544029568123453448946932592349798557860792193479042487386442067922841925132730049639053883815793747911629959337347104425865737219183591342311892468121510056417553783567312752772033942084577330932293933774147462912041433642375845322780010418199175484164690798896663803490314042085797512767023436973090178204120231201633237068160980961937623835316642814678085660722089493781405850826582561206415669080391330145037873747008619163420786896584131327336331436338237259869247856701081988720614943101160093264302053451943668673098889365873618527462830468486508658931662844174281581343991205834318479331438251361257686530937757477371966080824138797890956863192427878213653414535171512012415632145577261257171154237575230435611185589196631444230869366705119913815340322621062159439742712076546523176519896642447526204715190969891744551184374331256041120600048106283417744951899906102213412644534006534857615800633640466882739220226192144757111594145475705652435388670821749955628890890167708239731020519483887183549834328808886071103617690332310781379630557273898112912770386827993216590405314689632598639194291520764412183740533566895819942652091520607223478701115078494599263794258273810045609373403738470052604324004765151033974426291589785942161902765461243710073141533133956067012099235705589355558643733246623936827338137666098856138608175608552575188182298236562059303984802684689256483157272038196342750244905381387122728365381381741189038186293706687965527401835160110677721544274876318669385166526891909669324124145765251754771386167907074687690502863083641493189655956235427862455158759933740486888805936350947640464042266902373943469381319809455398305963795278500402818801715189687315831068254147354750483209376687988786820162497720796546229659986970928634442711878404326348465824167244160379004862906335227396263264368969521863745855477379277081083209980065603785497861792816823801844373777396596758291322060125539286970613118307574973649821014731399951378011958363046578458621881944149784937009840275600685498026335735027690350133491599941063406154707873329060370723116124034187055078837900089817694702597408126366340233205234759494628647720279625211368644837784212775470890607510255301454648072545962761137431679308322714444951825155320253068899305853194831806190976281801667723036121660678136951717648759790641767207827490044745667114390302618481170988221888916649639386851319346911259894986247734192221039293185653734628244718989578758679611281511099659370100378346036699083660549953931420999423492601951720056003498594040963539910547277394697990413578702263206920254549841657267742794639612974391368521794850340618077285098742812276901141368164028467528875427664834717285451238985915716062110621038611504145324978791301213806889378088785741135694023601086117274749076863458679625973610019911702986963967536056330358598505902404485705231443082279855858042106676069784668585613992053252487035554585370101077350088649519635411914539954755706552627758435765745846125841563107474953677019045088460451789610356300964498325679803052637110090348336832738009258557839639769788757455040977616660990279542918858930891795098681231156305389211681423379581310829419130185387664983843266604890968801860786989969463951952355412235444495109149042793265931689165384524647612102977323804949102697206319731445768722301888645472310352033608803273451892514604283782723573738137990445139646145877241578009918294527691148925644955445782081125854974629912272326464903975079642306002619452609812386038941728525697644742742928937816441022597827808080938118848982866564507504699035503682364045702878619264007846083106256689672105151078759980626053310210012235808990878645255277392745448389494246097730976810328818104837755849053575436985478248720979623960285646337036722444725602653139281324322602774944601780118006435380465617724182884415379327973303165642625496445752478522515140333292180299436366892004502808793014583626559274530369320858199236858240582449286797047004892934103674324968078716780528715571526979538731761613935613259300309851874585260746042807145302953344424836352786309151458111677033843498109034713808687989512890927047103603336771077814083484462468606147254988365476714350789716501445276993860022792288731246161188868651454875712458758319486681960713512978097342890093482996091613721718408056889128483203073780439902980119776744595260872450178788482758220314160796646845338401373003633935223913261746422839714692012729341080322401486297890741356362043551958301512406087823579905459937055983399639642725428884443219350837396044412680349885498678014241201398479946947426725134575043284161152831893433625782555576248604469892081082951581213080747248488317379714406575523709296204687229229750573904325529358481198026632909340398949735809290273565026520968628278766926541661877936514649996335189185919828112371770580851290889147989502296980227753697818326436580306594608092400801768907232584144129719282424720380048659076248329843266612530268510334990265765785799633057285781580448150653414729103401186510752757591462138595755579846533174652421247970356296576484971699687784598414328136415062658803237353726720510020391872086548894049163339238448057175638872509301231379069730344640283694891453218747968903689080091910769648752267931968839730831363285516442848545438955119235162670552416610116191939562321215404474588449317760332645864833269999532761311560819867303179877709688547320697361110696873523008666132573282355451328892707358403815808959340954004776686337388220989994775888725251392894710257611581130581373079256950891110603633747143004818074544707123585696701876163044024859281029412448165330430019767812518488732429146546537476530840785629909045373784763916341069713494831641494317725925735989877414104258525650646992257533386670229379992990248338449796361658260177037602404285435251468929382667737884010050407781498010651565529747650230253048184829022351663490708944987681119612151065080708845289402983031913436947886071972309108790654545592904426962102412650896208002377548637921900582213754179945136773755029344213947834384540882496830055969807227427147523461863844963300372011058488444262822847183566951057836418070908711811976341346792304827999192942334443433745265711851958275817242955697536554765355857153715878867315582373179120358194336859024611689549358454843810218209805645667115227811115286631487979122410467150345412263591740231050726757815651690794975354569546610234350635178926282007387671578418448532331264748169641045009329526393910725514026380972345074214526634679124879921950424950639835057563167002422209788884501423549332644770854207329564200647999045672828827308973634240163559815127165585708760263193476035747971136732284425449546141241031441121365329590731844662678111062740199008005740851336021711329191019148172385811035976323362159445906860688581745827210663607832472110553988228531116230830772249320718760314283554972399990954386747911904120640958163503069215365395255939829108364440577894768655906426959078555889278014811531296052829739637830522396568797932913415829562315501056197500574788258435068389480272013168005449241765541341553672296781867226297521935729676215974572929982784576999581857012470410652755234709316760210887462018949830999056268035473239191743880352852394519685590226299123405562366816842026140659460166142689816364896322670567145452761552084031997755218112222830694640282754583090788009525538267001174808944008582442234484090144393099507604587499296092919448678728424465529426035504015366304857278457506789033420637548565180260586465453504923154636606721495597923199612838925660686245382196621379095614180948196268023483737048644539098579604117131070124331472277069438162426160779174735893060403221611731902362901081241463468239091014747845348126473693937803450866902011785409226918907211390842736264008402256095279536622268780363107499295189633493724780784246207738545646297469856781877946413327755959495919858741916684478301866887582598506335809530473059262795878826628135669574185663518366296779633536616256900065883452847893261230794253332120934313098617001394022451593986301533002758857448261555201163216558305401109024799131744318609478889442471917656585739383361529389164631578777520692609899223778427210762267547136296772652833826045803154881842918345790562055852313846748688098747574182995143608952757114896969846591330551571824901726406346947383162248457029568821347832186005021975794932795753714019469198710339192150346011748954935005764831184800383210704551000319729946062669081703284652326380242248581740354229851081369311162482037815682402670540265060927629574130039459067445279197996647299332750032387853445521820309695277254118331319492983745429967434508349456920794558330895721941669742554468253386465610665141619474027323306891805548871442397014824881413024333221160282289288031591327546040639314475650451024707847827003100830623983379035059208538782367438487469071591071661383527097558515843491321035012225586592857429605107691468925290223593827912711007177987873789790206010405379271265542602785723538506654446667038666314508709916557153712069207844262872580323455856531437854325903901816838600532754965792572606903799575988813473068888074744754711193224014850571325800645281485106494506217879717366536758124185561781818650925659150896785883853734600693514976694020085414241195861577381990261801995755581062254836164041062076309017585607457388473264507133385756546041732533711302801378940793857936433995336278092312108397002330283646942338620299103313769745072519281930448106053614889812723727553453645151798438699737572972344796175412263854325015231780839725572687850225687121681353425390283478101919154203432425934609133113642510731939943370384323886137588056827156164854936538023785090393483362248227318207409968453296642006626803726878202648670578298511928450302215815053035641756893775421063138794300816908619258742869875467550923494473961567075925019168369112930377480495519909703982336382636489135058430399648195723621157407725768233699070237446393542927020534604480383102314448114591379538474923915729431278074120440608030975872966973107181984410669334082604969841515771659295519486558164867577942339368988277590035789421276160470473421167218792048876942331963840544994751115932547961762393849853824019647708185209486485592422877324966873003010246261044667690852545609760525276754260972217580423153215767353290753481536411137564033449376447731570107441776235823186517003547205375940431782459913359833918178190963298981513912575431913898337254405281508154570310228968029957722750833121165977042219982689658324694122451128329498987297002528869278200885612715994977513562152414462120118572601525246972290915140464075319219928173428032761859964570258021156017462090635890751861757530000424919672009214856764015969761597040573694259035682705762172698082612584580596167061886633284026338564828642610385930749007326146476834590415787979304998205059043213002388639330297873873619627553321859580126622163258466407754647657936338085449649570965549194681612051155694391080796813539384605975006717950631025612247952719960465708625384312721919452003105093191236947954585612237929584674483220803838519266315323828450706222355416355752016048458595787727964356640792897731517789254324601637419516533248548662125998117972463576280561784916758392325772236684392313904636250636402302831723001378553839784405960356833268427992665461606721109596063883424295043002336365108733945914246608246878679142241097259955121353439193233952088570015903804469826631106954585363846429954740680406796096334008965964761233501181547182215652025938005625906215027290122242604041472615840342781626054598733857245637147779216047482744334411129673123767611986297866986308024179500473099054868078683929009975257836056842325273451249388464642611743784590176544695409651594708729976507112762666117578696019032897428626383480646025835183651959147287102541609034171076266775815046516946254495799382899617866660985727357260685506695869037572305499557209062621713947039685039523631294487087415247642250606521669707955283041281086860497392295365924315417259939327074860795667414593870684123275004166908602576148758879876235936734754629304596834705781824339237473999249931821377630383752990385151049213862685594862282898029098604098401166507322289995322405622348477842690882777333300252095707163878913757283611131615082824058677480612837809976588122450097507098479143992524014162240532859851784060267753381922826784952788667245689333759451607319568621685606351203502463099283741850780760420477384305325483876359241255753163645229316351178652228232896444831910269247416363399928053530936659261798644249549488461748132899568137313948309594995811247355548837387112521903370051546804023677832615442406566906224043635791995891916187319853048280061974222320988366936470840181232141747627673223947330600405172628593548541188246139912254599360462896971413416520309350257355936126114513964764664902106275445737497714471550805888268603135966157597888808251340841751240842314218875957026396166667684217885015116650295955978618415960547920178554811646541858311314120912782845969044480818199806314389038052207497099964459268042684734454155781033449320595015632019630539762141807399086270848064303217800247609014397715642312007226354349327379915731551859110065247277485199710198477976655689449196716486168670790375717066483562808032596486767340458420568650181937024269525364816955814590909365907807686812438639934256553533046505678506554865557128211838173965998363357678030887104057297206384819470482333079352209060843986280183867089529794945590339803975056823449353678374441469885388804528100813606255832951931121193475177628452066519222252738669692630025665605713798746774722632191103954463938461218455857756926921127446965654071571414181979492296144640390215239365217131970168237910162539056307962867690370366999872010105519727588390490266619397164834811497423911738704227142950498039184409203535350564648264709088316271727043914121423842292160092712912360067010295249048268895285813608494320353804135696451593092433827730106982907400363781910721422010919069241872160277555804593264901521505941423353135286277882691268505700877094417670821111780339161323107788454769589235628606267690636811548086194488650598563498242078522482102735571711682860437427930019053242147326980760359336634855924681912023947148092123328418605006258537910855539500693514325721418217342416965828916871047738311059705099813494096939955335172453464547253019452500219704236725633941992595913903004372603897653397233310189273199803667869665461398075380015007499405896396569604444634104888910187725401758136482992701898931874351475719511901643262456514200623107476545219553062209409076226563967703182232859593609028162523062797685291067138807712746419025705602446123783078902648548600649008785877722458281102434493870661477445356793732071453340808324961036860031648711604557638529640009288990565903880787201538168686057845360262395376158436587641315689542018451668042531125090612805758605185126126126372701960423621901669912907552891484255000203166394336803204057114116042375798035856595631247499469569849513586761717161486134211876492199857402360452581553140087609299196474462881338290732168822691315735551490184217278167785213038366037635612900768544531563881090587180694081778190789574514335959383903513995923221581547874786726203342273037795254810134334887011269882527069457297044292547385863958940316252418176801033883738925978285637951334907225664398213604080607695122990547942207745586977993303444390441999735760797502802035252928636562271663753010434815414543327065339165099594673587113493338216698948567055738078220021731209391530078265261286845142429072659990570958254860430354523299996515557814617689528577805366548948592631729117062620382979801608412159318818869629028287157978717936884904025766919694789119701664230794471163004796916602963366541165671412926658386416765584258346626506690416995107981990415638970961657836067803458038588754904398366811079462592280948439890034735745765722127802050766361242474530272832779197536870946026921102641285052046477151131959097597847520095406773721741184399590135072729305996362535527518365125842604722808130501701636458298879529638747352394422898404127423076692657538919129379270227358715890678007404859216483963090839234039884009512873222983061853071494441245528974454318958561187400018095275209628513711725684572621954387878592562737224001189285921097359177445309099137601857105133655268996097982796691301664713645669707323708148465349387888981009948329822204546100201720436127512031538116582991015118694304911447593744151199214827769884667239091980921508515824456105200887185460698730137255363463299564455463872644523269557824381689553110896531340698420412186385006905379902901129655602973049646054821960184977149958716016018632187928577655514826098688914664178674355486398857672164079809930784644700415892529812120080775469404448690228534770939508682132340733873815211764044476048345552930529995893020716502131845576085163782416290715979408661795263226509087062500009785294598803412110825577607201418877274907101283893632437344755327661099462982029247845727959599586690604600010182553848674565658275750715858729686771675111487265212206589305147029816991145935759706240523820427201676090897193644031047142701890112291972783281602113559756325548699992243388504519858282629103818226122655992591597082919786233193166881062975254106841171086259870307144086083889081617340183945217867616910217840007057215115331818346398109048550598419080653798403931967652618254901449628263813136868301905372776290221408228253205031575814491105214969340080059171842886747423281889208221098707510096094222717960611868752310865130548794073032475585515857271295685166711502658575372152497020735665542874804818838168943809294719392497078342691198162104713083095702791440448875294465222880916426932212089143735326343470189414186549875808544389783754276111604821944985733991946416345105882759641507497086868706533308767468551708636722004133550690898227033638087248324773623842767127299827900047237503365691359648505894871179717735895375235172704532988089768706037171689381311492611799076386817572277825030379948105309971413321067911176939082497857595017347343274863356684315499742555434287981387288858840828665550630311692303426240065192461820851294051384109438338309943373235611840834156109525474454266787441539452743808547815748171805542923017257708254215514552311689815984157630331041024867859344513956337205688588906905711908399969799521334483952287592283977865693169705450275524986037593813800658952570565487153992594249997173171679762518307807180065173051529563382632793212718062695948063416496910211160236464323589047724347766517250437018826211584376442266662047512782523518870217898027267280277118227731521030358726420824528988433168315791666499256821611449903424669515324639135704780768526898998489320525337210124674485594511686982516508631506559023350608946133259647585740474307164510219889646668576509308330045681872757241680767059216043554681009292559395648953329502797156721892027325708150627709071738710313238424960099196766657262124887134992056972358693324073811177055732346090215798472234521382771579580347220540258966441539053412137447005089033871538349390783651145807920272101479062979899235730340324996976240607889732184310882449308266190802622049990112859749295562772174646114689939294010594942097338175943828780250444099687534019038860177170124591227676884675715236965521220057724245036539737696902851785827201084335983398454456817840625749043191708774382410403186714142041720368114298950367725654607105012860183188433059026704135914468999688471783347040829146812415474309300998153842585056327604739087689049279322492409534991903416211544608213898364543627345255421371578915213206037656434612877334642326527949078838192386444755770595009119444142257604748727334642460795924629817046415346065133084095714764871552128608657847073529551768127582320953381637314429047417984026893595113836233619036522193686948953929298610560654350579702715511242608643085927282057320382452863375360040537159776632209913491222622982155246441341529456551577015191898692407298625805270698483128954807962543531974171285842576611402820095349691802167787509064096388938910484504664086575037294052210411280009547319660046500439442168485942209014452429272225584905936638244027733283626450303053353993096987770343090712332576249414960161079242873166852638845275126706030057076410952614298966488181203960638734084985550094173219877966753274996201186977256904144690206247765655350656642375914691733307274891543405830080707221480983167748193021736845370021228649151994480864391860713650673852662802901568680073865848269567625421052986411659338692482538337878752134922296988954977033420478617409807162101844151617722148191100437333711693674308773266973085990103719739779496102842916186841275756991398649211424787814353108830701287103774766452424063043283708377315256119447305575523791098461773531290644241044708945166904880695091460731826894492787888493093950009950702290353435392133255894765250328071052854241242946878306631082799514039926485381943346180295601431124328564846965317170173912538789746660971453942277274101144239387958959878910545664104268147891162685728035996783039870978666344440474495023780537494089169791738537209747073452739794605724927590824927825833506825690837808354569363668173955915005489117122945893425019397020896398720423360813109299527818850402771287385744354705819714490571304159192507557151185687124513861708461376219948138815550829388483756914525902356397006311126012211800437038477707067215788291447250470385711950858809347550637483829353177753808855894117419263293749543000850722248392228754394422626269598191189695630525279099346294615360936163549447879175037771374159070623175967245583685325998421558810316256244427655499025327501763136294312779601191643050971695953211299204527177449654633602651536565828841936387933775355221000752330624993891708860305513498245420332860149882251892444978971365438878760732583968694123983880820433462661172204379981330742351367849908458648166662862011101678772854932272589731796290083893809378368862243092816036269180732135646537153505048869164778779185842773790818861314754357370438396416108668454477860518569883643545539414674488362256907582297656680517777748487429731521740717222408996252027134463802893843314525169836380731179921467836533342174788805977284261602035843082892445143907954874192059946703109376776927346001157263547865330378705088255862616916954752736042627652426280382477111290356531092061375501041535163500294773602803042651560687044503456586532737488831388713636012808339131268504056973058262367506066185397615704174217427594094047776629585609930464445369693571312353313901844731016702853668941803502361632619326787257731214972498245087303034204762585225658713844171927986481349699003368236635925882060107514213059935405118239822139359584242128868015569496013163426588392290351702963854931431202685751720924341677167595367385459589156304151543408885004160670533466540828130700832897761488249696289240160421141615103617977793210297134762657997940215469978038778479401598816085214213535304149794348531891952830115750065558526423618771644236083078973458250523293243640264375924591800563290872305076297036484355086967621331082877017716349377640015740770619290997731183271570537209205365402970776786726653277933085996580010922173623890413584279519335088822145436519113434014342809428932147888483073872577049742533246466094835351665781767074465378364802847096926101318645029312296165994373555820292882023445072827713813735310873868156668468058416553952406315115736792154911263247750126529807086865320787180461286792428807755570652927825941943007588427801209591016637750414014314456516093920421399550727498787244571094135555045015722897094705928715478578423754955553068827716278606818246476471999729800367332877207475226535910397549640886425476524143137886190662271392033748303555382843444764459824363406532781363195780834389918402072956331227424040632911369762268565400010623898604781668629777784031279489991707396723067522162950965287896315037828467679161096745584887359347549108669196172246037943326536717532667964275759439960499766806612040016533028504949972860704275425093720773858637004154410260595244937075850036378413818607795676066806461723429500752397765145943294896719001839450853507115250826284545345273757796912248333719234276158203080146280176756282502407146025097160563093176724593076048688248790053847158052075074482030526496689819994025157949423211590278410432542583533717778889923951746366574326137285181100529275734664184818518156994434040881803768753519740663630478337284405581819299431249282069957456142382665305098134466430096988357988999333648249647226676786609483821820069176447799515410064831495092340231329855502076012976597654825143221427726580666575578245211435118357337237730492437142595702958551587115638880779956709924041678394507854184745979089815804130829675468152034660396987843938308183923747716278977138284443405134095116842773409217690725247631089224446647891168794325132220073651534562311855013874215233544503089388539861014611069074891095663596629481504685467562292894151089237294319319561491823182561129060258364287817219492917534538823527993628588963636795180669943553947379606788386394329921827855684125586779954979546133028786214646515713991659140284587348702705261069817062568063586601281644979724666816416196987988677368474709635196349675767724117193889891161841016757249065281230163968169315003082520148974579738890015268240237779830972400463108506499741059120950157077584141489180528324673061835140951749137078851259753482476926500423685462358436015970729618280443091680263700578592151137220121658572233654137444476594139549643955313251616096580180992087790835257903757726750622322518588306075693231895633747331807153668699884986386914370393791379690217509625869284257169129054200208155469777726908846915524811744999365707260485043950809189432853044749398963006031851877274582105246557741081225485874613984102455231546972860561599004919730133874530431602324644992651250170425989598182556523887587795429109096721908835535777249868613661528049587621544173261930411792496997142364803945636309930720835169224953962020083881511918372444522752636688920992957667709566738351889661959616053753500860232336482872126727945718259271787177324843095828273573981941079466564284153735209789228890021037317202758664290118383502401038262269418554517462360055390533684447990378023149350091043351555983611865012604956960259134576936587622265577063207518025910297097449295178885420211929716912663104142091401078642523861320813476345472977531744085673221032254607393016774189560202729920316247975376862780784597105213268572645373624225531925095186171876013451124337629905355546195917525480430389044173761791316962743448785311550195253699780779344712638424889934358191719567296122165205346223085534104546175351602853035317060140881213637333458637474490071286834136213074664314991962645876623832479456855495264936646501737302526991190873488938380822049031399905056275443988904463472232565858598791188668874080697010320268203991645965393982763139767575867563066119124852892485699495545274758259583805926698056690931527911877302059789706313787089338832207095089767335300855561529457849364066391245229601266959600962624923623543500671735657509324621100978763878594000378111225548186286591913026546612160749803532560234435636763124118158964697385615082951931800657154126306228994298631809447088299969778236008373193275931245373029308031970839167921123822037759386912820570401257724448615797828970323720982431419952191356933990701376486572379409018973102677314647704915431246335314923116498284611912232044329798798865455048855028172241271964129621425524408143383318483554853164891565559472845494159518329931788517978572333349821971674522093982279470389483093870068880950095001760186510756826190182122598791106735765741023718866272469935107575855314875850606889265301101838718983521117215435351275938264329690222339493804597637855809073171634956875032708986570450916388205248079423522275356870825602603182812925772700379918530126352379901061942595703521979786946037934090907681690393742403294222448564906242924069041355557978176280993978467808750873788927217350541572168610625243531297175287017002171389265268626196686871238222001808199810556711287217886692866514086857307314203026029417580061475433969961445419578017347130745325184665024873918663122659126015660236378626652016174160913156721283704302383185801183603595637611440219634198851777358715380279808392396230695928944502881270771132659792205383647524900638650538467352654712796013927057425335723992843925668211900759207612282727238608562138276534993392172288313289294444554185591185233251318300351279137925207603882293290768317757284347671056843279974476200796878545960902303706015474437242611467397637614102508918193427878230418831155679580454124311921034413514902690955017999960420723226099427493619621259445847015799426738408269168070342003733428173588242204803457761918055384418670610927864754468711090427656490961336789669320618650990481167965986055034049205961741584031837366244498788910350470616500092549942339456621656246048636275236757195846212709710103586783737628594551903569480784184420461164274326860787480844054251871227322220026214347989542952826749324038150098184804657007841619183863492574776926460569176755318367548227892033180272665310931271164367933819622800959541330478706842758615783981596678635312212649107416283403637584898673238782661376903593013623242961560311663457950334806960414680959998514167331564166366106381359333702910558095186100259659693358538133702667209303857425742167864290636425462777371245161425008963865385952758013222891865379060793284411531239571944333059711167462664902389432667179611307945823104411919007978388171522300067009440024006387592269436228510839890825228755833967504535432742412656453948010664801879337026477967864356301541959285025624393698024440700414898101285038476125576653219679989499751165166552568035436426047314998069415767114957179087061914479972522714795293279630735358761120758290680564592707528771761173126629456760366335713353483622574923160908849973395000823908022708340184421860239715622689469759011211164176352819617880020135508986069980355503955076960175235571734913676580503663480989176623747277794438892098679516938936159532508157610426498077187885831916660258754558558020712496020356901436024116067650944175116399552511760463554583545586837333273783538558665765175565323846658898639838629579349798658078391202883732216541805510150451839104689209505644292618713072718897597198522462131429519367378454725128419139172808431950208148721448681809122621419507962485836787251200849590524925366352557539713012825226663193126747271170874016874019818205300956901210799493693240463863410052260628335978477750993619741102160991533412417456322272914289845315460446793246316585082059900844430445292356835613059585727698497651003576373809488904378981497133894411215534047828538341025158627345220929813789580151252679590501688381107977937378523140754536423832677537259113972316858792687904119567525558325589432624746316959593237932807739721523413165102332695551004256713478165687894432590102030761299318706117131114724468473809876166132982158952373367323567167154561417555162388079712000152345311199454178338724608675919653156964945975434352624147173770273516235218690845881694332649543609630690327863678272173433787234212201277914530736152844291764593757545276655117361662493776258341232669470386618010995264161414469436866655412146535572510882313260444302059478295706469642084050663972063931736507351317300388044526225960365484863659694269514837219194053748866482246955138001416617534413109439766963048925949723208317530996261430784529933180165084520803236358264421016274310136612985587054229184691858535800025965709361068886707408368708490761257994716413099638885977280605725438367777594594948790395926558763192110322765058387304399870435415407721708153371228169725347084804606784815303398274253546067361331062553648078235171937319763829231976068793186399739397093292358465259252548784756066958736726025074964686593205347603330267022587893997155938467073463822210871654311598711083236359015069170462543351422056150023399316362122693161416451634672248700890857559784286720908705035059539110285561256499135175964493878468536271880164502150234656608575440062129328084245635478066713704565685192593359224746434449681389396409572880300774156674090238261424501639714899267150588062140473638877177652091612577430113475195452203749089616312210490435346518019000909935215196404714588647735602146512247941780590042351820766796507858002638510826166678848558950749158645126619309838305834826296907131706731071719728080776848480579658754441379929449107047471829728017872590170340333000923039253806104167548466988957313506803868617426399244369000507783234698240692427033122344253381686955456854241317436885767212185233924551451954366292887749040043945594665507408427025138815422580127799362494827612553010957594107015575245701740197885097699952595617208689434091597258963492835929491764187707351188755733523909753386139046117441975491085823789453594881734097886394506170092273558356900405856227237806491162179925752635876771733782545081928110810215902388311849529597030289045463552392776037669718046455009366389395271293756618364987721355743227583521179617697402893745677711710209601970860998889197482278183406451496324019134198595466675186304382178229805364768085964134878488276513359060703161660080738564502367408632651047956555552390569324136590617673191577439406138380081622869421478366058122796601378688103642239344928990155827756047672145288752696518498409757253114126969799968358313111636230166796763740682084735220764819875198822986305280182288737400846335839839835119179770057824481995867123744072885425542588206733038659351234884997970262313428093258461206187314490573933429526185556831586472346508233563111689903929807462373018589617512746201102413502530165047359873912996687731657887933146811462093006882223088720615833096858364793811717587232211880440756360456266510160834436772313414846187126693943558094472992220580954003417477116924948572249761131666871509490601304242787861170021809547239131794441841677024576301402297501831938044884481604777014040813741893954547596552735396146035191133930122313329913329256507989652308090598585740695106919203279334733972661495541705616616081542952178792420850189261589084277089990815410205163517964598157545596880694260180013035578554702715987600680733145181619407836722122385173317731783658569999622159384875883922489929110687127774169313747256956513343006306522737924551056266921880807811832586731369601120907714665794436628833001440815863098631726419063330440445080582281128154889161983229327318187999588512737838729385096990500690958150559968623777129423176197294040813941813602724051482082073795136314843354227939334277653686103525407725839996548618746068110854415993782634421838393844858485290353045697151099125044231382524925295400896002776538738663574156388274314110235995339222746614280895030235763018473899695696878579647614813385274626000172840076610353359970011074295886179093448568823861402212026281009878419477855669576706020829729728493217283594788507478562688354139604520503273390011597689975923488237896003704743509440126218101094815715133050052696734750515957930241419246771883779907897096741985620620603365776260662003934751458951212313889676805215858321485875621004939827433779291000856345960847872744334605561848216303387229105564330934672192647866563146898144200381872110934389738986303817212957909299112743076719777291578376748546289285218082039671437850793363736950077276642667558541999588569725888941718854732457041265453872792938355542304128413701321311631686167649503182078123352807867036057531692611111413192742877904464559074531083030459561199477889297649507064639716814514629453124294363555488686361248826561240064409327046272099193802499353896059744335128490659363042830104058174606123204394459678619943758818210788705529097240315088518044697672070493219326427327474947465735270631400846002270606955967696876993581612208087614289082438282250827162654510150765071122548776783127104898581258903148080115323482235485756250163613432445755489708401852562487855841161559062915706400186193826787191671454229784270131855635300759233917437150422523687143080286973897230659408747261558320028856056430543675473012697599239121409307820516347305683944357660805054953912914586456418951984212667557032614040165264647181916825561780500043662639868126326051567703737576322825572372240337326563439926101072777491347627176169780024202417454219633542368342108998205098399693090096683351729155605180032912375027974138336346557054527834853747615770729786028264231698956616215364150611916911869585076300887739841331443323522161086480753762756279535732619276807505917919753822080505536085921437064255882040794994568053209984521619529034874717291587880433789802719917575528412495164553897366903667977458510604923731647493348513891310767047816893150928005652508074003360262558797465873389588650455491059441871151078989476427723914132008590273134823051471147108625684424430556126457313179759466908304134034969841895264128081303923795354233955145164368583297176727033879966070502753808844666613249520847059562360351328876356928310404235142307368983022576189398221045147116497508649579313310230516400702740418722925525312555050751962630901419042881583786080187226885330334260324188741994743094870980900779689622152127820403638718498691155689285267885143692081119896699199175939442227659858529607316110272771930392287503735276746031364987286014859087801089027696481017841925051376836394432779858978349967075106459160807997814986746212959429929495103455612395285189966483893151341663425625387229042078570031005057667238782499422930433187629331075992163341034881853078945786213043844699022597151095378424839640451956139526499409105419348027833381410505497503863252134416652532578346241054313724205134365610070975026474975060187932989700495263510803848800122170811344231159233018250655232900080532960950529674761782776499033804649275642460784400622477510229840904464576088284008438396537572516330908693659501131668059031760653994130467831860450062980954641179322276064394545097464031190004046101363637566525147633922056408539488115656651564144995469997989615517085192389641735048616440196028228370231053195494455715777919567588597530366609882202496886496240237376974149089622782626717164709054545896434251358107215509931278700181094793378001942881169713845597813034375911744983050397272005088385100204864527669175972913171516690414586990948299639788578847124158215181915131193646592655022469952252065861237108617077752972480096285573811172643504397723991591353337279437121493974863979262479245746309268806016126833281080137307606789638853035247624795772962330363206079753131170032156315773961141417267096845791988967823317498025009040927698398894869465840619708837118717162678950598037992818687908359676744386739411089537196986182976738458954392441121744326072814344156833377839658009332416265311975886386314575969916282260607790333739537806861549954334396662534041372393360583761357136631484960228465675347318833395976940602425850333822826967160251488264837670313936615030465569440359099795880865306477527207618121415394106818553151735880056317978950810699820712326357146714531162758252500806200983530299859876534561587726559057767770523506800734721160449806488391234431496994566296883810992317937596151519832650120598781441617932890058633209563904496732740967756156579216951256957573430650111772794467699754846396367647409519787469857405002566630430496930378286467308890740676217208162910009270841088021980366469032006604898295265441973616508087089991399726806525622796418049464541564487670128005839444300387771355707804656432991321870606322081514275062240463573963323033417129205307955186159422189134174393464269860039630400508002042870415729593735309957716677615251624524092900687648409445244870829637234794663408346767889242904515984050860716953416892727685702610071896175287752516051145757923487582896882725005829643483257250194887049167329327414414693861611008212073014894509422091561135319660150600951530042151879680050092567027746169752691736633588478953104875162792541522915736474184880129370760082642006574185024170407054317172875849453496755969256058106800091735532339246553976580561150626685714588862313687782502707507793892985221289837675733944406123896019462548014968669537166756920279450041465728456706853099431195910398723702492709010435325525980501157121226328470745074590340596438552820872919118498395516680440487215475323391256199459302810597525033416854656765184945399888524327757835037208347774127463818740545863929254471150555432279981820868187969864701046561341186800539651313467232381249441404741459647131100723335520281233852214050723861536931660894605930756758626679075053701611040703409092628267488775028597523751023854526779620553060275277743678194057795338407659371912339041612299389658775405042093316578069596534125892927690021058353472340561065145554293200917074504394701995669836627702247022883042665069045512194383705684670838235730118163228543400184304949798582621768415619917919935124153094915801007937477404039276368882693841499375805717517134475581593103274577418757637118775713224689227224249337777113957558484346931432056193522817599764563384463523667932694166365293829299473155416026227810434045971282582242670197609692542335680025383489465631124951701468994004640091188074087077329964303094404358183408414175801847899502624738956907547819266522199349674054172881911050332527900215854594317573458873276958639774133830265422515748812728581889273284977696911085259385652172391840425825823144703106476046481450202221028653330865637440225958804713218694501443668175385307315892005190657548015823449154844317770817671252046119649394501886256763741453768645600601421512612924246459673064284648851049761119188467204986645475999926801775664337900340056847037544756287824934898408714007702362965041707501045403006968311235317293403026317221317086176202960434454820954348676369524939415384766753809577355121463749908050382956467090205230467398556435582380712001340517953581775926611792974601486921320263060039317995648494444473161193725369420623475637450478267593973212703372805781343126621117387222492806333639834519303680389259309688995209252035278571980992380576236122849606523276970970764790391394231402133368690394808687684743308012268869946203470823716309724704725028106033141647014474120542138240308128347191009308620269749091536072252751286597749519507014468359570342661460253028153384827277644979007768898074458301080580762580282652539846712184990443942589188021880629759956314281638485112094713499524227290966256213105720027860252130271652435730201321995053171120419333856243218115968535314364280988660109585436852601085293446378411885371826272165074541415429092412576342816834642480358183339986607357730940949860657066158440701673506468455108344830410340714330688613506481612313350084423362414174425220384716206858157780034407442240899773795250772272242522163252707982864834239360319936007701578145485499732791495715242047771832598625574711721760004759186861346576680074791388238882526059503696145637555094836455249433184937579583447082565112029771305489059858893604904198436615568028063910169315079412398442614146314527207490634216746665622082073387405441027555277326425726662603254341416451806464620135910746369048140913948817349150190905887865886575608054633191153957951992269151017526113553536548044915380523524309209568391339236641860218486574056531386585891803888290100495441053950428190852170956897098522266049149770344256341520113354359560162080483345705678582847518288694326457284709415507066390042021847428414815072932114255525384876823984059640369467558558706507780528881184370543707668539402043667908794727576997674271743908241142251517023195532601492920532485233164430336141058134808121187844540168004984186371953775079122509816883959439843743490500927690743049721973216682690786818942988655432603934799602791528666316742452049935768321975982961409060960027750075411611823413659519543647682659743538725034335575607603094264593717684435256584561894133043626585493339644881366781418994035378125186361809861431093804686084238941765717091983753027352946053182177484980676410072780689353948778562080766076462886434975781384916754969480133361645855359234218744439048728220232748279000438097437222409055665798279254079201827191764073156868788990869823443332429846171348077941579260789437869378793218192762383208856219825626205370615705336509986660437335278004302978538582577725820814349306895099746902842123214805436252144109926584513208698356950379341219278770154837668462588485148035328210057622595312384395499845597718366177469694877133736029490243201400893695435246428467039062829612925333175609054580152415336269704633415609477147038783311408045532720266985169165505458088526234722700918568381152913251607557514732983104817451169011854473890500270796628135737332891521947351317150714211819622395064036066250793766101141090975719875195062790767199208415618383126232787053677949587209348085310337003707967698144333986531947300553955036137371690354044122744184825089725543411329141409921010502794060781343452745457489103978703959255767719730326629205850021841243056110147117266588588758581109801362242719178360150563008450612609580351146221868970392656006767752271278115086918240931263983238895143307309208061818367053327222199671221382439249413384503085537429139510060612140640152772992047216247469060199687536161293095944353196702138702622427471342529519834641150215258521719073343528760508969489859661873724647148445754004263211169130661080007590199276852772312294338453753734455619270731842077003525188819851000091058869702463614133946373640362916764850243139592226108914312458431080249185337663654737954281019800639467549165673882209372067955022453974952793604321876041673712529418689041678756050715819184628397499517761898470120141728492253165997642491396155346304559673700366982713924474617224053775638845250605738311722063309952246138275154384262484183054546161423976795807575792892955358231583791059988100013635583580253819304960874848406232442130196731285727975696380891589114151062682936713253390443220443935122562713425835719375807555547099528058650927489148560615014905867221863018145395527154337744115748430146045421047237106590937458945560185074706555125049620797634952629628585741910611986843374359599027675135124284216278738270407361790182264211619056545235598213465009844346847498934255194190612568539471215509383577839973398535979920804409140140130196920588481624165779207438506165929884295428759267653257646127865813653869302306432495148722915683419489339773257723831101860728599213827439955316707179778694631024120965629925156369070709797657462230224811183699337954003728904003552813838791669645146305017446678302677339156584851313373322134555912016942819944635586911990104670257248863039143131892690272342788076559567143550810085233287367618883314330625840285446138179091649151138986886102042441096949303994618815643469225923822715423732556186576373191113839350829844737578763090888190669748750346261607736201056147649195858889526175730298660002844920883309869356389666935736583154321980511463029180303532823912512265145796045112913620481416074263483689048725347741460497928968665471804311096370206936618003815649264601763228235467525772510063481083324604963974581894856250715927985140068823456587664328616964994470287617278607401627879376003134030536537200163361067311973540216574274552661377246414679701634232210948392735205399216184668443165780514857874873899561173561574229271079978937830411746342331723123687062988799395637969323438140930773031667385587583365894879219229299170292532195313106313751699564895556279207732633443995606991340123455661866002723864409129577681745674556204269696639791492485463176155558347884911203132980810938202001667082142619538393913519494332455874157725836948116349214048473354670485252762669909591444857090831604238663433552347995241933217431270826427571501537381144704648961477923432391883659760417327606918396476067866322674929193323161131877673919132713156449130569370585515339505822922629793669280098890127374401107299130758483919483725163875251526812093561550689661281565278504377438567370659686571290407450402139678640980501628716324266422673376138215295623652204021188430916924496201670398377240229007751911990173388725654945167024884231446673301697956493138953858612398111668308257202233372469857377872517673016746885270115642775820059393570981225869012588927727534775124596954525038982611668021287757380563685631564442199458187402810656801753185564565295582288616955286274200281964030614391059003215379795396930218519423268807946852791407258771948469041176416915227472110682439096583493681740724391256726014139205537504438778509718690612830895421445090454534852381522612136091363279625618713641431649422139355442206005338273451530798672306688013562930131650176555377047163009150624792123739193705754138726037784409421730259112504923861549381900703973226982708445933093837163148061128341179486313084619959430789684964111687084337933440570079526478025532429988270212239589071572621544918831198911796492255687257951873764372652104196188623597080763708251916019748223448209944333236500401510330803345098734208212792141200420480180501079798561723216473504401369811485541058811972608739539425490862873783903746809883208172214796830743130269381543636845378457615575201994791177412336708593571769209592840288800006291720871627379774153512958050297099442419138076287230850635785570220029013432709277729873751576166247484047392851550863164215302820835265015575631195908368230734030439271518105002752650033708689498428813235684965007249398847401056947343380563733840238243607253887330911137388407645000377344784709100186480455411711002561405408783699288695274139261937908513852292978958106283980590449924138727376398571948291284483476597401404143259818850245391067059176832462269483973611571814898528770650237921321789269536116379304464677102539916568443144432020298116859366166592552065597956848269167629977734031737378030874820811784876725458683733424633452419941410780153692124159877833997466997395429518681820090649697610367821528098952987606995710356909602837100859978989894633487209570802179233665748707146777367360972463992215753219402369880425601500007584041175731957498416740333035260394809737885653902886659099013584031964803732938986045942039868966162227548943655076000234581410708961509394692645277394235114694011127719149136925437858539483527264857552160208720481249169101852717995183756073284426677184767954071116218015353987918247749816185835646452280308632399771384992835920927055530786651556452768959162186920347015645557340287669263841325770360160596459690403225512310202955997098916418090712914574898624430297707113894146283648484871576785677948781431251243293550247687268468946933878930968619372172452421687392718595032641171831981357089270756010792991851456275028662192436979841781141404540319609164247843921439027833868372641711554943963041940588806752381877429108551788002078811767914778773113638802772856696940118272755475020009359274049483769196417417474376430993588281149024158567172118654518195403274463085084900186721365271788742362751336854382584357260976576339859353648790620203688881027015850058083028005290525005920409954009559933828156055157808056927750376405932422853821694589247308372693348034515544089081803000097135903138760369506462952558119323319104201739769685110785451020588411747429566742640862762260667721607633383260924431171632661044281459586062506998686074775429041244464632860784627920804163161718877365407205146931212143251692342945354332472824172960433247902906354057442643551016576188688757552892490583073226688579406361072634713145128039096794093684979336814875713298697813211924730599496014027781864831950609839994902924848226451969076694936680918529246540254800772199089177291960931566054867802714844783766043906003147146452296723373821018725039173155245869955423886136497929893405730911868982296875692219878352678884816562012179932355718119339478997294113162503823771607476012250789091391360073698161644961550771156247518486718642741875222098369926251107945876744271026054910183771414939538460173089933449360476973301928779138027031350707321098188209904217747958244675990200835711681784488304787391475344935193814011752088137059843984654955705501018947463317851354478060500245322289869595610981274453720034050684331619519836303181703747898626632707244065379439277750611738437739100370156045085424417182946223230987415992613792310306397975196290621495493675149348295534255732673405736625456387820877247801701251910806138076329419104837686206155039901710577549379437198149860227457432768735866547211937247364836888473863695504723045861687577899262417991924288808684663276562154894537758464269366017054904106967913965856504723142697926688920856929628784233165154008797079484044606266020591420715726414911842725772544518517922522992289989255241793132955616293338761041608491996663174423087794058873508394787307283099169773983497943684774634480157906910420838749535492617591718541229359751899008922262172191445930678861976035622188127806388132245635556068069415255297897496905210255587116668803946253165815590264701717990003990248334019184741861117791425087957832200374313389994388787901749321783285709136225934523987992119413582964860423871824067417098622812190185733368156857032359430919908413100327424163085607040183967645421975659821525834228867964906175332880383375925188021355788935119163336359125653076196344688595555679031931342675338330663164340607697250337461204565785754274944560577318094734904463642115299853304353698384660984613766934308461700054908361012391654874021552018074383204637467839049999351856781079228972587469036774957913385350351336075507321325600291910315513107283177116250772551531257304962327220860225214648402202842798593292836688799077140819239883785035622052945336156802820375313954033176431589405632531123586823947289210428147770904529570491287593524120513586876032845142582734694488545643193344560610392771958212921941310874666676659245749138539157944635523988690676799695355659403400839266309489156370515518332939400050322641708848899460174496659076686847228668101834234733580748167860825699263614579414341577379697276195362514816047504644571393528525921757839527856441202769631859515199253706473854375073484198045852310995245664026394525671148305359686783111380040816192340692340326098970410456803793483601054492920692731323910928948941612252877254172588071576980029023276929926539672222312595423789781879617297369231269862904132940693047792690340796085936969553082870633498853589806317037906551023455503598110472263078432437887502680866528666197012358431075487193446996135110246538230763263859894685743530656058275300173591298306951563954194337812121118044070153615314384579873166672036184046659229140007286157047092318388883712590113775110154672815683126173135845444955569340401606251591221445202630400731678624212347398415663606157002295757951259606789094918071487219920115133860334201249033432690190315247111117705376749037925070477108000780724379721999748678051270543865809773836608455714159223131125076994385057495720844706161764642897016734248531307265311314113296922449973258986937933620538231043046881167270296781793531514792526227715087317841347201175082919918140024385165187293321922367139330218393718018284319234620686122487712481614464372623846672273871692704343226676282133595720865759252993357046930167137706293723161840281281466540339392997647994508355635293134044814997460821573143678277060209036200023656147948179616695338982033036431519760589388240313104586462453903945756376887059279419144635131656563853034138055116073830115234965016026289833117526654089514276454873943642900031046497563418646706338393702640432719993444501765362119418398091405435431204661107102294914795728223004888150989288005202982221956031371555319180723675808735157394941586386346592426492982712468742873788710721177960934285282218507517612031632878650509567859784696943970668574363944173341905638350440729438621752610060673994465714452565082185110811234734977092353306073156034383366681280289728355294978346861207930653666229848868445897302368695057318071709271048802093698860052594234685582421466323714836033470887905083467514163185997873182137711360933796792267130480840063571274044761901699021280503624955146493756285725553472201552916273600484207174507880795076184591360695778824861874794960279482146832553636964805579475195804226596181757545537257578006385007882894288015404514728664507693636429261656146409237609919442302530717760664764609748901300712832067009583444148679596428844265653348062698500890014358597934320495470073979019762402183186450225187355768195384669571307006288829263756160327876421596559312529249242216132957450406538220167262398618661648581434298883151920315905796007336630592644780176824280579377519254991161387408165551961800806191448772948511662569977245150821371463281903651808773347375322139017956945546985589460995099448197662316058273897392430853104944407870847269906403178359352904613848224060814013067392119403592658922911969016830434362279715304844598073159037135399085230555413585030330599426307530084474973121329228139004149372925731581039036715734392981372366096770703723997564711313836503606104054887160986190396184993610539032305603590895271652168824412076000293777205420054934505995932847657914451389480417920358508525299387445006490770503204262460392913479186052964181514073543083458770362016261363564753671667605974780085903142936133379293319175008485509604389718110409887752004921222370695585812496257133144760665069336788276888731032445424398289077351072677332667843932332201926219365644663220548552196362859886982124590594841453898355243171934249129900618146395923563828594061690297564763112622914667465366265823575832972216617099689212152632249540972530092760909689092981539854778104754603970480564097019438611243783216133017217352016953866778938051847299996113301753095363920200797294384334427132419629801071959511894080207607854224753470765972679570860437380133715614849302325710198132874943896149485487837329709427816336254436333082693990557968810494892037587507854537640505365757571955571940241392108268760908876905226368654030187082270188354758472399922894034079079513679637963507263442245541912809577059031587725558922077896911118686536928072383024038923627104980728883128755350717511334248096928769720158667518914217143425576390489594698580750060927981004390924945240817662509527417274156016145431594518522171855749552684752772716738913902901472023505989549615741731698904285539944028302783837762365010859093691920154027694868144088268392159342531859686296886770735568178360341970518419116791939661833729700019382298015027248308350801097177309111058708948946723054289271511824641544091066453295323935450519305278990931728114996492725306034702159871961345650020631071336136517861654416497035736820976258374943863039224877343571755966711011669312791920462088982875388710715363136881554667959015531454623653372771094192927484041691314541970017754019166194192795232601888253730337752336012196171161255538897835617670837738785260756313420586568197019298042050503450950135837302702058324470696463969223690638593311081122013967710006747724553614517398246578733436414551852124685804072880187810597648717763079789332546458009321561354841948421779175593309357859671946991950561912931679934411945972942434600010285797589940496943656661909757932956680542467013837449990948865697217529786249994440386325648873316760040767769071769110217133246166713693357767751796687482379811974164138932966510983219131889123061288321306175347306459432631236902194248765044265680064037237356520012431948237319111641586119940162345610705558803666260316221668784713489649977257144363570318750075329860063330828997051279145819777920607806942050549492682044404634256297157534094927435579725160157207979726607019969187009861222418896922478331223069883519302680013335158234809746911378369744867632078154664881263924082841865160249149549798644272098660518203571764568949935602043071048929581586506395191730563855938221751430131434807598669332650487479903805646835095656163984160231551047965988593168474522978453271156302256796382458057087383359848615942699923530317472056202203726152708976066846026088744711951867528525005617829728887196752466048954131079105130025731039262690888474237156518309916354673745723994383500092516539191810184237064182784463199649055288856993932528265626282428690760469591229338888263678905258896297992600436583512928591660168162711585038595099200450238288052578716079991485779511741071458789278928594455422975748926639149060612255901846742420489830696032609924160537319803993095803184587418756119655169410302588427461326771528604167562599716689009197446205707887606193824714430682007869995158218691523480946205994733672841618743801837624468431146227199718354041990857212670067522055708177908020764223877008302314596324376972484302281374748014994596782976524511116475628449488239112658022320723393967248735348379683470903721727807182199304579617087484668322607548311946463631629550461428918187034402551606610996043968227976008510510903936291091994211938826655136431104593773982337547022348970989382383349606222414458818157174486985800768017680983135448890807309801045982988406710128613818555977913112658579462797634402093254046425652321448785499837045212678648629596772359938670287589062826992794921488808890259752971774789067202993671236787634519865957080118747717986484510898251955339140452640402757528622015609839097436788392343368690293794902388062976992556920231250427705108943509783202370260907877221028883869173065202970742687059235430376889847491331150845727240892727685293202568303822902698549830926642798169621548264378964612836838042073209244634810624823762867848195810854733788917216503370931716230082783544609535500015708732585371829606975508170435834992204347823973727085823269636237017609767484500304109060401168774813123641572249254136735065969999743514683113000479043763389468381150750447983622497756891870633121598257365693430609810105810751283202846444444669225835877645410765424544616023777827884230143241483760775272286664586317686875728436203463872646470337810455803840869900184700132949067201629106732086656015272003570377008772363933708461915283204882311403505825354128671849769189874018370111971124740816615401897014577602302374503811231109971026466141404185726108956369605831244662510334421769869553123069183533005618851848711467565374712842537837536027002540478152676963868002814906708268471436627044938342088682979560559153091431959230537938970909123501683175231569389220817236677947717971362719241455588880860190380407494601510951815732199263163081536727786395339826503769350931962174930710360546827463851923840108589380482153796057037554136341945317910214402772440022859505105250788530056362548796203963051416750538902815483989382605618460596925430923050118448202444057353339948646232469861642715255204141839454588339064507002112028162690376437236786327092384808357049285566542256570041716643467942705669316946590355900250098110204615997069222696043039313415011238520208433078349276852128023229115251973791375174328405671719578654820096834839493549870633410451091155802399789655537286716719980635621882290898597135945659956583900719908411352900703212798486817378763769197501596503476210492679280029798828161442624704549931873587379611446122075041773768038423308899512489273821719117059951771345342994572972521521403834304607340293212929718359902336716755190204836798893485785428130740917112127491351889665038805950364886600193051774797377200603859479443146650104107719235172244725816987613573155394736063610226081719549477487334657530769762382929970665938113035566698283830832766954761096688653181122041132550888898206279798064803011217227923341819607984129997207200884183938722113903472473108515327748366983782486796544853960546733245178282183737129068488432260975031906355301794126482389535114738786399505486022460003357691360318382569522393043941627677865022636715905426082179416260627865341378178728420381565930074463640673989667549268764939571849031321211365620239026152298406287309564812816930350186968503713109547232937674722247857296417081985894052169659810525337889233503198725849488937286407683296645338400341397336846566429981296207453255651661075482537381673969227716956365366825813785392959280486393462406800456128973677765649926444527556162223994317489110997868141300340878616096406890919344660106857817399649669192940715197977061967355632780830374867624281895329937993501743770330412678463941074239000407519860591815646594775860969999412559689622869881578902426577897779204528945726859788015120391878644971604999362226461249586877214347718177827215403315790874383331809450293538191572814541832682112481972325972143223494026289546957476210108078742584765714780160883340496255465063241474442371159678992370589827766568589771945792599269290408338932723324793025420327412082794436936354791397957972039636639578210495841631440396542409386047528332592434350078130659491794990770388167056714485647590147081936288460634387083087301399925372529836689104103313594394347713254525111255211109279872778595138270891636659095207417092752512990262045541030803481032270004620819931349774103396993570520081349069420803787220379046438289024990240122138046339798024218210683934685088493016791828966213042549333879965487438610932085149105332758773226902672412929662567364590687559148963120501742439452638939790244232370326490359685257821378096515045449893186606855909756632394422618222951965642157254180903209980449661381395312098534796711469934269493824514966747515985290047518052766122600719775722496708151505803914346182401252180929356344269769077593665452090820250602780467149336326778720581681597025048184007645428436549500337194233565531706110028442303004205305295293308676376028645654611038275374154748491009312872595644205697610999302088104035318669489262396099535657223357475743158786184590483196642956322272610527164819839854633794370836572964093948882039748696069433331514579163972074807234334427069762865685088947309498159719068311061200102867523095201110639978597041881942784387319179548374603671903556930383994015483738186262489261815817546723094662836205565121691747032788728457031534544485852236960697986889224934532820969343567616792601084723826258975990526379232591641503276362559460774627417043325449345744488947721687627182772707294796799294070372568210612950899937024621719988989446787668627345794135226403349817753083399390670296652133803469837272890532476006619392545820659289701415261295072742629227932465791704383716269320753650111960155752594694061918181848737771342683444424052930660057334458886905888039317748451177410239735877528228438595867202823987437435295921155624322438928963002729105687288726816161177303569527231697743695929142484462118989457501169031295742514828451744198713371748657674635397474576159541608781521949380382190631719785463648068772488618103918944897507305385580490920796321483089352318480379090666813452717823353224661252194992676529142759089092262117510817467050005956809313519528400804390075726178665775125745288433053553174841429175337424877509489933543735835955457882706037397391292269370301243965689712377394516731859670419317393074231020539449279372556695143497880554570330590834011304552420883774530182347148368540570383980300834901466615756278297245438449473653894739985342875432822747853813731163246992938367029583215296762931690157701637645970731154556827663490194825042032716235543761606289610103177892081300713313496833865486540725269994243818874654827286727227810546989992436385383891710091592717082304906672765961623781686404410858757454793666754385969867095547499965912023647186302513423428660312308328872542614846504913339140845571348974212133262795637514158859383437023288367636142721091091632643811993071180581370532052181871689034040842283314956139714100091017150993735501625049869802128077552418620045870896844438306344598949555144009876519220044348268870127019830394069224285391443443769252569060378563316363591695975636285511685563162452502775453761962942890436619458968023918515806791438606554576306665385508979167196722773975207635829190576647967180388564538818866035064543168335512453205238283278277210925962979474365082733419069484117477135866941623551515418976650273652437782927375010905109308258678984624186849472218794509286730565647293726572105569324973753017203003429846293990357604055326948019752126003066980384350399536224586496757173536448662296086766502211476197190668367000787861952572772496077495301582704019156303489627631553591293521702092981509995711897771246908544676144850835054133339784826134395314953719150241321492525701145762701032683591978855164103614737647596250976223028811188954047134804246179115385416323284005437108464269095036218683372877564455558445132126070936508889689962610406609727149015825926516847763506236573352767195383297892000906729856532354522274816541019480074074983918823027932639144942369573528899527704109953394755282701081943357336971843195081657518177313617892037222004623202250257101959975795240224447773214620837600834855387730627390209188683525101963976707841850327839303456164014187654569380004166672187859830183324978043066841370878997780609708751312245373317921047765321963226929206244411860240382393958269384876943864799215827507678016075065363560192478163288489506739317047508196646271951189687925950485598142253735349188202252232254527064031100450586493401962683243996750270941977257999962112631549818066293540715583610274971906518427406565937254512574742135652740612551420873683195358915340183005643761475560005901887559432489987342354418536298897724641429112985184953106090530703685290951747470466217592782127028442720276324221886500362829327344812778190824737197178733122826245293390331056612313694376721597019056278625102314965083850517849547462579286335484676475056193895604871272476315354271306025732461970730588914499576286610805194016087738399359475968793420630616497610162893847437876270839809365286890936241353974223097404401233773452835062258300768194953505737271247291463024293420118205594285875409672998247743329952532893889102882623850029186860662230600769541453440141543780274354652779811248059501088156886539095810551792517892616859476198901851288548533001971913658050934308651373391567144253106933455853593690680573111213522090148984322616396432630776114024959572757551801795894194013197745734228922330997391962454237815316373992053247664553480610143673068325795760516674364736620234621205488325796206777946589615346666284962251255998837366356154573809942398223413977857318118526694509219333400278395660522190434390795218769528629536258345114288337418801389766833483451992354372759509972488475499853482128754160212142000716742527322818658471302437403801247212757715517354380686932178170984693047721386934362393518517720943809190247679191235016341974983001943492514392273283998952752845430980061397557007914170816782579339825803450530350435599716301845528168292642279637951739982625697213931034888695236503388767235345917921388311578797662440444585686266118761866077854423457825562175139151512175069970282671214823537616753390299724794386940098439803372392608257591497122524969990916251682241883027706483153811223687127561226085840232521772823899197546169668710046806668395139405468301470663243728097173085261750040540584635799643871306025046653245098513711350478406669674081206228084952470827367784896750668680665695204615935906403278260228102365520837977749099988133930572493066866543878693836289431253517516138530476569608483426892163795317644541891627305175221678972080411022372283886209656630432693750538126058074357155644252030153606598273724463194200272636840007290391352321609780682089800250397115413563807418433383843775594568899343275732876358995393433301321522590012083860051252010931866882673567260499879953512265864607687845448841833834136625422196971463251892117282500974121983889437996477424611182875649274008010958068107163190905554406637684199248303038244538612047639180787774784095532936773126665062304634915420945503013186992838587040497769498762308681601198225060378407782933137148693195576904124809600289428590147156300359952118751134960928464643882776366816444290872354236562624184913110970711588110759956848824186276594293115532643553365781078624936606809735256728328243880471495336516304463220419935623776365923546949824861222404369330506445470866983819456132717316706287211292233088278228768566112936704043109736681582156652530953192735760657553663381308114126150418274259197915846860975661711155359265047245289013979730748365684566763766075030008038868274480925601952501822877867751168351851390092399073510597032706696191540732872891168466075052090920060714564638393565915655426687110625860799966340457758882769823034744991771278741658923779796117044330665499088194970371992812185309204245501010187280970744329043394827028863200729296823007160613009672672956269791838625419239274660390007121099734961053233558472567594158335365038969578883612227716102099081807849942356230921096520200749681909702336820464796210938523210558762150886567676848354321163469821573876550837832037338143199007420263497842810116848957540102189754507098326654276214693339080399046753111520241502483200566561580635979236181932300762882729466887837907885397404896953393147003113132449309322770532613002885054342907789006340319100228559937419959054534198294838865764191083821664299146114191054104072171837577155061513515392771400877552001228409781872581662708931273964546477259808894904638744412033834039847054748264843421660150604097870387197604533296815945603974179277038661169175403060560427594749273731758060875311296607988071723021883091816310355469967899967681411322384058487215045110977754130927334808561399431389195645917913746129612274326490289450582869601839766326676818486367297844296108245753273532378558101279916957607536616328445715479677570022259203947901245647188595273323538013204986707161550915878288956727461343961549590248105267578991639561562922800247341472909294565424144238427975134894573060583395554662066270210014102767079458435211648908816862436979656823419770822333130158028218768411671028519113734962555044156500322013218780720836321567275832894119429300942017627734310749322216301696903711021196817814596112985080356782471755722595233764640402399244994117133227064814092208903934067741659079335822479617612719575790623216075333480442592524721663765328124917378791355454531828388653870756476397340816244449879336143123185696534013864422093057439128727633815813871255067371224288300998581863210156353494022783105631170331076712499040051320012934897027213099521549239150785904214026893130046098656152361405253039272543131409786703723671598135087041444155684740934242858068266918870587013314646320508191505624847600443520708075408782114949462115092792335641676736833501642284278652933928327928453321515289204094301200081708618584107504415762168102606083356828369738431971365108293621246800257976799115539990764840380499281718037565345951838459509934009339260311050879753764133549052939570876599134289972977018161429476080132837284371590590628796866400470614917846595143380897979017472288822130531415145267504796951734362334726153303000930497426565394579474740788563667819470875812034604862122119732683985031983988067512355607212314224839768206933579702545411426785688286857621814616682467550295237752661408949262179410234215163541177570269072944307695709089606441496588167174212166831811496370914477913934086779172036360471833759073820099690945012308440297824319898307429912474750965950540243211346298334415639386846663845113041716880468008283501799096954455742858132774403014003363683787123611627532239185200931510869547854040603851429675337051449228581682317546757859933248970433194748116313656876224420921196163984780749399063255065861047264994627857091184829307640052302395716940453022977484337534496934791042788046497550916892848110273355938094404693489578483196619161915687678664744209176769614601596143007118763711598184357094876341973991380856286178181951683356605131978094532258542655251653405256418983604191809877564754700933354564638637458818370719308992777474777651940071210016021292429042884377518855696937984137461959487866404952885179702994403417092257126983643477923420004450897240195642776843574000469180688578829638255568576955243348105923536963237766541213613659416589648936012690830391218907966934638782699462568989432384269479001954491764907992596728333201502040550563958228832298654215201273903857125511583389460147882679613070593684462714073176635850748773515360878547105994508157375037687217575866897476371420450858593475520371592894144903845551888247782248886056768179484488505424827117656020412756251081698730294789916929041778073208202945391238728850578047115027943406781972067987066773468991759685701709642214988438621317233301403648409062296336613973120512678548019751401068761497867822382951553014477543880094209195811190845593172841912844754245930240434415604684960365223220703918197954739023747928894306287558798955043463327292294265819818993849643390390174859190074549851943243774688971516350617840447658172638369808979750933160686709027362906796736528277031546320116423755537799298474640332327398535516109777781075212622968949860513517165602410287103772412940827807555891992535075849715477021490914683365543223108654748777138622887576081007927178589790259875918863519630604566663336319217407944530334592773012404904323289169886310725490859039501306666592730117026037662981068329188801540077400682229302138595764542356841724364975303391034247595466797769708002737594358006471524868350668199462078500178103542812825835286534039521232796603536324082231808982544771052047503704252264797228699159145224300070833200074295977322725795037652993767687202659189314667887983961876650840897212071621470805053296553068382337586478099701736217752518266225944889755547910790029432807377769541203788819385753362453555755538621513721579048564519552478272383904392255558608545983783242042248996058662215842368888782818875032877205784097787089910123979622359281304154281462067094690729430442763735707951946382406385353975389325145532040398658131876665067180128552920929028138846494499131489621511096573538273671105194612560704832112062881259687496905332546516609855153284705020721844897915130385996182707552535083094178815330737133334832472877747905181060994006506218469579141609025863337653702695033632515901240061077265518504085743720504028696419034506015434148258748213594896680516971622041292189090136519426616334910151777093541878234115944342573018458460479674977341123967367460769375849063542999397454530071743091496740145218588375807908410093952825123993941887800098000852983250117971552469662980523935942605334256683484171065964689960240675931818730076077165696460027491847845392837597739561010543622972283307967124275958191338179078340962140827730260945983024116813392425402102479082958427192272091231049877774360082282040479398238357631732443171948315697133001082852534017809175846522941747359197349372218733486503775663769454517348058412741929648062378847469600323632964560718750085619940062901963618143276961079101024847744994817747303697518992281355769357501446845470381796435604192748202966411484264755388461609284317366732609511714145514664208775937211606640057131871831940378249303566026421145554655096381561717598832630660635415029101213817574070546034758943777657343347443313614570695499585520681596871920795526467023503228932588692655211583740457176792697869830936584416052175398397969141646921305288712473482152684048633544160366671645452057287892065390396896570098833039278228312463988322593681848897300762029501913922174696391900812982244757810301784071241371181333474206915380637319634203722700135312823156128209273078733360657318822433035267753616851440128481421604692792800626149042372647529552898067238689801124635261708922360941951429831850549387764220559839784235496068384308044463091873898281103232617494249024592968705429095989327718867278818149022051859424964978643722019150845872524151377330865901634373899036909618394184660480476412857748573396024328884856159481653913099507843261527612427437304198132191310971382332353652196256565684132100997793465867125309809163123694545655240867099025795737378690735707957623330415204577601513883455847419623747926673163943170811046161492806358838918930129277650436642892222952486596196474250156393651304555422184136981155056022645692242688442709219082491387974604688426215352222321596952972046003562844801805143092351464906483155814707337390990940330635162847636452430703990228906910322690633577603648605519409027826803159378088265928386788589283339814431210743242105744407797255304875807543827180897381605829460510483029383863211204406323798531018120096800478401312104193172311588019894128999509449051823520285501747845472762059863697070096215053673678007104018661808141385962780769153033085973597922274297796806443236893084382221616134450290924444241342868204598923914410058649485559820602849227162477870269955897422814270143672583620201910469241114324811365678238853166167823059101302957723739494218220628532292532966281056278942937466150517532071023254039560695420249982143153977132554329758685525272480132525920496236391864282402295056529171734982073877274864534744992666383346808047284310211378092719503669398370888980792873532815339847426064500740808443294502104866023527925853133129653132245368773308954167066148363110682779419010528654438552547588213894308783875546974389267645496621380722884257239345052083454215664457739359032723197581717659160914992230053647772838127334166622533841472242629942411924622400978544729798291278440392639981696982498319988102820240201894960606712636566100746939708920646894033570492380927010705105350938561179427302169798825354162801527272038979683516042369023818835988721040292019071056087510016790371111051793917137546623683832541447178593865302970564626260948159605973111282072557182811133246076104217747759645483911179713618873474878682539845866897492106177035032173667065708216985559866053152727023642929621060332762951293492175214297488361749897305387297952317713765169565607600941025720965264136722804718901948453657730523247184576856434531334180912602575401390394116388610927763073561477104298203714855880998828077011820768860435818055569742895134939208502703609985291365667242000409340681562664800047750369267010067187565498302678403949779028498408041128649042737318787323574923351577792665464058755270197331741525534369343335878177439476676986534109034241828856004682442717355891956299625079790827374560677653849024226242434139444105147668328626098116986962995732918948031309383657877203054406356888087392173364316856301974958824077856564691100584485063221748560278698708254492343500946242878114247925570928758816037133370498944479355413578617677742593003501994878818935464570699898023884285943402352939573590363877995548580184443559823169084248835355006567840024862288539779059190210100832664391404237858347141539211252119664412719679850014037773781611395469455626393439637229169839703443161802263801853507727479038358387760381375783864701213631520655028504382092685471604804944672487705111529563991984619660704801990922543875919360489941776424323787824512750976245752855490091949663430056325042158247850394386565734703026506980027224965381622755412581238300224668505592701928095276632080553239136074885985495257698995079276140766434576464290971818152704084341168648751952915242506986869720912197272764166399894803529381557206103652854299804227933990984630926287867918884474582281838491541379025757617305573721909891733580870609521181391392283701733047688180850991710905044401302490736272237452998124794221658811858963808812967892860271735024790613642266669709655633060101790505226554257504425919798843096292810306578173471637056821333169546753852570412755704075586258683249666663999607717507142454243476380734993509255726525019287640864927618497173045897625148716488591598951255375228222955357809275515771773494254494064636532864388734334217530702797210788843935784080519477756982541739321292803528190432830422660811527761503372809322221614627280225517275940258914049567804027668536835600648375121195655603792908901749705688289249537680005511704451470904027647709526612617891164352708494766333633037504762668181349383168469838603671786180757090384099944166818885088571567337508594523816058288505949719141157735194691638266329100093631969376262656339971438859083062405002210685624839375451664538977952645501454384899174219683121931401372995118410097509794199237468840954250132123647670753289568716490593510289684443170331513881484844754291156551495493239860473470143099453095929657329964069617905657189155713959225222377996616334929240926900212172351354308093758013216123137754512348729033561460914816427581049952002360871359854964801275969333726114878220482714165428610972873853149810697327536968559132688931246588639737786052796473145774438703755129143836310148088010255497501850563438374232649428840380798143255578001639249929690852845898363913292517937062540150226681735964657598594163322441515757367266219230425695566601862213826190880192581203723881546007760038590449038861766421200157127662440876305292839786002937708353109004391865881200087431950741028998065659379888701230973100697017955799260447386963611607865159837648650167943285933431962812865551608452919059142677920493990411896788778786674303929975761676465546813424735632581831341226626900374833698503187200117460321357251155487510227692201433444170414759365038920954549976990021428049303569545892006008908812289808480549761464239812417065357454304376304063168249955435897677978729067940476948112679095135574378201752416467534613297580009812957790997270711903936380944971395629625872682383589471854165638473292427586950984276737772192332175276539686606177282371596570821130355810363815182791325694461193091588133531942734066542884074159970819492402918388497625748315339375254667365082843965540113896630167639046301783547536947865239365547983209434681476337898406578472456142075994498977412875174494581453465738378997960255958626928073950269927756990776084920221558974346739263779175303666438705307148525194702209570892828636950493585584893209095586866702334575543192545144251812880078499151418500330138018283582919167951015135063258915735687948767419183823306159137685922349833225083199955278486255059084867455046951602420521525235667638266643206244011346246184835538231919030789790489156492881675694951297606022618515957509091442772246331356835722350994112552809162282424069411322325689953200039030202196968217386130987969800721311638620390327297191995557705918946517770931086733435970190867546375077749418164213662458712283625713096904252214240927414444286294676411115733390260689928399591420734459182101298789382713047503738331667957872739006283488172123432793167900780179277820576279424741963951177750945739527443895863353347367966070550527012142544299479080491346447357381092368930786035662366461150744159419230799122635805375263596249358838854994535786088823490647901666245572094788231038700999172108651627001741277647893143063607031726839611668179673599740524372180120623481940467735151101150135753039355361350398387654046363031729240400443934542228866504375595216796385599047414810736635762226932664330642246622513619647559947939447516742830393884953878608666313656608760867401686825424385950930983900950824741461151827971514792538782363231160391015979083705326761335653050108925597369478256693522289815420801446620485501976532321021816166219530346571841288016502644831777530378575721075721672703735192224031414870533281255602523790965285517106044744791180673197071002068603349095233692899435173460169991071845070490952869577741317941205305663931582598080094541594568474016733761993444644185952484585780679184671826721457933027162864842332549702086814740691585705248301426251349130131793189738382452549317175403435106305944151858517993322891846398568766128678082982141129066850039256207747696005665324348516251485428270485614233397106339613269314052482118402280208764932824600707929518671187707464164573645634222261847181242843835488266056541755904987953693629595664972541183719335697984699399826697082328312099109341255994808198732203868645749761500731501308035940504067340560123257097874696291882994649670095532299328883162376227702344608416178629584181003305951772290600660895813030583131395588588048276225962517551839426498063120045127181001922219497057669748844596592692997691620797266423414339698096085014545299116867845278772258015085742859764318050407162254946512152689507976140983569243094174676545181719566747204449842860326968037184108259382733558497438685580513595228455287596361386027589819453100170760894427332474687242958911647821885362098458294683030407511008305466766121316949446563866233697314905363048789078832874042072673383396925834828135333246261196639727672957698744403654713600165916747714238618199164530627228981557735662292266108971779771500834627946440936058431573206378347619517000016581060210092878404435682065201945270285682643221760713581601752221973467223327780274398943597115597803812762780652604670385750855602556081051666778183826369162112027595476357509273561033756517976994657794959611449116213116791600460723425681348221091747041610254084248399240423509621969126368120916434903792669349222546351017403410154654375283162070610539082122669353971414467016387133919572456201351392040509186147323218293619518912364549208823904972248828791425729913397782224781865210133914143716010778081000716129662093680467263377030194059184785859655730889364507857936000878628686633807976368902807806198570100232244772514039330322119572056967186423880232186334776112599435486499244747516611783603166952637541604360063566323871059279357921756871199982281111089142464610154655356596212704209994403197587351534398333195609894173093865474546514099938939769355392245864303588762315761562586158746287281878133711235134587883785580421697764398525992789049962429065388962158212221897887811625838296590736324849697798761200713068188337251900370377403487225042973496099347660728486400016319929606695437071427118319214099244239469582566542054191451204553614236488414816026053774866149864110283759516290999622091232981921678339239642561390727753657077363937251198229736967869246891513716526486975965134435767122826858375314401262804184046228693588973582463737878484474816412107338167587759228223079154982210804795904348319338763433073399499251942433721363211915365810872552754939034970117953105652743688889440854746664727270780909808046997309405202816129582446065629165507696802356145139785999535614491856857949608990228154099318962273521074758244856724526195100482672561527017230093439430290688053019264553530429770999782891887127297756731225080121569089892104620610303265419535588308434633118423243266793502469894057473910493235573872862497868075144049873814343511838525582585965084861976534830516557746535484925184706235846361128961231063475613487829196208080290215418895671695470578412636065128050970044865339456921267610746489021826015136002176404207593430425154960471216560638269072668810603281420474122008886673494151799724644431487852302819566773009243452527803547237133249811211144752719605172852639093240007410085041013534953404377507086826929095896450567776975505181699765477424907498713768970805422231030736998621442134449704808333886290361924620994170065952755234994560840888352771199512564117887487755426906953789016658371705059760688177908491161857021874607039200411210127386634258458451236459384881049049889171246857392696221806481134103477999102853345043363529355994699910797483860730938322241856554365049764945838570957547589241810795493776431689626073436458913015274465652114578614155770992104933437132765485502078197577561301902631627312439722426741466016940435362112664762066895571814714997912220390593604531712953095554012285510811212102657296975654697231782827535893252633833111069657658155611735948679547594241902955820124457509075373370460353622615497103954431129334077832390857018090461357962884855271634026996506312919099426969596622558949797562872128775719854241967347530158746347073305073784579614535454252064423087824084140807846279673687388788958520447092790810107121198779872783592423393355755619371324997959387609841477989821381826503432240130638574544885493589707048625142787242965210065664978707015683883864539959036508017111436410426627869672414199832654733411128487933093439580866789075434070202679378477434553526566512929013433723462897801078201155221887239373120160937097040686325536770926191900398941884114592615370116668658956367315052216330410779848867721149416004662110658605248504107954794838142514049963682497073968941442466671748736746316851704563577542423105150580986476464173910628745990473792488810727430814262952489093198549576289832417190896199838410018154664437808237533284022544160414895993190873008472472855748818376975818953479390880198458062894211236113335463254004046653571731667323865207845030801661957708090271324118916546201980708955460918723854372611387496629976665825231471481880032379500380667011859894219599482184048922604588548768880233759401421579154295287123568227193941659500062439118359342678164048354162384967924208087709963757338733972713857005101721639010281400619964029555551092051482372788893958622506358200576235586046067003335451488830880320699079612318449237973339003311505882948380206876710240916485958888394432465634466757463358495322414165188032825488208991824102940683182206511712210563581095080526760824300375506483382815036583507743940163080243748097984829566487277021341700558911396621800935230435395488825590266709000657118853359523301307008761904282865576790762169073394085607061588936193013487802595249967031591436244219977851983004379844414548655165908282041411393767318104087719596578936089006009298571878482454316218024538611683785858623451078284918216914586433097247677113149590308273461852478922159576361761941580341303131918416077594410121574394177453130001079505644225251093067375232236885432427912135305575926210031122118620382975027538178425417311733755171196816524092843676630140284331236103292345231891837022303444549741418863973986508372860686169436251316559806429404159609558281527947448940796006704015606635423305660888224109246225581873588042827934696642062741124597521522027613182620967360927370341863068042962094801519011215646323354619949604974083444354531421150067268251668779506672541821696486833308233724458549241292167319098180229151717027639539076596084501594587459760737822363718204911724903037217284752147681893828285852418664014070914099177883713956921617076979010060192305266297842195100992184012322062914006048217819490156194790264663131287502908324448371554662484940386152485353273663548381024000726950375367248133315649581319529832958248945699470154098386358837510527445038754237416350534548439059129801016033702406509141965440640893099287456350361224915848602375132873373130617776438334911416797427956353582643265650934389743876971254048909954397610309447012230170495967791613454602409207214946497104487480382550964755792337840850157046965409260993752929750657563244547864017818208689976035501204605289875237228409656415401043048746627607199592900351813908226465627800691749938188975755041245526281187695373575052501272801592229277826773719461371921651640018071110326066546576457256839904111265510326989847762004945257320763366118794668546807565557788161683365059804799752893885934462182727482769757353481167038511000881206002684512193161349872922797354351452516206626446755043513009958875998659114434873302760578327386061081960325678335362521398537214632713714373366852594289784092798477878664746644957883589668082045147767271907031262880771077178087594465928794910582812751317845119390219204362173999271041748174735530055149680713746137668261024582297889026864070620871691840805906684021071179755073163609712321042997983319216599464118767390473835823972710206691386867582223407683714025128786024336013754569561210121118668569527576098387624201318060097300151094877041864750146034719095600164459132581601108870034240951086006596682466186137003404540305650156032108961119564327940113323206244129685271897339002930438752682641325237281181873418377266831707982236681984925517311140484292263600497298366464717470320358925111903145526378203697482737644474657963470343627745210955607492099970685966310831881197052675407608418520990745264126830901434767342985506555550495836710687190384924438850171624189592415970643895517919761248010511832662108395180919193168647150076228549154633210029492313843480405709777013982744519348392219713060823701654633725680139350348101212266051149768782946285862320643474121126266335278215774732452483124135428660441401919056371445619336167340996637827149600978057687541695344544059947939618148914947728839344493862378544571071502666829049614037984996997990417731453498520525154680296797462648196687022861642312147762924124296583127636615013215995687556303213834957850419502366939282044083814911150686568428096030448529697382538002417267698709458055882387667508804699912381136464981780323271388627539998143064746124047754171778696333861396561788596483175635190236538942860987981324310596410750202204906039359870915954779421380986417913250939151430229182359194529115029434493134123621519818215831203202948600394027669012663220706625706516546005274752240101992387346902997506116316619281850976779226093100513544564936116459656602849112845526224785726874706115946260327304926038731909842727022302279363717567119268583647185781515513352034020094255732570241356749792983260661689237477237909231564483699398221906223959835129277487404921884865148618006764683647476634904354685227044181503294734668805980259970451471908672697542090927146372479398724290800146596030612664416602228604050721331815082946098885070980566227981549989279243140532399034861738080214933410263315505110372233887514816204398816296144993711841473065439725635803732060537419376715721551625202628791243475176956627450405183387160885984370464672049769257186263068174611117896507127338941343126400421900228426884632219249602699285376809615893194890230425833901286085290213585525352287293692772573112483980587096220893068466462636341647431789867000474061566857637857107584274947429648579667625487697959410694492681165765692579106373912809174332934276600823474451226468172447913454112832897445755146507869565899052824665349909387151111696795153643282615119827898668897109310169591041784502488287352319238448624226362973497576843928226311202000471321872017017837109757566855371393824758533811898056805524561758925329012410446061386262529720144955188459248610761575320195237921069318224655177285864226604778693839844215191391884947712040124803222614617113859479756568591174574724441827556436675503186173710531284061591548821249719371730212674392008204111754985468363984135677460883816733867417100470330451223726996329675335035568374255932788505284843970995341517659032938402850692199642609108990684290371284529345494907934984037039501594365634463139951298245813335313896483039546853777423867582387995950731279166633912135762293008238137499508804241436770634118679457902022252519770235995448842923046328754923496722087300742261853262394415846865082615318656057785769972925335180744046382897304361213124874166495577320583031985264922840033821229619829400035721889609222760768921737321375612817140127894768086018461734761335830477995555701108465899184652647160290624326823097213791999950260020076779284281280102189046550368644940685163746947400979670522871746653346534766832852993058391752919256842294613330335029926614749035530997059294430175663343834322304415434370347646640492739502658109126488241517806384955847321292598486391433780405356376028060686127816888921524835645436191658459051120653701944847924254620558790155833335432558659101839153275563432530479137407024665888585517326415578510827116214091911502018761617581702513117007944140863486314831905529615541131867774760309553999986080793843749762273037037169749162292002183000135339181299918296040235929481622403757349964789815652622682469224661822660033465631554440691909194461335922947647617530984014456964949854178741721231360779557004623157574070164761282734096389797697740198761601941576015291091092531227618383478679518524193706079791655907057515180512954283101853591731863652920291308420578073926757411563134564106004814859065977727755892339730476017611861094666839383170513676765980608645465327538441719332482103500346143870064257499982174252182121892042469834596946017145410809671735478479028964900570936956585073602799626696168464311182371981949954017555507937248780196933765045134741237023278581717052728754067680867786573319191806541465070234693041076026043807649839841877624335388381358183139633229783045192735420001244347701439141020280583513761524868346540092241485555890737202921946094967830938047252254271539715644613932071756205105747947382556303404499840905518931225258151706446913599454941078976605283937995021912602612047720514588368772774203939349274661742316966127244888142028639142022781241935332974216945094679545206739569773828062800915341955720929620870217816235957315398580494059913096459784367461688033276247131332187163639467180936674734403357555262197725484420249996339317486166811685800241610193571815876391393715915310763425043384067749110062398885979546113555397558396530539242511338515197295715072567194931591445438867480941270092974257722117019767807775541153146444158888135464046100343675463395438136573794175520229837046337812404527631159587874291541420416206624891261623850077703928634847262333435064417462265548889643289608471692123310844633335053371471733303319017211530774818159753187403206520654666303834024724044364192958515662077201957319351948859162981533005510527995254001092334656798597064540514291065710504302628479375935938805412008468120716572595896827794362993111922904628749893381516161241807541838876597271700031938896653365652735965704729837055565100268027923851679503365206653091784354680053222118117845683243680044326659025462859459910385475796520912343895032510595830284514501945309892327719848928078784554674964362756461696626183648666203671557849813839868252876195638573608520419332025764108658530820783460937354267441745879179816509776067480342358794378816611199895956667944648382154771584452235751309630861325983230445664681920972502934490357865898888405205528878640659389827094109866215273716175244926912647222856267443179067066051325033145720678344046379514260173334959206264618127328737794001301535715736623761268528321103911201661948115587795504039408651223604194975793571897974081155637346720742742415773774044410912384855584519673648350488868309931389823442124854956202339198190060354898518044067135803314087241326581558085633552923565055624340622173863587100591091666902011060085192106206152172988987083613379458825841989297281359378463864081462097321574887645854545290564856934762540928991066919225602464254529100149820094514753886905850782157499016423832582661233303084236017133133019740264365928105169746006112974134995436114150778901552316163627582116073452193855111272300896003399371087363400847445858281169291728401471592927127197382253553963987645924738369326112803742994013875808176175069360473808825916076549966028549415839794291304417893741349812851299433175675824407673417695102424433117320805419812250315547648257870165086576670230978527121343260960828280847222735516127980217943248638989060292519154480885294492491323857532148964128445650583365153439839435370632236908681847489163408293026856719785796604160121522883409864495030061363798475278879019534177434844467274800436348276180823399161008740511223516596774451783081921670275125143549469966872668737082784919199168202590371147765982606846429716828871519648270565793794566304849953425828271002028745751425313487886988808012391825275474862935920257975002818219751009946291783785110346671609157650768942405764348823245410625517145576852355740815455232660177674320947901564520546687532565105251479763201112266026752483321395508993126832634930136851924284030942602387905323204787679384881578179912075883998951182420162549243993752925029268338089129651247232814990269823023788861443531898799215072001787269476593216105185240507686364891235175167193707377421624358856294062359477043120052660625697625096842178121148882988002661604405922232933162417612290874337902228780456170135772375061952160342686280629053786496887139338571256241696407932447583136988591827299927578294929575130482504366602853237140205496447338073824577555825709270075915358213622487873951980644753650922833873219737894509894881222431666501069873961667298992096442059681756961923183986619179340847425786815461594145893864060229613295003812003838976745020863385578266798810656903699908156782778516378293459936194336698065297922152215366628883994026803862183878413895499792007228937116950775706172400234487289868380888946932582186337823435691207402895687188566870960612738621934987326322409606596069917602005453603816589660214387177128755309837099020713308471230391797557448381005068328095118932927219123165494090664021456835987446321626557573979283730870286061293977236838581491993925841574254914633515482041412850525611641438473862157948502590959169401670192222715205159244638478673684403410197602254850585962037452021034019586721608171270192646070460795992871312107480351188250682335304496981265520956708088454194102253519913136835291159722281977965191751091412574906675271987992843990372741064588671698118350910120568349817677310095484699100664217037510129640279526680792620134649082657083731273088770349853816883018041591073508780278978144452516540770812748847379655033182989360261051517090092011022207100166947994860649884160992557782103329254222023824316169379455244507711661278195720289949059237178763071379162077328051900435950630278372052428607168631975683199449535965461758237933195492218355714063821726217011899062436301646834987994306732489748402990062675636866393449866870295746329559276358227417390476736646832709872540082565827407937301342125015787224693593360232027880213344754711692547244278823478857202047848109668249573259465069381839328994408562932954845234695473247072095768155000313628681830587359766552445629233370980039202446539708198088097516775900082945233933825387379751663668484819906191718923053029327528205228873899777985775746443306673842846683423819777822394151522436389874249517010656678530267666437085462406145075109823826508232921923116946593605521624370127430023949246000846441913713453739088171054329719962592178595836890022753546934419927056354499446464846356921147395454234209303509561912596294276033231402838156419581239921684357059261155218643672939081140498842995401350304582616685615119192470424806777874883871318987189673826192473974908922169656489981576717042890174496662059680086819909195664839871279960006066009833665085013172670506678073810536253324043615610980110847675549487749423658516371946527932849799057701845104909170153356861363244389487965903436759034956002166426558152444392827872271735945948307893872024847342032229005213360684605312929409749759889320134905015546639978806999170087371588917595677689472706181150301964728913257678481619091938845977305288817391379634191013912282881868957666915817506640190664257591185763887548293436299211719127105497738537301557783810188444186065783059241045272431966922764394688190230293660368939291435279006783454920522889611788605187540831049180891775926096257118288327086436346727818162747255714850253575093560194453370570429727931651832436970736387485609272821695707559352179828293176304039885438950572501794655341196643840611832817122580580931386536690163234155042355394880397710071250704105678774162025859908400717682098941448674622992276289202550858081621731508389755388405349427919056734487660483097079108665922529310175974785382557147194645296290878451956517409594789439633768568878413363340735390727437663722052802244591605345737540661837169580524217180032186022858375322597888350188042317887568940231975197437444613352597457897400554662442432497593440495376268236401505734726953980110100256582513119575389158493821251296799677253621276460763910672269184411105916667182317481206619477228053502579386189871073293114319621955835900757325454926544053448587623799704869639821290623046526023715456974639821850402406160647212247386285369145422758281589303257867192003815231307030123145001620383558559708463628872856866182958803815141259792427122280065807217537599560975302816813243190882675811213978645897799156707712334130061405072073787477542271334777231879138778060411602833892807322946298610943899480426877630904138282008249327643784456946668559691350972809296560296837842483190637664897589402297476523373707075902957322967641074447790285422057108331864160628348328403937671338148094153081003836346209867409231416257725926016424131076838385360967743938964538812198718470878357602846575850066264301318356377598343942325631956738892178647425115391464830610561761852266148498621173529930039419626797835115432471979210099902359950101850452263362136629541758790411552911630059509298870937205111995320951919761191111785656856314582374252733634874426217894373425559443882721099552583440480781533630123181725047611209858621391195038127685768422270602288085792280227899270135450268982898128670846948085869077368731048824135209253377992815178280722473043295605706622345618996569294079904301031800558838515495600371015362883393296308388611837572513442929623743625690286239908180896674784072154164821536466985251118356093769538838247792682054035562293103398234617217749928761143107112618698176716510102132817484322686049289996213744264891787470800521778991459793683257690825447049955736546073833295445503760545561693846299352695559825481436952274513515963501284438165762387821902834477841943484916754332208988657251072163801257455920500626138323533310017463563269678829979522312213359229559877714784256215281966009582480397960741880686481462221846735023846499620948290023721674715130176161834866485690095804452712924136107744855016454016588210094695318516709496532028368556343942755258676230939902626468802521002348398810810313959156722167521036403116827698020447084682751021600765291285961812328923919989837615465401528847640238956400800911170777168663258471518886521341810096309789246814277767444249098481946207209911860617837882725606027748920250775654960922415372184898191399949304356168693621596429177109525695097069900632310061085648555448231768169491892033538259383979779552017806002615045384660223480584280668080054097272424887098899181403017210837408519716844655506868668259576213176185347414437764098116897462020371211318615031805348163709928051005793939581839605381572799053173564620472564675646573375232496044286662754228334119477101158614822513290574723369645459350778630281397035026933558672025420653201911364568427852227113049930847401550832055345022071115182925037824584151595423857290920559093155527093715730436507139197066270720836605065359257807538799662427829626027190863678584203426179427292783872074227039258647899698885201728543732963891417985649549871231317421078111745847834714810113022006691881171390633223774639144278713501339101361465475823547313216387797859422925909287326603980617051451051893526138463564900758234863291520258655103110341381404910157351617886075764396461883410175654441487477439695871259318206839292181168088355971272265371195267463913547288909010252777742990668168005319870623247556963164794199431877289989589073717447913822106916830314430210883271873693722363715982485112777376585439522066498763027698123461345369762104739754844398066496855150018242872413962930020784239040770171753087400621103886981275161331107671042265609534206562796480309195917122225686050866069749195871952851172018630145722311125595805803005959045178016209156003392715813561939615245058294094238306752231048760275683319313953706159405690082546716340768851873806202839376494141695224789764482741592439389073858703368311064748295916563631940759787977389368568253656567981194055582946890756209748639705158628061604955380199298790107269885264068694896100332327284203406188454212897943218868970727382736277850137270114963870884664078607942655552555485664825367262388553019570089909441814119681927822521474367302375772647906302136270092943519353752024482465044502817747353031305587840428905295653616695575746030446840020130258347285787860347964296622856338390938504059599633820520131345977594954959152824913675826557737086309853431031656991864774935235587698561676402569436794965082659516493618563906776134086344949610923085281595759473244692997843787506957796523406627034893439922003933142022159640475307987724854719289903190331136067538740992626587614582952454629627447825306071370861009325656109106290159370323457846510942541565848633675971714103682469068213645950225938235868980342052145842415621097712594198860517418460981052180233091349159305532364021180135399382739076096018812708570022161499420235228530119785151482540926695185656765341040444548548817766062915333423935588304097708038262943189443850770239040847501710409323686830979044978493238921559850021435870077134287158470069302471676631228530283911202961584833228762187312702544027509886977752418671972580398456783452867233726268194259137689223732798696369957194750828057492990801609296385648875774366813059933003010651656716864331160038178433180947698249242660826392564722108563028212285843591291142036032720601825232379462931092541025124541700516649174969785017658680012863254457378725293267127745162433436012734039785930222159961775173614866679396765633221951493429837679037493082517016185284933834424250418323030264100557818831854428936408740320396600889234387100234092685238849673228445668736570423431566989381131170854980556334241109039029402069878836686500964163691705281565858356477475504883191164843064598996632703398001097062714315487174370481121700620918608416245963219627581891687594715082363689276171748516314584518070543563797072327895745053875844710075645587473724567162607587558263162416383017589481237273465832842643349842119906790332769950618788667306344903282783764859091686806539844039317138256966595923657348223568760950460020695736736953943537344892878945414299449242296541992068707171799082027511232288302063740933243082840768023659962230745072395482913251001462315228385669963646481619930610803501193409855128773081595450154979098326100700084351632209140971316683905093077706782579384891592132099286598075166477627404210228706958031691019769066584929411630144904175524152840798558419204594222472240857954524899661499631295674599317874497834135019747600248558309355697881536973136321445251140829284181280450249199295984561729788649836529671737406535027575784653418707842130980573575850987089232183386027668096878674458767393704250610529455934480000337948441186910343848981992721780045698408825618002774024697155696345353705817713249665431707954879525776642112068569434074073694165211045301707775144950296642015085673418561330879369079908598888195417742618803144141748693529301286286876979634971644124217738001969097486279960894609364253067910417459357128319040298311315505930386112061927540034742996012976984567285680075747868256852655888055044650282472340621226723098765095246795551167576075518973671081866487339135554730387177148259924982090655636246368887442816354759738020092703372797235756205852019488731175736415208568879983962553950672045765637086678684961673992899051663954734806468841632161269623214043004303497879376589552559126127334944313749318755851522035048877154206128323215542501036958420117770605811310857406721768844739241215189067429767995284346046208510422989295590153886171777859625965902453747996448057375425903395571736901793975160019987583699094035346020060061145708129727286492441555885975024274901019975278569583453344943250025780204344440868289075077439617367055383761578786385387000953573335902594668119751237389838726653687955430018415044807205276494457025799468680349949294168674710474523631365047115269827810552059962650022454407342871399194980253833385058853936499417336369643189980369532114631746171702038807086634906478634042245846913559042424514028142597209433680394042646957622035197605253746691968646840574852273222141126346820073268099128359680433712489865124847133386599958155703624128431192371380520698554630522396286001693260924761875232125700995941645450175979130483158522690092440553118658153197845931405135496797501971591305636407967874274388697431812159633202424536950908108540107486745322336694887417447584560189776395844902174934597104770315419794721755903104895515071303375092264289474366150114617112854048983628782321775540335581513089008600231119089283171979461527339639814755795610481654721822820928241262244086617316118295314627011962136619959410879358356432093296418935628950752183416094956286605476082023394390369382944107069073784215937110084355080993495125848055614260279488811735778231410921563097755633435689280906240147043040680967454142850010531291101440719318106005561952937599440981612645437443677397892845582361680657305686818893290555248377738869788338482126900338552557729632948503625724161794560688062505674398343584068858652798471320568203326801584011861225371072994592972198314039824954643013641412093794464784632967308041240315791671468107172154657975950843790654639268944164367020267173333214286872793000675256808959472460540077392143662377470366937064798928068343630666235735491883630674089690534541962549218595948296352991442506812421957849397624936269976684320117178309478976453428215921105441925395673890680258742952347024625362720586244529916142578749920154783492516043423853492438434103038072737707765701474373435807984511214989021387726113074931251848497128991745909500393219062568077239325454554691767350021142782515915371392247521510261957518125558991922377560556251862577787152040242356430080154406473786864717745485337568513303957730505542984102745208488245638018117432441150886669417202922513871405259332921890393023484952178373235334465326269377747325041092055082762701360107626880573492834106150143211791258410932812267491152949691944140579833540382007949205272620731238583327858875647790567211041654416614707612883610006243841305310501400810107987555773152250424635872420813465170781968132664730526526687009753901023548400543191030305850507328485666218923073610160979873010960457878627259697182149777459319121724208552038322309774373362726009107917085415906540069540475769464526935273895890894656609355321694271294261140189336817558212336609288093686836108412959313689766825463416180797337993114349199450619767414038367395910433250837896097654632163442968447504718087753879660115946910584698569346315467151967310540189434725327351012330555664924462530897985525988963444453829414488382570967123605338919829313649034991332122842196608736575713694328636338387496569415447710706138034367393954329945548894604432862117042281029757649010846130362580988520444565288925386561835543746690507579482110698111609436227278171946884422390136435558225224330140937115484011366213884108247980900542972492869087707863943383569758089134485548375376777196589593658751543275029493401163628628419330604817109392399879190088420348729434372149461239701703430337079169831624576605061362459054918358805245203073129842425880187096078491816358337632141776552648466086267449477751311633746098532615677168216013147819044560577089203080185215408812688822461085420684333127975848092195444438896671131444617893147412936651281987902593291945652736873448363988933899843612116806898657975674885165488863376900353752919877576930810573551739514437952727038004470490072857309252626316730990740006849045997587871320935334814799807297803068592527492154032508062062967936802909636571196554547498326575576094672472292408920613710562170097933992793206656709458921208390498460475864801144552327813602814534457954387336599185402955060100187896258232064467145096398089199675661465982370141287366468803859403266522240875088605288410671979991408544870072930220172202603047863807108861726314153139237489947781917810407754525553693605459036378161928639420022669648039758682263453758128535507962060646362022763410015625391199463257867883608702524372526283033010210448943262262753220736676529109162819988871916167866976986172106895009023640592917572185945847630689212470436502753632835065004334618318970305082839153585060525172234422933189629437257761631522268739500581359156379950090704572007260968988373875369824262186314951213988357167356388063005629032547514519966181726778207896272799165637748029910225094724409419801468690188625285100423366590664307650167100236787351898041750864760380556088271198478863911696605712575811161433220316239861953996081064489115129903832189244967115181985798502770446978518416280732953187522170737542780783674506060843688776930498302304143646891398370082693964060694562881641695291665443739084757281969614641195715806636881312484878296005192365381669691441316437821280803774582231914250665372731866015855576310005458819146086341512013406605686183053991092842220972227727666420070998758231590762943912951563496720838098972472304203873278350860147411604828520420074395960779396766574545741573438143762929561095311584820920001996834922274622233203492297879772093259373458931853036322002185233292266043263277738699295254400374606548044762949827240422914656005290459866149053053303411842327747134752876324177468600510351968025950489335416177387650238931910840665213804667466529643577196052289272879058233362671718010478707415097865327441555228155097901531432569914109132995250276991641218479890353417341802888078594370474700374687166980729136987810519134823174319971817569732471693411240421932383237581583407505032512102423272159997622559536081716396595545921520062634938327793871745098766955342878789774664436385517065026504485771475878951663905261261876717387540459387759244936972468702219846805151918260343414635153375173543983465840366500780082513376195811125396059589417188047217874636046685077559560876646149799759072572546693095018122660597563383204512084638644649947755674711048825818624518114821602417311351155337639418016198608293258482850297215641249354354937014722183714909313527465161404229884034725873584804710030497103678619969039664003189027014102187471439739304796671271469674524858219615904435885750474711610835582761860115988679925232776700779134880627067843058230376844322408372855777585082162732677755215753854931391889443311370971879765493099063043708381210797273160414688741044273294030727774363782884423977594872346291732896432364895042303033952547723285292251820978632941279227761069976483964461549803039103687476367007442072013486804209783446567078085008512489260912708157237896817953897147166531635417927413249374555104906770883053829104660986180133549273647157882317517022952925574767294380718432352827893878730585071721698784087093608489127582967318450352330091008245008946000168372896985534781567708986066370243799181871271374835942442963643209472757271104180443346013051070221778247291988409544429155924729679314766416864679909456377046036998870079612857346705087176357992672641907758648297958015096149717986439323118705902309745168343571252335874425716502513078384396781248954102878996867215558351818219767292372675088271913259289045705392169962315734135981016260634384197411159559871219485570791540409912608431534494729361825971466635209403043017943612630797077809538770794982864536667632635334220689453430306269748572960188084656490209749955256673401338028230788629806818705205412520401199904304289199124015463064896075523480019294548752880557065055452354879178955987440250913007416419180939972946822103570189811867672154904495028446259968376782516887270792953349935513985117238049116955666124418804935182119542314545793295497329011549763279700425725292885167605567069578881891666892649627826606842817888551356822010598648644268973104042064203886202141593133433565060797764837286117478541013181953882096326373978186750156702010351613827622355499078167081762580063265190907230973113261264539480612746157639746972903819915758063074587538517334833468607608896462270121404016579559790815513643179269714327811600039509295305301566405385440144681956741689143950050601298995325206242564025699973540563356851170626312937882096557630557832675616162922170394518589959392779546333735205016889846436488820731461399285601576461906088270052183882944905283501856406504336417535013934985705100635004423277553280516632501555360016855860632161801678822889859277739807082344301218764982988219507648793745273249775716467943768259786538077709093158268698932185675410221811370662891505071916924055717515372979854679547716944046087285834020071682558785035025806898027943094618467258018625571769991436669256776624788825636710239050892975798248952227094184674434146644119119762486308867522691737956084643416367635588308512954865371125074490373228827199257271519966000216669389560503827951906623371071029645261125354820180816234059316123833832787215450909054427198032006442253236001249893448436367593719142322778515962657684525307584855373583084165152477784998355609967914529055371289933804173580332233138043482601916191028053475986623854151203895606113270055649668928131675551297996763366535540470907939888668953068578101733026605688536895602118077216225892191992431173048925224971255312282117588225282650923582291225204138370082863879599408753314229202553788319259017888175978943077271131604891567850867837388122362887558552661186573367446022611736332880225562068614958467226605377935752555836093409891638296365998007307845001369945882120519742716629518893636617887245193879883914985074636701161462355909180891464878247698323775978709634559315457068005528207062946431076384817183641242844883222416345306417776492806003167897001913734414599529081813008273571202445417814606123726714401875382252745351515524245007907975368799187115671028453031873265631128191873581420504230774629722540369635233574830656204856108640934273833183346343273512715926423939004912797302888378346374423604644196581584384053191082903232393915006370525377701065942921907663931808108787655759690707840731732397323550634413585567460029281228194482626386918581367216041395463318790725616930815409969437600214768482366689595833864458433913973419577395445894737996499396501973180187582154388185804924401538657071887678789060589434397057243968067662330777502154247770823779044126904120760661717514583290656812401908880652059214459722368760226173024555463740562074808139937746700941252221532734488417063681524435825611869662613638340292866449700660379967501793763167639180694376784338621490896235618201056406140123778850988356670847311437168889139426847948538764665098411719543370289215848350725860197651524604154356067627464117810379580551105852750942447296557129458895445020468225672010620986206771821667486885596778133367304894138883039656612191893305871404778455132876728030143220992705290210617713921277375905261246803578323361223167245131430183282789876952990465506988485033434839833599227416481068335963179705040480171635758116961108988752650503945545081890457820333988805527336174058906607625678876023448996558182195071306798279843747014713056703678040027908882626096875179843306216168364975773394896181344188241688650228996780816279756256922749808740208876881035943692992039572656130506812883876144119591862400223644524800394799942440582531726824651352094895966587269366348840150992837598464647534240305615590651054491691242186078781176800389930760906904835067279512140300340459488292084535672716329501200711214683765449414070692596214332856787457468380185393045462431369855987326420707337362095268253300224659565421102188316355553221022325835419869926664913531929631878234901491587001477499219108946501280172618658424119957747844638088817923589672365496158227535354996984130293949320567962137577698966542096156183935754851061018736631402673250619956581438409588435459271042752474485532015362900288790273637151170976115751044744485750023258581485607889851283509556122124413532387816233318165611929257620999185168792428624230801705860076558534645099212221386291932006291667104053444132530994050314842016003289992319103284017248036032641173958773736439315805475634461166744219590534169466563680049974608917632616393699726800567119190081116460002960099906297666495080108508005158670385819718130552317324630173528769303497898533046076126706915198052104187921693861999113136828410258438748308631022755665240828141236888951950624472937522403669031592181864323402691929323768871517708076749523898992149245741762991858043348629606089363110625810014138063060123149436279306873326876877147445496118241966037173011732267211548894144715807643463644764575907033408588793793885511751946742353404539412252406457071214465904665673480924261538841750263649967640397964039506453603305846710659160869493642767063841875250763968961560317311929268633832386744633518113308307439130354337227907141030795282271658841103444348578821809080282082955442812200380195266021863595246105666063149576127025158230333522494707890466105078851861326007087053125210092418814033311098034325447218753564339432204046595402692850448855646142510526547958472166305729945635788271560772802148217504478700112477936570705673098921138721930592905808649783986319434663257922428340202752079620107667460469407170560953513333993760749271301176506022224078447808214938396398812005477893800566578035990431148710163727703521449472844806598021024629628637432933375005342109840248586097715946034626507089275768480320183619054988522892809537682131515043558251720372860169596095876425139501382209840496122262422817340434028089399726225773933036610298681992213377579163735603453780755018132559615693550103283299423849974751524338100115195012131780501387964656284915433248919433718326947019268167675960615918788976365260320865126585226424524119959018981878845082876944376766318492238487992413740076722940680731052803953540236603520998420550430592120388275565593048083911659730624501772525278790798854685084258555173838383385199434428891591225364411866964417124240013588796072191061349423083302978966344308827110746700052362997432610231802714226622261875057254396907738147426352215524483240080437569669907102947264051780301516189102680092635876981841801303452664710551995073160643267550404874531772816479749849316816351888113254614996403183140120849999754505654405665114835838717438107104444681995736346286893002713717643069604147832273275678903050809576914347830867035401616202818491144123200843999282131818484332288134255124888668654485270842304284009883138554901003794026484476236363753646511055008102940660991524814792631730877440642070953919991675563931676247589083224270729482954432815122952903164750609810715170949321661681302220084899907335192848409001433236988693791759977923872805644858636356047169644366020445259704868221514419781591232274757877216398657527609840899889373777508937404065845611540453448898263567944962864224707161326587499595583440080244940052564753112758294582455523833993886160216709540903950962298436975360579443816778281566351717190156086785010229710669378772149098891936845438672597300797493811034294535811892130291048572049967356221167333663500764326274058829544861575696143204789633059172525002965595468048765362628154975767658027787559023678734816250424531570274183539064997237143086239536428333798525880936563580878758721141673582000237858579171465416121120260342725573842215518015874630577677939529367891253297770050822625008193741645114168473736572522677789087457996823734527732736062994642924169967155086229280608031678771501902041616630204935075883776906618674616296470167705634418308967626618874403297051778814524340125122267941041217761721828885081597216420838479333398295669940349593790728203397800879604970137807029401457061832275296034853028371922261005939564499124150927787546136682314612894699816725882471189854476146641359747240400116726464033832999040150263527121857991381875183821542253047992153889028461653792947236379633347931270846642722737043541076853791213190343311924506345207673334380916812903926710929875717714802822273307085859022591392905258974002437571021699553265761333518518766386027619970039805239305274289337090169102367520745177016964047237538638287654319043029035798193044682863204543018914216075051699668512336445188313943158140465206850355976752840620968648400146329880263832549562721325827573448535583000222551331859622886497724944819666415281904070287971095056777558383647075089292801299214655089846527007269657168897401324328795719821723119028109909224942106911519427044773587520266021778729973938043291783216346721288728433697903169348592455772175986332169229101312996493456569456831267284809584292509355156153586820337367220136128517195799179067888794897787415579507858280400519879514379310240973513754244522910665873007865462514188208080730719268983913504925377543744202657016514854903903784915335783523919509184229410079581794626130462168818441217468062207228710462514938764917833389258535941543991358005859024298540855725044894291031130668410610525215294364058942822561951509029885349670118520896464332041879321533366847500909379474586244050094419795259305808470573044171422807785657037127947580934562908770479883469716932355169605915512903946546491946976956580104477212211529717885424206301449359990364704881686963945459873956649568446800827974064859397628886154206344959520477876479602222481404518711220576212828951209642426243976910777918759891509169674884969014041781462488218992047215397897010041004451916374635484937776724048963056176085749019066419920856498824416659259136411497972110570920048346356219112592053159495207728572853502277178691134317095074741774046112597710544066392888757183933236000244502603875999517421359497976494040004144093986809319328642332313807310726052347022269955029753364133333637683830769912223911477705585997784287425696452597304589798916184400911875473810469804380559517006296303294337501124376916592072295301512543213940544337789162781914062155168208847363453419799988795161172610284106323369853456622714089825020691286704441169025820479657650680608338935449086211438738256599464349788032327217582926945169986312673587510954845587846314075971720196243370852199677928830820417083628218867104294024260058440043773587533107041888142219209246071491335029636905846644883203194741017346112878673517942209414546604185340301551815562321431657473326661079898031090681700826887321019364595617858517345054728589800787287211541725674024419790288432253154101921401350912386711103232137314594051156147067212895932638196758037690723130321615824730407013885893346366335976771547070197732495488145171495615889159727040316443495121859747041467171509731132947384808502107073004895212374842154038998185951322490144185729193570943752415921554569296311501449384703394893076243553834235439507857917705875887328687263613772313179576318811917493997364582955995596168471447844151898543077414559430091627277706400678452622218860633810672484726902440264267413390721935300584244062259464253948368565478450534349052967430589748649564389293525069687282557307388653479795697379637394163125122113572366124201402646831987523491375325919651580619387266619391605104935926527132169220962246396992453394941681487697594502275693160173729782522593211392279726446990787079721129270100728931641413289755405112986071300454244972199825592301733559399196662588628489028016102977414728147217996074304686368394358376209663705921780035815169912947673154832624347225298003800959587555545136352485292336603666133452157849202685061519492034529021461785142032423310422848635208968797421845400387349417283201176273782264796397846777136587351119302070722256003750749407810394633895199845441663143229731608084404982813543030383363163531454052991483164256012510682085656900160302972916584678918322105869948910040780107692477825728067218658664493575923770660199972606595255433273364250389479833660143199307308480934516150880480764636667529086671693620624928739814887990436533387163969116727369702731265374284086097348697293255278854199301904168428232139585796602487375406543926084953186341346946867892358336068033944557618564870113259642775582026319256809971589448934540735451669323844921499118554933828244577076688230525469796128224404159966892371592950939237321195478945074080677444890038062443457522461155572389422683859305152775497654543180834902387291984674869316260887179215124829247615893514149141589042351050735349679694874918633443047936252036510556721569888239520349805230153122385212513261664494737046124818609901439565463727101755621611221104722479265060881879218785645647702019187081740982742638851785178231952934190481931571564040017826008047464154536425857968822131471202195068707370393121533322394296471014338817639918115074215554226048219902450082052031551588031076765688121985750384512044736027969238848943985040776693919191780385131179046372645787280056649950159576253027673424749035577873032069466976206793710953140878746609071909005478715022757386156228403119997936014817401814072685593464247081865137267612797342776412408940702412250575912833204487675083824823354900622431962572928264805660096775092853257303888341824250441019443837490829289077044151815134327901263186270934410280583331971839380845112478775779052879961424809685375809766676370156948434874317475748991463889163350433836273988511029559099726899559047151129179455591269835942930673857430486989898559443261989642534349217117176194986881381153736011925283763481221877710943925932205737095626981646452645930525413081768047684917996709459097562709945746416687312998517771315588620765543315102630236084922353201840024644269498222009388561981417423529421101204488878651762047723100723557737117569645402677378698782932384884658685482430725132245997181951763782065167701734963907291197323152110450838896369003436345649771388418056802984140532309783687878873323574584371677859623193118212996544264227460331165621899580738570914074817090777072060125825537255988182554000170967909097413385517915050346241362796294337527980392121612449422857348055409299617422186755267066387154019716495925804198284572723394358727384912980625052299082304144179642018632393359756408562647211409871027568423284710544204769273722795869343255162372870613062489483176830059503162735392722215559603719126092705632090016884464223997459907628360386145156011467908671952274422534153735630436368076582092944816815756244075835420944504148183694007247871993716080747143704805272412272057620014826556738425852761520422575616775663448908355159040347559705527811498513025087412165561605854272923028993316547354990791561217866471781343392824994159050140923632016984086805996772364631180032309172314490659601839443357324679947213636671430933226872592276995978663421984860476403833121515982463348157538913621374705062677609493915654344496650307157560190525614934341239865008633497687725820142616035876421886575309174051824174917841215303222383004188066393854558891787620068788140487669276059762638850841876717239068821513753446907420527968759386296574986544177629425187030091149613528443892051450071551108730946649594990708997930523401295734938668817859272442308152159066064996075502723760812723870585121372745528886177354454495938515895687751951802687798564825202662409444861882867270542074750435367998458468021181612451191791640838822097788641827568105850767756572864848283603702493287158198060435558799803757574763317200005449598498725166885657063033528760680930815901814105937213785607881031512925317504110509609751654253710308551748548992807927921650826702477524637499837850472341148722403887877968562165891841573565939687030319350750298138289529968303573043060712075466299805847951077322904191430681628702950900718814134214582841561163276458979779431852446703335722015183008067730098434281459855594365738971990326286100716746911509026594642792375562493742351217445080312134998741021050402625411576311412306403373840230248447393613277714317783264872278720000313243799115845410732008325471765533577884197388111987830811612825334350013791097326458045675356269284834551025317569761378314436825247785430693706314325509640762249427096972762106167981630745864773136210291691319019350539173633877209593077288021138495225308523356420091475821132150814163455937327663816462099641504181427926147848561122509697441807399401218649576170877429853908394199011888587733637311313017101357779033475620443952626076779765685385041517800286220260173983153578949045444271657055964920522231883544742831119346960371194121860939647436968352163008411309212213761236193155509118775346445604293737921516689620242547168037781827463859079682073564093429943342717920802887522112543317901141491160047963896033187722047145519259305894869335049922335765207063933665786108085920057759573577060563469345760388491080506695516093810694366212875882733161322864831431471767211570461923561465003774053872176274111366017823585584517310029820778999364681776875980577196904429326564149288895061617432739545348233166639979174849840274783540535912002226094399053120707660196672743214667313250599196153749191206109264878195377790614253518922346613960953196062526178425715869924378266091617174649716347204773896131486719429482490291989419167583088892339731174155541726809475331027377979970981756504505473602276786210697540450592614388377815161792537901060640229167380269625734343046453004211042527662303055207247573930679272639371318872288012695855490424866322830702277401555280342205573172609159292751328720443377723638154660224262722795524264047906912853466474395670390153666448251186234027804025378088666113535664410691376972388236540537057203264851330711800188621777680597953218065436753210222504280004399406185181288953614073372395066311517070005713863153021329368553801848986969630285108930120217950647072487750320999483675687172470029055814569840514467469450718871737636802873473556196853175307566120156930570344309876149723068952866444156407483458808986525661664379720289586844220392181943171512756411177614756371405936864000103588026389125969238170622763716762874806283816022759410511462692288809129433027766495947249738447309337632746003710843590785997667180055868702873018322966729256651195926100594158100365089290626039997891076469310195227174464519944361699915556415641215108714382080886807522978508148022862341353184392056663971152460890481318445192314929106328154027922489378228251545768271624596117639566886461742395371586574462664399615547890516373252182578333253564458989290595192605865979867134482744782626667898419196273605935202214966815704365569041670825752744588175728116095614818572243695464750508302844307531707792355713293487611783908130291059918355226223746867115757059377490937975793819524733163226623598269569980473433440261687965475130429346162426613460747325269570311488146969164293369071948154548179082929107206942973187597197310154261993356461532836182287015155903310706146530421700668825337970132344950607141683526860988131227220540903094664606618585799991415397814484774156408225890354064490646351061543371940040138616035071455973601427862345148657347962179784675702189899513333644381929190530085773995045234934957189684612711376889575979332349533208953814539846770285124109139999624094286153561549520156418899621259300512644209686597252899418435036681880480752910597233600836548235701919868550926035004876573788295162923741832713236768658494640005967095067783453610036744259491885819559592690251239311072595121211563382415896067374800718324687784130780969382414829151895604275501754206517442088134014543607071355602676349959757596004103616096121377362182022356398010145592493601568971489793336585499186349730410349500790550971037329489219764058869953201896649335082043100488523059429848680178555656453897152963868713982393892788628313053889870441633874853236655056254302382861317683147439934461560931076538494758464893162151583588989339195673294433479039090964500201525452974223609334873774857090601864807051699125755933251820304412057338911692494979374444181721018004869527481582486075771221724138298525297670352688504213303463703205901112769270842312247374039903446761895700102591785896614704561188690554318000135741145453848091623845601939821457698015403674473093324214164727555219087739691741737350641459518460785124018137745458837629851790660942517996950365872351329115406941185580040575610780435791910515438952930178607056885781172174213915509532072119708984152215425316479193046160498117600999404341319099118921551365122611550181311073519406748964186094028486928305502211992434386630966122998376165898127473066900407133131532581930320281496745570289271198050230834294907246105491095799550789366026346984656628188055490104387898957440931415296414337769026050643640983268217633628709882627239743023005506385167528922648375095088613721983335346069848906855685902444678886336439604378182364931607506979525366177704480786285210468209326826682897220715910980081977801926495253830472463607958939173700369328966358022050659802853387029968092228675427129133869994026633577360863754047202114992733399559638671394141599506355503816227131799287614329892459586632102280507272017663282902813951362463925987940841197742421478497488792853481329226175804296953605684964163335883612464776047176630339853772671737323232435192979733423764606700725905697847782259010224718618495510870041401552763492243058506497917469994122470166700310104432762653099301528420684246859523591053096968105843118551037608085368103331709534908134883131172235937743874146218392650171560903279402818993561269449639671433207829047319166667808518255197717288006277354539915927890340107862889636611570807579263712515753212564345879767582279860562178539046344387826022476983164473091167731376986543944139748134480038182981037549505885398354291463227532912260623917829319962139869188177111184244196277187899230573504472457753831194338517932212857660352121687790114047765897677843569635136532915149309638039104754501169967587802799979553895585500590455332979356370264077033348112055967910966088046544581991175696733538179402029774208446714055476253800166579619571991262008078166820288591586248572361559940162554777079141116006764078260807710789473437289911567613068507322496315912316341975884627647288192023676271637519476695332542049089161024916483733496591727080014711527101290890296121104047246206562282096328362667088897284648491945054852414755813392377362692127662809010703960329946262725094714117691214291335397513015143177467168584029059686222170801110366607146302062064220739673674027544451115318680357371197061263214355234685554438245653255194962230924422262761618107635327121848671103874863324167078904688522332921111501979009872376674015547916753447485891162812686867360422299435607682697833173517639411375681873118531093914733161347146429574802588661209843333626447892327799217189381104902575089833295752311385116384118101924499132930087784725362736588016792732391195667737734602923116714725275438773239540964407417449308810335690168994473265062935681240746859168925465092110914231643396643496535539990522603047114871175019510860362143788792840744982527033242516917795343239338053753415428633449200572757968191874218427218858846662660281339159122650870329556297431210060847646238240612020974088585109713450244534562696748452174937951998366013595995980442105533930579946354121565926037395454813070900268161647358075309070057946985951218576692820433593133365802104393580161079082794266448782035280157498477771875366638868714692849223359797020185921637526370647072392328071177497552365362417062631546327005902663040247398045335302040939313049739713079171815148863238516035140918715172725963206039775181898773794298335489621492988306516879726173233429518602919791235420914661761858081206578509755405181262454785358714234987228245076280218555416439373557287341317707953318264106958023181267827292621724790478673313230260287901476485433580999324437234918849958599486258306760001220473363446686800302177442830895673212065731090929852126853082935352033162609612387192704749103169411516483884747974567712343355744298126844614327533710603770238115873068862889693941323630060605042899652004510603748676961364917251172141710453972369837657482509286253199176103796050507004745275198706924383079720813365107458086253398704529503657739479437519432553660014210556464148224360616467707917165851176561085923563460948549764477962116551131870096990291407315148390390899181591857833265027795395784182519705615246751810745633045708295944288915066671592976041280335474515510043994933991135740036810821452010037166333769521213375323959064451506523337907475042857815969527569618178470423817842031599241711215728175313825528990831722270803193340184997462466150686413717867935948059327285196433573688027414315869007652087234546637363983186912020965620754134887411550435179457052021920866286215704650129595131279374407246762041922665567445333444729681714873544938733848016654282642378338483175654383336174408732187921997143097193907561528997991933481684566486989431576014380286263353313618572379316723660636754943800525296713997403509940712193373758571204555949602844456404613060336222636216293412245761511654193879168481328096246952444569546212508791189353983221963789994987057551748771886105104525870912001550271811121400833033945999772865870452341916673040685570047172861172633588496827107174500353890336310666580911221611227953520597356315423878627922117400279299276602723091008788964486719775106448528542367606806783287027160214912208907383598679167790798465468476544328863327545926899764713611821919363719709430918976095893307419509153578998159456268174031091186213611238703266328745925123801722185923759642039717801197330135454863031156287645397333010353519936890891716582118447202539404709317833060123964167270931216369379193323918425977305276147922930212301316365295613762333052845463774496678385572416305553286105327552078438940442472330870014940075648539493897085636662472351155496842637074224198534072188433171180862478510999981762322580581202049072702367515599603855846672839734732595961271044969489969280704087235561355018834860982733449421192795115963891421701337136254059591584006576371033621859435409072149507971926424741687886613509620131303193981656443184231910367414205125568633280985520770932399557422045837289243830948110842330087641536630847241689763751941939984808639276953179016437278029776888061624908419337641036450961260406512736947334321364751668674541875423533249045251400126199102550494220608990865348912185197785208035382979351647361636394852849756284971488562703642543761525303485679142181383415467656303629359432715688885113964534175501135552342266095177381781803893864430908305399273865319883923708251443497669579512540664055821324953476082446423795952046740371691040228650601644011882128168872783923427369292606206409640919596145904314517234161617915107061776717415112970097436263571691798097913107607554440072748231658536391707691259190055511285073280816770513474907414501195024810842767773577308103608450037555650268658270894906640961146299690429226983808434968138914924798862248716712812408926279700650937412914280120188192206542159389736338193225912707130384894216293191100490714922536282186203561764468544699594307641907271338781826338479026905141348852408834159704093166717645848516539046001096347293231702452686080786491800770245426053385920091663315079277873248325901604421715668749405791518967711591318927501780445182499374387432993291435543746809468340260834642526817073513602678441171175476803025782843274127129555092671085740230474696002644571189301805811218925757250024179106647302011294693754953338392710767838158558088756706132999649915893949904087497782355039210513630164671634086226936539403456769518652775268560312868088156891699160460136793560002887848650173870361186136616823370063762490171870354839165300888065752373767990681554788889386462338043367881447386263697514446353315136450336525098779541309399414676011222285012782734557551595619844872672888621691139127864441826501071593433318160552880980931375760219544842366891814048761296983574036801175518913300572269947591922872439694710724497704047329675133848537289891985144879126933995627276286301571782705735523845019366528869425030157128864909899305589774514806497400710813760206766061002833539832072435945672059494512168440253056141611504723767968712526931563193098160823297950425898166748008781526486773641449356958428795387951111209004138824350699988820915655540328925022880514169678792992662686222467052549066749536250132697003182451011407351929815270911682876316152545336231324226804522288961497091739711353525544012360861881545414708532046722994693907148818860332682826172282696478516984097556132809109049299420589020997586802701182971438113061665016560694050941744708413659317294603683231488678378340158466652627793811034718565273429011264696899513522043813883592540845087574293404830480525702636746819999711139249943082380948147319257601152853824735720831491052716081699222814186753299117955244774879202469824783577017905817684337666777689021776490621936995896546765996942872180109781369213674462209747830040927181905137635612325486127214522261680518029325681831093141396659245310344236884339706735287266383000454195146442303262301907189759856124702358650054207598252489819907503165380324950260169372305831481731475243043594249891487918906280263409122726735334485377798532768897047616726158528835140603525270885199292171330705785763874939374555940096761537521778280116269037726528989620344126159881063216825320644381640612917117212009556747383916722296235557461243901559905448832262644162568712687048500344921141575761431548788382262449382571907205282243565403066864339495278663919782619662128890293170809150693354760936306950387796483806500970877125842074421149971698556158998974787651375057853627245365217806628977750732715703498547747167890295666395835111199772543088210830083871970300163603754823203181103451963419971957080162637542560696966183436297269070662230614313186361811611331684184951612964799463540815516628864531220105617962381014438462014132524685102641379341166216666044355543396726083900293342498560592304772543016048596898781615324252348894799274995680405750878596158465639968827705058248080375262444099228426558107196531396214742222341535077003136186652290242424273397522322011973008959689104985405447427697563805962622690878847643676551937568195199630442280902471965977981411229976113099668948406547030430616154284052898460555610527743167094547976542569994432561515127041177684024726299051846873938440317490922778671374650487756540035261823361358220969159516531003029947026121379832699551547943004528250404116178992299479111764121739926937741658202028350242611557953577101928695026460543592411800668078233417498334223525119403957869035786809979573555664634818410923535663805321625058733961273016517920915269630774160353934361487650865695894416687593102819722708421300606989032768124813643408829145069353500784269002833896928900367663065196212569113708251495264130730020572342600614347947841846620763374247401965234906393029662233773082064022870408809540394489260237559302757838186727111955590362643818036944102698956099702240268518929057056341157634566345353091783644912706551465214527451609570926960198193514825042308309332402085693823257373246556197838050798236783914896441321211903253837193051261214351205434672138024917208445724067560783891183614420617219609324188787153906531193456242314305059597581389680014593272680369903153148589817842184140862703541323405714063724233441623052011460053724335454408580478491527383560537008329841944194087857728942894298905564111848901279881742427130941732502246499897761849958444824319633387713606417005057588112062601890354612585934515456181756840973147338420149518937581589960120875257562760332950030118318809564291086792993649140874263226672138684915224129903291462932026823734909566257903206428045338516755725663359643282983690679715448949144144284457366131214716525772928322838722519122781850333184575375231181388910468730112025332934330332281767444790920665632501883887499178312452779568780325185708787710821321817542299137029990346340824319822001818143016950158675647723184551735160193539741180681625549863346929742793638368312286209015008476329602715420554092347219774875557737277125358437929973367550413539009626075460177047832009209000043703047720623969311236199692306945192122807512806261090339608085511993936257664560584547489298456610516437763230204762933488331366455334573480473571567444997734717821981573926294356614853325635257380075373424585696273226443292539121854835008471872615376119359921175544946875172209534021714967332300854303127734300844217039223565805237469978119523847444933383738577485114274622522039346757212327850661052691327977306346288737262224195846716672022151680829100052670223641512652274077600461979496685044241492903303752615324755653009315314557741560785488843720415714060087651280761331140002151760928982489862945062647986397278120873344792984785453151232933405140684725574692848626315035477092571914420142218588780257279128331177982212336807793116875865477713999462395439860017821714044511587793376458252175919910881923830051663310282837236134127214072246237953912933883641879315532993289487987486153861391523074689174100662618607772267913487136322147516568508441991780694861954601934089370819232141926382775337591945703264502363043475687173452958399553670973947311374513943328197791122226939725459124938379823126607096382225967019008381453286290461060658685632097801508542233484811059061738522986205281789604950073257042722202039361363824795831035432598550726214034098596277860172168955987503032882817680409468520938864033636523649442857653338109795334202587523066099473777917483409964056208373304316767108759298266668435467009599704858953748415115221450224994544152838657802928530176585629101388144172669383790207050034191012138679134635465228748140715338202901919235146721268382751000173948051792235759103106294117826715838186378195464884312297363020759072949613132264235510849102649984741887018127403987203067935831231548287878038686720763454984951991134450991244247310505227252766832066034853805673485126369319466529925162902626465894163413960915097218723640275500269701088386832494142125712048869645658296361609865368598837883902802070607029639962089291692420117564629212717841443866094448415307132753827418051247560470084561419607860495448592558130716152717681871096104170286462445106386992799031329802393832292307860024611121256253749299206962360554973977933709055091506159958074626476930706146547336572953880108465930773709264393270961733589798755133298517353358057619820375607173964951210260568242153539432206578780654333681668379183925431029629978625583138150842902346041464285063318207802667408575042965493539544948651852756470881435132319597349789917141516937325688338933162833896451848870322639893055689451839191243082932515654023675385004309455227522986219363499930799560689684466187459894748823413664085188532193673114375894635657021422230371741481201272628291057331857839227334795260680041312240444469069570034326579109561734228465513830287770817092800437032752644557620090294898701726471822893276178823467995953896680114028668705263367060063042612994608494995638275599060264777652197025375830641181461287543876098578289963422105950225341504398260961876098352165231654331697721441251770038039021598137974891320292927755438711703391163224807524657249729623124765093517943567483811431528641333029089123777146612469044864551164926799346341556211882281756423024051694895444281683141404904380578860590107370067182984993650407494702785573862720327108426027326956900641201555809469137101298425529054495764506457560037403149458790821054735591136399067278064814591917064338706971477366524778443386302556983881025898793095019713128407089187196967493940026571940572215929586883457866981031818359493810271931161525153017409040319451723832245963305267862642100074573633679726461435297149888460552919078229572134569264638347921759405780513036734887954494733446456067966769127826799049420036288069900260352216652526648809722467212129461678228224742717834105358584909381808438207696712262215564925244641011600663839118183087308563542267215017218891349111443407423167201858015440968394172184552924703066633174396992032099913723079392087063326814950270241836323739355756594835586434275852715303647534674601181623121808611137993248354514822898630625369332793747372640469312673756534019973009076142621228650115856894482080371428361204858316174750390771287604650336123613522431214204911409620458582922554357490090271711431005620277966427328203684088351421899736766128515417417015505596692954335533849886870232490206106445807169228633433918553944346597418310331545329102591303606462266687977945573490454674882327531737599593723227310371044521133115338289304247739724195727440116541848431556489404892135805570855762755849553488919138564379163834240893960220978801958750476141645787338434431980873515751667496820037915379610297349443210947607327004636334366125907117926038296577650489833996820052846423420685449469930387124964664248581160442000466693398574168555172983698292635849104471793384468325043384471758725269936686233757079858637995117647437877422102959326217388171799211256496076654905036475301128460597199864223972784339196777403895823191755732599419379008549282598066076789498548433335533052044297814686422621546390705667804793891317765192204993576166388219632235722413875804881872875547783430553371416242915918144072491018337360725861313058583937963691373160504638653787616199765683527896039165412211971231637064638435087505880465755319672008048106320831182153795613800983535595260936370006453170806442028883772669082680094247506157736530695369994647344426417990880723658569162389963651757807623731861366280300067759525456983035935020931034010665488238760590630966715258031902701805651077417965996417788950664060278847170680779275557035102223714730679500650960753805342639820261540712721378560322743288616802417338945979050503213797484661490309530174023009549575261795889698360970314291408480458384201770593330872789882921065398608549784177022680019943172312560727966935093784616738081453471081329376345219647441631933117869064998248237276162056150244439447232337910696083968856032674365944761324366862391058343526372587026552727235468109736136753799885434022478297321958647384707984985141728538675277923065840917432060501099102238929818938645721604168949234020855940480597988871990753899448362457591817958726478548243687178428051181657010359994896167564581441177435999415574156405419809407770607818178732780883923516652729811729470451824894886940253978497040401257850170852522948003264485539829339541025049341054446143561304537123696168220242708754680322577722467645386906917358463290996597892708572413606852947228418998881119769492577756734731492045418824993538607544853832734931602494458301840052011005971211224881899260140903390584301410505598071884441547633560933892955827033563839189207244115662413634679375541673890893091868608031263789230912916607550098980840430877173868768493062385333509150410600038306016394885368792106123894105743940346062401637185484252177167545163976002550502264396115259942943086934986907462978375997016129503084380366066005892265852930563788669584667848757260025329183930718547261012014353181230082628245390756526384816628430671241409153532301737357772231705454533185733039863611629092807965140007625802958683252113035625213499854006783290579810026266376780517206247540163537025216821873552872040199635961887360693473067284096081288649892281654521852408328279128184938636352722030085982754459989899958351115743687878881270485571738148574030780362942048594206443341579016938395968153358527750878157439719243227798831706054634005330969611599543732039412995517719740924937281938691042471916807457558054131728168336553796527595104025829376600693794847630502436866930874986129115155790299089147511471436165509778108916891593890432286116309808961601543654239707131733987625561383933492789060574714538169156926488201510262147218325034091656245429353117328396837417555069788772460439855626108533737402877099728804761149157785765104752908911381780654692220721713254159467978055595740544953255877928432324750482025729610721193054272034454311190184326515998329511924254995688662924512061554435485187784337602284573185525530203857806799642333473943283255079768143174935290365355235708336227295402976036224596787022467961087290065369158110329772411271968718463171201531087202282912167851368328682889984100630830596997329512401834379280807586687788984960437727540275895229293668539226751399282371615964473732982701750908375680274466691591111497799446671135691088924379199309424721308073081984262593144347965790856700825628858836114463307069019106360685995185387041710623856804324112299406997697652171894899349718804503864321759828643313402327317350344875527937834864131041994965955257706690456718435502156201896727939734268216256860859224881131666473414298910138757127570483051459436636099246610627201124409872399971042075654391506863102013575984601467302651199034298650639676000696687958282892433978259058748567826269263303468372332124066157760295156537226106822903836613368341504999895934280932018654247036073590765608162195997593438201724618076958178347221271503991239373308059816434946231367174959999463042117638181478301910213344735692656258805710164468798455661720375874281490998433930465239312200035644248650280200221038723815085543608061085953817427853246549792311015101812667413846629462674003407290924306775649178579342775165295098460009862821986519350148631413113382340818641810195988872295935856034372242367239601514627896565485335331740074198424260136066735529840754402573177714954021927548762566366320979513483892323984730934282729939095492262868525828037625710408140414070921533779824712193346482520718387853744500723852593605676595762204021945192479291241307585464859181278455595125339485377327439546532520168622505372850013045372400046474447907459782510294447904759726899493753746928089331155435505142051612363683441007349842994707086534872826168261194995444598888503596079143671119639139320911200954133512885508992493392853794766561641592545275885347906803485930421014317785771172451137418462432155337224056541214942322346734100328640923722757147317038093058466611410528665349292157043843719387582548918498944658974892112398043559253649190865890669173908088675009132330542665482077157364025208162483016589873036086598083796157673641177362734669761566653921348293456423991292807859979878815204292215190914169078549736187251693099991322700067499723351557657951436647470237487661496440492613486082997609783626049278231738894979224685209775995080498826972392495765987223064695118767799160549567269969085152582265295227385885439302173427475574391874411376633994128594831234384848812794576013671006676165974395896325545306708168429451211409122120091086669899891500102055692484852372255421310716613919828276574298188291751833720841752386967682805910231519925312801445377221647436825950860888636443467208040799574561042901019656088083930982871606160491216360458690862228973756455741357430715910893672423316644773328296824188314921716494972514011949369056709529615270432919617564101018514059608395422101125300432032447729045095686728686928379789944533473254078320054283548804513088741363193695581682874607904656694590040744288418738123256769967164692679986955886052080637298383211238624681202881704348155814062949883062634593344998884038652605737422307385786640002377415312885909455125753539336940869444293940752218284710010776658095127567020147754082982594365539007779061803003710403019109218529328478241165518909228702901240416004521493170935775360816342085655233201443845388958342206841713882399532270635638724261133021723608875319692482011790652227508481546536063468432083525195108332160684317334365846805913015740878701822959876582283002042528355669320450198198817145826117159840001172323248462236802337849839057195842083394188330250004100260037883422114836730547496096779242970449998379947904405434971089626589676691300284990960386063046240093337979092035755162551666400571121877172390300150396095405184581699938643044980401039916128659347449558276066834824890933733862926698964697053174156089229666242891438192737235672603030501103415970150390759411599156179251165622892441767557720263927108978526059947131533570045904830124535860224570771605821233218529587582203051937289020017734320619428734214752378860830070299796531556810301128799258939183387796470067520270368877240584066436919090287438763388209714580101749510134645840281278011316813989780650900740767464220963899804533262076514960825977452275842390413450268461861681457953371759462268303063666145365992028030084325285149817881771272573867535502851338367923056743243686962027275690495694721422424679884360411922631691556788276484222391196274036714598974144543180061688629337635623975254816109201806289442065086508865174388445174402936157089106653051819134408352417385390895294733126909002288147617359240547275574100872211860248070655273478546467081003325288049487281884647664513871948464700273983663967869110872249068944525449930136135982302100966496626582497907417933026044796164678961217630473547094105905476778743627698111464819594676539533132602160451880568520123818538359935250905586730481695893931266888871072451637580786918529804644375984939014986408867291215615146935054468003927753771628002844461708872834613320160278469351417103718981359285654440473889353364342252995356306714864357582266150708472242121395749058812364726080795665391821078069759191962729961376825052719016801350182593650390431489237422218299729435910504766510198435496771583639035605090274409454737620008662551895379897398695524944209452836893729162255864458818572322005097340211242024270133813809750638707368786224134616266076141865890367575672804946851392949246947497670448286278503799394283278791220332971397543843644722779419524830053313308326594126816548143183672418519071645371183945618853767186114634510098763556103968824034693227431638685638936692078262878666463162305865623208034467033224148965844290862011917977518360789811784708762629615319400347815464050634565985845395933678392047177816196115197815991533483239756111621222104528968308713835459988065857801354859374904263956020172957868115494079887899895278594495312912475824817137108859096914070619330361800303323891913216840242371178559414793817512261537355292820484620119087835578241076795898728264838018836306051625874581323807170212707031160159931956653211055908684463723011219393528829932843569560659719893014841894192469651419504713100362091384684087143678688323812487187380582217796916687267705286949172329692975741293715765031048614982649963942542515355227892655817659328122813519904998628338917695098649870938852865224641624149800913360480941616720693342425001725333590241224520696627428380607915709746101932343274422842790300921971678197965979059549127210553864472407600831000588081819072447870343657454279475046660211686153282079367042283157677410978706565288995809215120790091062488938646517486033663048808838585836547541959063529016960795986671979195154726753999884776218884785107366055679223745515800961273463703729547099641448954403570700509795971249707914989405750420165030739210083757394132816578085719802851130424796134514504277763666054870573901649799638800674927633569990174214247086042763368701538895425544860519661560114570743110126783606189763376540859558441673969989899171468666484090241900149311117346206295823077870579486764638556758721099513646830997771609454655720168122853937767374099428303951557494531692065820371452045827753578337982711615753554754759598809028882500151326903062183753558815228008049946219926313951475900767150444120102864042232346757214652225543337464540769554429637336518329440811481655311231788856853449362565109233822325088751970064021785626240504392039311551274241981278661180457520379031352263821500210772130502406624183002862477655911114130894749764170442763287774736669514152962797298473622901963622315436319141841799696896280359277506155139875578536726635378140081715318318793314798031663073541838249854774614347582122035033039491346267250843739731331346134971878652215484795211328065589745100203248729792239256892753749027042598668561490405375284504662614426425991229576994984595616886612934274152168604536950858277105538068424706396860778132899310628551128799543943367009919152088861445556457442279253309475103278639998286086647782469776693646959682093306304832523027286162884091854021075857505952335491745175635055894316749129117086207384696004878978263910905625739599487492495979011090191614659080207484962639358279265058364767670838301196885550505186157980972185298078202754679077735284594885548642095718480957735502641837966220105606201767241016475961823177144419881009610279477760819625624682085457499375939175577255504390164427090909940333682021018189188094314468725119448839760726106428947637705083816809284728704530854716107278666310122036688758290646249653294421504042608960795596028483768115833106563981887154102229185636375546808614676806062617591254751326265896334165706265117268170549301094065863026692204229894830237644323671421946364900320018910295105537319742039399303809428707866552914769288138564587814966477980823314826640216655484671340624018597141217542440978712771828778534134383738258099537774555668639030970006149284077302470091720199524620624539198585923713450742399985171822495428895132343503182334483788319295955334879010992117189922536529429365336258259539094655296358137449729369974651187533853748709421770808174570174225160409043884612157412445285020237983903699911389696734778804970420888639312843891579868614995357206376948214920930628125131228080499666262553224283839917352025667452522990840994632586468341113042084589880324142878241486082621057749475330037706021516825542168588825520528913719387724986908202539336294047304750500997044070946935891969900533478304463581196491048316381606807432397475188737745048539320801189209217620032541285900192128507800878010809612186997215672787878360378342850502233591047386100379003368195821534795312420332192379118697973810932850103678278806081274528288310391831570441480372715269111958913827350206266167881367389300589434987192627542175867837758616929115641969549780500502717441482142253177166456489762559437582676430949126055292857753556527311492956087911082159619401757024920446262077946805377695544163790238444286270760013358829372290589561353109924487923773970012638010390621036297100540090233266205286855129238893654007663966398392572450824496898926245992439438450876557890902818985683433451099619638409116437670596054841952535056878723052067916205797398008695875004656119615450401629767770096547018528433497764467949602803722422923120925815523806451507317582639784897165956107629449587379456851984590609369134973227024282382935848347620097279573203973908244049026524593739625729544911772960859885910979831916191923715574314777305613275865030186712879223339994092210626790946258508116928279669238172379855127629935238608831771468972857155910479691135290085367737548995512471868903957446600048479540144780288223208242567018451147545838594639977604121232182945120720779081768233151618455421959874974455890151199270623605189634073539348756409531560340706935958257608166769558749209824048066652756245519232200325145294175539646827190235219576379637897594175052158675420192853655966620145045633855278357125671205128227519609295390924578418855401271282860622031840304162523045733499198620336839418549191744312814170274683480533123636546408009522798679980816786143876702299176420421935770303028892406338233711883166689234725665314715426197369248818567744423683067628580803557766708524939432726759182713058028204744986831092388451839656929128269141358022850879202638155759445885778391763041538247774502736300479676856895905742907753282403183887419532847250575823699898418557360973793479262107564800127606600568485628952962703650334072849924570768216606004308519214499399461592740186790670249250918808425497538250005736411527656278820683168374561361164661059452960987647876178106573256994413006960404412757484805908154315252191475930781041409918043677066395667263443535624561935640751356546727167909411879488480868092309383287382250042851308615564673823134489119765303305903494885070904364085511708968159681885355596836776708287592695900122268130634079052180831417534288387501316529218766333357431437101016347796658883618869883499832898116400702596550204761199068845930641188013743352809379510983052205865755190255331324739355184215726088231016831817640972417966428217055392357331823599721055914675809909601571254536259146573583451080849769670807172669437183081249664139285293242058148352262744693758585695716870345022377577778359815858095456674554627297947307975693205085626405035283025567228667754448284086209981389793037092532642596403853499617054638608372303148948100137199901319701262801084969868327908059952507493775423599997878374465778371237535757852677710638143561367890794737247924261815992801915542363584092241092695194986758370140080691259459445559254670473203928004701116001559541702028795035929201770396860113456304449233397743545571654572714951735345290462215877669321039725654053386823913058096600212123248311387049072616349881777525063398803735283044137885040535291419573448626221480332949544888908545079248054268374194066918855516757216622110920899731852667678293526613290427617120717343300234525891953735574750926874315293634284496407717856739958438148942104628518103849643427735519244385401105600364091860906598300233736845914995840144499012936937258939528898348115564558106103079454580475664650489357678527521118340799459874420567550698461628297481692743403195744811212692198913243550319837054664442496096363374848655871436934240008426830694664726867821605430760555551571130105499636942141201452860567154928145035636088579354204498831255719599558707858336533055121083928499841126847905712972202465501387082052447492723419195036030393946034767708515347254338076913543021032331182709941052543731637179189960813384440367350920911106317337658740160001869730425298420244888527033172514692497475393198235035252261761609438480970535124570875131868926737005074427741207097904073463122620529000639189290990331964353335337782773033800956435520237281189341422221316384124662187626562926213165374744095230545401691905912102983325487384431499690081791766624445625710550014060366800133249580906410283487716419356471430409550576380385738522098716167959104852220807083954438166529535008774606811360273082488566261392866772837170303237832334671640641865105991624817670706345653146764074492658990400249294338203476654827303415226579042351013109297567830484813632976397632274673272990989392744963857214412908487064480704661630671832626973018955052261750367044376560638608975474809199526394403536046543998237735619024650269312958914022210598873408816322256258686174453244115894930355509977482474151507373411947573337355652762741851916424514620104987826294536895088446232117635800351184183592675986429712813985384144690969171907995167404678189358750274435035511807996777624987062847592913272616884488849391411287453205724835916236067416163446388013123511612633214157350735873789089864603319101047904951088053276243634380195320531364134355459364704198439973273192818302576008576753025832169671464683435884003914203707242670826017616253390298986715267562219813060352959484464640403968856006481766109033056079065038768968446731694854343891836893537933416898764610405060241093598555326643129997593902636796969251376936926159102285117216541488921572622359773667701463984585521047074763889722549022179557834738536300819334378988748156802769759994951212544157027137649027751507877994910956148957426227398794033221282575324578456195527149717737489231107175800448526108753397144093342364167000739474760533876638025429586355293691303476986899061333624590847353805299916952374065057657039349015473906556528925808194469628401221392455111987603807405660994105231164360192568472205328510725875883708878783540746177976015317304950058293812475052503021700236109573670907840223511622259723813014440798479181330321054432443110271979100591373809348377586361399771943672006559245699381470276191846661211804296171866528310695776609243771615983151245936172801039016365520466193709252512536313965592011778214276801942804765865348581587470311992677097913350491107205165243246231253831574487512954156035527502636796145461093444168535781027313899699954686734351810344325525951693002330050592572799781590482022358905260479203482507504217173455466425312528525947844068421333789797245599838145290249134127724342450971795118644615062815283928650237212926436840813268942316931518881895385268180047631030778038992441215187198582722254498999677875145879160239707666604413330594001772519682882761813890254014214115403222188075221493138730394389483863488048858725731296054402267540119444344271239556902379071500713861064198583888795688054863351728084446447248132772385956105213013091015106264293276316247222859852571026371594629994013226550518804465739898003775442184629979193304006051761618798602655576076891495679624033020920353382300641985751212805490876812649998662968202160083935774256923900145096765518968300114985803950066246338616802255066870759127483197530001455406015411980784113494829465680601707418219448269420291459193117972944253523513933101121868831678002326637691951938989304956559636443049982636233222213173795863375272901598026762438208490894364283124967962162500163529966893044625845804167249071090414279544743227764055860644979937748159790612922202930619833526180042611796654967580548290181068947372216120265716263043635302282129337245083943534370967854324380583128895052786635657171288036985284548714950798562466555779317050790289986859714364593077973507014015227544766934198239263898929453534319021801693875850287786879702046168231973519928076697586512760646823839169601486711150096038459388200510615266462562727086373994715025771810723089620436264155255715212790458354295905910120518508605199833582952027644524251235773515361451329122133578341196718707585660635000297664587218996568468098354225556797699786152958316206574320737210996844061946085275213997207746028379618294067782659809969835866089743865103656242556250842354354563015121971111673283365507058324791727356514276941098498635706661880252843453611977423490001604109135980658253251047772348737585884666978580299992241973665041155119628160047321576507005166289845399637919414471961275368496384841840783539219495160760752984767084138274604403017707579996667675686125361051400391716817256780501389783718658379689761501720984806022721512087636711163552935619613040209273964185286936047265139668755630400875358568683131412868609228255512422695956799303502490113667709364034990374845874198910890189457051985781247844035757867139319708554989380999706541057916902095988974987384472726137243518065616499316389735111970331039397804092809479973433772650212249714340982378236519658928862792232779903941820506856983767116623772151441202276633794917374373422831797279401193745390490579714461718360256732214055219462186285914543896562340248945379811955964968707073021860780513193094678528484442021284324993071541356442307938627252658520849226948439939485305352727068233586394860817057740751697385212021062895941771607925413069913460814382463286693523126590734303668095385956084501673932290965428288540978637787221825907274341956466116595934087134481202995796040005764146848563841920840258326855212379549624891158626009400987654135858706192511365371948148608571077083760209723746595531144030733949423484486152523722666253172090816226940002112275918342552982816899719687610143851919012898807424280528355553325232571548587561447752011946801115509440542965731019362159591875821948220747561530783348030085499433087398213402707000311285887927967396273660920712697115138195377155464106337455584919631691755255599189224089797833124273545384179602784595898647060095284180866467711094641598431500095974947022075958749369609348923513155308795226753192288751932690569926959011242800843780897580223727211128142771580921578619031438232822215843119736386797272276849581363281470182765236169987038316548057146175201779780107490052009862225386713437898798488104450302717738606821067182348566610328159840918571490847707412577372152962362895142819394934492310024755294687688142282688263381992107050031482296907812706850236096795245615631762537844390868388545471766250548688614538858940190650918410158852088336961298773167275269197562386427609513694583842618521833895705186413263202522931391348380821287964338813629845539042373128573855900623287197915909121817103349208828736572596006751034516917303484066477312472853649869703225505802851210314581397165500540219991258467124752296233047947620417483573396512933884625986054669020687274310798920093600862996258526495569263422443490758898712075405572391778889837474006283110359893639753683143163791553508445994998151790357191664595797264053563579622852232320999562529072956596862566647611821743688936552658420973588048382356327038462917410427463403276404424721791963389233300452352920028757301356303821117289713316943637220617508581520290849724636905566762892184262651781976519538524643036425620321295916089585335981540706502452521657088226438896955320033071238601771994269799874271196603530485283581844146085491345064443171308666656732474479432280547339137606275818904283656586598954664885617098590233571893647110221915544801416081086328652657202503734779658698028969756875969566551715729978174149125519450833779497446698060268643181523422924316776326510155053746777092041564764624751249672301142884839539706060560724653142273218895838355013985022479806163823494536612899404093559178092658682360641984947863949273925514675962185564843402871639984241656407922432049921519352709427492550972098376405547995076369623700896158531420828549780644065756946107401242830116770917540880488062665750487449700100644817281703371857168769905205043126912675894235464242632192681612607135255937799846876848766637463737084830913023031875975519252439917826264027996616367094369112530086284350297886671483877355700954085095109254267237087162850872049910014666606934352543968132422775052041208431177836208642591374140370189390584913088530767180337775977981545040600450842816926539549424241734396825797942963322331213218107801293219793602750388852631045872578879049933017249371699290336354529074965146405609127548752881574874850466564788157133643242701577120650882647257091154529355415106455103509471072017880017924641359721384299487104597755279842745069774265641488340683008092305464626038948326722396040624646594574202522108428812826688967527898024346826557896265626637974536891092934689209248410970235713162753302389020769867314325842760948183881245857587340140970686718956181311222947002197844824158154450981988915294242890693466056260795656643943393427998358823571167575116329255621499470951835223312458109131586557735917584703694148488150386326409866052441608994421423724467318576854052616459608035904616045947747232056287891088699234201957552645554915186288103709855628981849208453628176074175578224666387907260467755483451744348189049688056376503250353592627137451498862405482956247369333449623309027391137081058407123726554039444066616546669812794016117438031442545836113138700180051064222504742126749539970759097152710314165536334773200549635491466719499256643771113519647122484421338334482991474019169297097827330482096570236574416621640413859757199401107550548138356750975367702086214802247690575931284579612052010606527221595997455895639292741610135447771486602722228078789190310493304860642348889412653650919804680472667929079707702290502025767138443684581563482900222665872245389242075867812648074259843103723144835073934916328568708798935308983035538438395007970780150899316677212153557850476824480668120600816092524900550656068820053943975294042977799777390954812182338828159978628439344893791861555638458479425929894905438450373697647333225685242402160195904472401639944492589154522209473819728573560814162944201208296923421367519056921053373592377816006656687636414636657904357378244366516685104935195776579079193354900542453748362582641051684378644502959183589839644056859368882636863710502768783853127777056659956030015723582371471547219056714260143368796646843649143949995727221505804289921810098950799344944214199021446892553928676917510398246758246373438052397350830280687187344606418762993203121704070483046129164263198208628507869517290189970014342896826244178078191626441719504450757666856324245674581755185913604359995857459882503553846674132820452537010805090235114840481953058880641604082355235129412814048454488103708569426260002716392301008603721424248429126495719569873219052427563394901622464546259347456703005672837508467249825279836734956177089836516547827889426186105183276920850360362178003391524933714844455014157911625050689091071382758022446505098609868832767797118325793918716216767883562241988675386839315756589776865201639452827388674406517875660068949821735574807444325577590692736378481805133570962701897152058909708119862005227679349913304058284567203585664724105889455308752236461838439640259601125485287660886628483076360128700666722802670003614942302612541655045829616993163843705829675070532292691091611967493612737291631205863688479052509527351543806222193273002895992407939074438573669093529492586894401073422178024370771528161242531908822717327154338237401474543621843332568029599407713014983323704510969965453202745335070217703707061138191051635880307474770819808265319510552403434618908040877285588710261912991092295950882251819205851887441986348625188245665450780329536348102634843303083724181136556278301939101618351740322384509791468752162387714423922323245576364107974700125539832471226019053048866664933322848632905380868351709643540440256866791168844434216940251772691672005423658795245864872919319419639837059108346595565457374554274722525638720491964846804561216346755578001839114580507202910409177461978829650486123555287269755200042382038183207642553640963208933924544967598152309215189473050197853510015299573530542811283648423659474359596095956980162027530239594199533446282082649792360794218868041106024158741508575194580615688808343018541253781954596974142367787418706672158427522319352770701887762803032337402862660420730505237852035421042577244255914042700874907643524826938681071637669307303727237417175424585224773575827029599664985410231151013874323704799159178790299448550168255865451538812548574254146042912012322855614889532717717240122627994410826869139972987438255681581112623873262610426424919146730313932407899673786143290414208441146741535167426897337032190690287477060200884221903212516552891171738567477731136615373439175196270795492161709378005434045787378968957940658402609222670666397470647461914851144652443807415205521286862020067172326368471796723154915335949245342892887485931766426993620967340749774505307056843141013326328777592130576231470087437384507626030587577497873242071406651361799495694560108192843193736732841798935189595423519702289347297697710497535864995673185046950987396628013953152473360674595746536734225096595010987669623734140606839350348198382718211868440601761576560254701139537357267834526945596079177094497172723469473343678038722377574791686895552041362153801428254867377695283703841427934004400130568978355622798607136070596604468533433322470819960517276152201080667106523795019070974937418216335299386518917007788988347636092361880526906006408280797134349789427595928872026107851555411239737304609759231788346880725383510590800218660449028979118967259367552139647290685797350736757182169740366706989613457874506109712035014795653751641661531216473254416789277507245943628192382562336298103756532891328239232227250679417094691318566996226763008474933294923772482025168055066631619903457800502962160950971278313497549748497080750146928617797205392087735573542634465404691750787836297830371222126344995376045870682546656732927753972286036781924732607587537503639605557551524704479046892790074174408099162153535237955159316825039170841157338947214833770587893695415348273160717030232024929094546655312055250126322531741427372940893582323130414035967091049257183835201953577511103030189373873667295688347590028046690150280415692206279410789768280962696610121374881195563119677798046812493064783740531627476062834586847164594382436775342760826955765323442760533997129870805208989856144206593472215753513573135315096432568632699760118167688723309047847387826108830027187650260826292523319447690994041670026400655559713699181466979113567780657451057296471196382643806989602338811353072149858536870862858717892687962978016089416393630120941635523027773429963015263435775125041351983411873620583345473118538074572684337206905220856255010506100937942856140474184559211793392727085972511528800569402805361411449240209246208794874183622485445370167347935902015006990894711195009547716996064515693409809576087230611679859305447424945855927637542655079098507826227452414280564196195794701618141018859396702928840881750713269491264514792458713883472209570125453762871154613584471013113232014954909446401476000302376328571713953654714900135558696330692581126404792005317280921179128700967881389373295949068769162309178222864353334059339679160242893274844466315594574856113204517830646491662241813246295767509185902988333230655145023629404347405492556117642216093884711734189574071998503527366986933866985170257393806602302791062808535254935316619458529388540134761981829790192702699755397627097213320775214288831363827940377954810436396846216952494822984432296896920853355530853174095397100274487325283527573624794580127804455036106064558578035736262525563606477349056863832460058826457299672867064706881971880489959182095387698672412610581231337188328153873053240635171604883731863483194487855245340213105960543269787362789902736235815268667728648413763217540668998973488261186018002936002236261588495903893818383478150216473108913836953738086831643699087980859301283735287622060053622758728767946579168057635814324092530550238865482949257251276097710430841424132714922301455502491538011651570107259919660889103344587780201842019868725579834858927941157916548984180796559816529244002860008928330899598461251541347364124755370565807249607337289686395655103449758583001718801392934081593465774074916873140199038284277122623332446058875673983859350076951311855631684573838655512292940803068422036256724591811386063504801552261670635649642867323459656693799243587293291166884983936420697970390191593194559703612592627063708371713607972229244838973659949263221859430952934455170540094592748703284351993881402670859152894963595076363807323470534623093244150957569185048089195717391916531000241571429356686909706755384850261080407434064574263428325221102071034503745383407217192728609307970908786402740375603419620326095180233319446604704393480054063586910294183143819807662636922920151962674547889054873008533422088159740328925356782478045723448555663884299365178593815428714734705407762504079807108683257127209659524702809312984905979030619675080599444217988506983161096380431857573493208970279214433939134282900983890292760099810349716753400553502665754851358206981718943173652187372727038665243420592696839958587716580753629304917458210275330126702362227330521370927475754927540322486653632392842887880718119434477544394315746337377421905144626384014838452230601326365027884514717047905831805834894085694942499441515548386334237720406996019335803137534497602844499515410901138156066413232943105354035663349825009005341362149597475298028239846197283670062105846139778158274676579826017847296576463958941877424963316958842283911915905656402281934968017581638401394292081420882045469029946376520599881978317544801271199655622131732442716080219316644607184506702451604612011797638272392113483394387989629058401796863609432553006506288897323925136163270239075239598265348939946806580594876864627514109406499311534198732172991431259100977718868694557124444935828613812597646375511342798457376202343562568983122530420590214907099967416032154670753881650296586399155315134290551333165324830885034701954905567448410103218765899567583945582382868831081418628354731947552527471157540254348046617748038786859837871569491342785308294728873541204319023209059529543286106613269760762669266113521146625276984127734085241913826858280955075837578751829441953816699647593380581097441970408876883252573743856182591108975019643147937257207080940589605539709828580044556307859986110829784519803998823094162509868026351628228075608165070483489644168361836594632976919733266450443327026529644073326083594871297205636803629992269220555502193613130943929256168982589380953115434813289518491654287254628635197810302373003490379917930768861220453265131810138168987919567846678661443310580143812599127914158876671702906759990712229281727452785443191763775186488544690552141829475460755373456060855634642039617667095752874549490120466035196463687357729297428234750549678654459273606276089892469782418907136691030092667819130305591951169569317831975407962403384211046644652404581868639326096463530334711292131543695714422067237270190321612831636606835353591402798852609531474419767057640109075306047213865706766549972656139956259081850853030455592840761412465221809965435307163185074886478933137159804019105801024255417135661896120601106976120338712176953627748147024046287959447965689291666561516291177369461849461776831663594528511716414008796109655867194211638165457893559437474165960191040265069965376089108849054090880766242236244525313285217856872117107507287258024370274958356646245635139772059647787347672137096977874372222228544415051625814759001600103498734216428737941520917280874385287068745299675850634623615656838065684685866591288392993987491928045097599357621915303453396402416281637564573379859690128292741879627625038064030579982239393509589219952785102916463804783293620919278040771504187300689178573817825379312653226956429848057505704338593699343393456044962325937243304357667147711664262056671619377737577018204936159782065517759604455742714015958506242086143202210279470032864409749853119493397220525601724380678398080630198033038714010823737020217802399919659484742081004162463139998938726781296983713965334369780639466764286002415282487378563941292793538360770760830075008546883668496834473813800019480999463927939725480926175571232307228799147294996278293181211799953119139336829142170800391710839203996253246571242671148076218732388866302732632605102274855876858248299627378563037502052629488316960894901291631372634885804981924875455352488732623943936750450165476893402068214585655661710507751194373805894134256960413139475819197066823026324234090244505409588341087688988058360019058008561994910332388450133139604194546882835906148062791702742550569836303868190408076986074650884423677617054622608454397222194035542026520331044552690070468827745821456966366744699942884173471148070234795179430778361527574001167542381049782265169967932701790991325359692564131021203176759602636795510869259891936051529316116399937906052216218262573447363342026307505726425225525500696250372133805324484465377149717057771217385550214036410911783897214179763547317648609973237020876571662328627364066666525224448442370474312602701940529325392038812456116783922607147800119571847504556116152503844822082691866745295001945479554742670311953388463367504753411924305172890558306396064273009317899033971343931584059161008586393822138202271708192475778210015039163848666017090813909135953340619014626904240956805262401070564777661840736519965983120159148619124791045328208490037696235790452049281474814484658172687429160111256780098117726912220907023785148661124371445919846685763094737512094243352004465053297391251670830182554297130226067466098005260391962755798389509069243190047375640183607454934859101794475577162863150554887610286729181867586476644478659627827294039993209905335496913847574304220358026682005018352485651517034209943110726037475082164349588541432104573557419801182940065163845907783130947300992993954182718180599773199552253765623522616879880482847203149589062569689442427840761719747852121117086752944603670533555703336195269940643523308190957437080465607841235006193415649510049733173836204004227344378915789653495861159191813589724449560707032232278280157914855808866326700924042342031392716468963013705622185503990346229467917697832970152412757358458013089759525863985502154636770509007033290797558326525697330992519942335234267432452628783434878039320990147869741317281125496445904277797369126687707533793810529597921956009451964724521456644781129408884259739950228931567320489003595653148818181335248844869869480061253647427755000504204046210344255558808662144252379324645861308670915261439688781633677349695124090077391672641409412421645618536462085838052194808988737746342851400043979235067024246706670697307923553229765566845704762902563225978319618333972491546952552514351434797307250589853935034414301037276933082870107555261221323794891532424850154784570097745683673957064624532316783427160599513253350384476461804529889100892576142364568920937121623357779190101698527465074331339403860558383560512529911464752510497400839238188040952466569782190675007745127340413746948598903243038421773757608092588363984942852491661239742134030663996839945731531459218956185429736941639291274586602149193256062908354788945387058909910287768426344909242758195382277154455075508282078488360093885750407133806431446435106635772542001072151282148738012783255219477266669643519639951388097664532433272355768426415313809782298046321315377462523540429060358017056192744688484775984917808674554983296585195346162001081254224267667244659198500373724670009453141832851380224433867264250159567592114147496245184912047206467560940593359887917979059001367488538645068696206561499083496822578568113455648395727288903768564734858702787470924437841701540033745698274823246922177670738059985075586166871378718683096809676558370216611140772207852210640268269888730728960516843783520367402250033012942208799728073355203320849825187947636617429055283759128564164974137281936511433254132159665447975088966378440583413844824557338593122367508775691745807770666376143138370336043345867465015719999493570926314983135394760109974600000537658144945733267458610633049321502973839393544273709938641506048173133810760582530943941987857532365723323047959249575058023465548576017407830040764894676825864095103880437439926955341506926095520996684963621960975419902566892730018303988411552635487584101918625856519589499175436701377526296212355626089075981447245106345316843742039269634125122549425532446603922385414921802547488287657536406695665685449904948149152805038253528556467200442522894314635745970560541321113477618345914350068040975165789396711785485165229206778357107525513953145282312224607743264857802147106967125824905495325200298011874329803856098208474987810516242573853621749468345607944013868042725973721779959761348492683692590494544728545348555476728550926269663335154395319199262090222901179165035405320535415573239628658778850100121050944836436935545656529870251042733731127036864327018539304622986390184984977908527046638100741060641993467683487921490182379262315357767600452539830948834995312973156738110357671380950602689881032606604431764355029953307435121783536374226307308941189098334119638605515220249684439394253053142728238451977244601660403995835472791372579948769056309963892047062937605056521820542134579977355489353836803365282076081251489436246900174250148369489103249786394191146005402306216185569908610246731548646098802027810734737377704918834398152960696061717154770915580453914721379448863070275106259100795373999513948617449030229789218152339558821015764964020945919409001606116587411111980734335103381902040120299293240314432987716472194187589256763459232199092290155723933728886071369406177616450934567152280499827475092783026359931981639916855626044956799351948320384470396500989985380112658613333794775521303288916197879337327684474132831621538213505022329824795198558425306440627327567040485421579537173343830136579227169765815254227253190269172158356347906550143393222118454577433731865452718559410210622948825204347308783812222983168723577837337344515599482329233926957892944799824200949392664270739432327471320097160347570744107285030796303907572702838050209591617550700050166277924293181245052386723996858519317795903884046755651332557582149431535179594987901759399540186995861620669715389333257560018092077957850127158525013243702679838153216831510588027374558939822516507965568067405529335804164586928523165289250624410345072547517466969576647599120655684798317788386244416469541919134116638313595094269840789705549465807294598318386546217752106311455104336335366177573050374063429208912775022362094183093820379420494301832564881514621747314953122724966519403326669465481748253417252291247497051146161600542818805403541989472345725590790141985182981481459902714051432660710262296349194812593421453378987245830976048618886695851303907291733920772256896098365209127931148217974750644655976134038757592240223960347357084918337811214989258295323354443785318333610174372171270755616191438053272660244948668475034380752518392245923957178302347141902235035038079411272774872895040023080474072245560012476207315992125045788619133864990339126851472433091060855943660562484867647533010336365985774896315464134652817637412615811007817367012495447965411601224900939460349933099940239274943813504008029448991687939366761086755035469238657089414703946164778455893070118950360169684300781588665329135620556891697251578127543955416215195210530013133622187193814571974435467846367988318741333305512922100157473047822274735436233806082009833664536855868925633157469202431516831234067297731417050798536830021146553627357812063386973246879064859587581672286764887437654650449048380565180229732111795405654379446150420215634066456080621749083449296578888295379303504726086216823201549849336065885036959606666076136341254667714265766966938253333538296866778018554763758741375614974085168362938644445437282528212759657334188069780403863756243213593533382769143640318722051944488269989986780437905031726519533324288476168006516298029907502324788344342406567828812886076963740649602563071565676750520370530839136166283921641845098284467430512284442398334641301530273921750420119266145727508281390376733635763925446052971601765375773898946913977067171842123029668128720497136453255289930864012330523226054081611387889253194878617232763152748020476997010841422239979291101028956919632942803327708353525389035143185882863193742926542221292762852600422545397998100595536678399989239291809150387773614009281530819407860664748423822595763528517849241474448436843425206682156596691976972880573667036215635512499443612266893305803948045462775097887356727161237582571383913941087243195519516053376515555892535518269797147560668931735310531915212298359173023026758392741649314224393897443100874491196222448073715852494755275828413716873388568451397193571743513766510489523902901706309271226468406692783483998862859594239679364564173558718401990187572546346067620706262789623220348053718363517946910877638519911078379366902264789614265281989949894409583646926514431656582124717920789203351405936678284940177989652979815054754358031775856225586906101230234010936129553535763584329974630792884081670233667889701281459588474281994287498661437711859701046078611831222856749469131900448256430282620072487875253943979012522035179906701088644441733329427038504777629594843814990998912625348880022470112685386605943766222703650826722123222351572550376503854095253101757586873383531199693602416600396509280727438071375470484844568868489196872123109819909873074795320541401039597361969675230524421640561900526742759939791372686862785354305517912575047157660184923718223934849391969295394499883801965726625036517574940331196959794117212576237138316511479626055791784402781881225538340896398270497890725743044303341179108109059950541712207737379747750303681258203099584411948679998579401117139332423952627036199270637724170339781113332382715682773420147905472616543401932267144218019610533705026333742731904551879487134852498626682222111113189144557622104228983473903499812597781108090131864256708891036742980304913636514213249820339892382623311457754007631638251268666848503158411111411558864267907213460409221705074598247207024552431403520119565313924583310091425363495878979074393713659709552725556666007024202839100745946246631307454467511305993777512041192805564972915123491505532781022986430608405376440989174443107699871727600381516344286065218306921009179927941709319362942477458068173353359701759893286031485320156876979156521241896700403095917277570816030186945971407998244363332875431922140735996952626830385659584520895655497781013274539434086438652695414066042052501513083780866457299749256903761709300281616225031870030327371448605125164072390070088238239068114739958043555903512412218232982743667778903853858623918147815883532581378931913051647239015905150073292582746204289143926675349521549429240927856129414258693729514689314270544422700093241610933444781762618884916441692560813590775794473862060159240401206337499895425291163409524485314231824745868679213510269662875170521064607847049746661545188141510351673498157830888050629025247278491328835858571968770316330097553904904884566448974688882484225042274107690691547824158619851842195790945913926945539349707417082601299136137293319908996124476112702770438892717017234886176319636850246720826698760848197526515117846839743308317260487854030332942786443609114897628797413020336753926893185945801618329179440100958324980587506458366412769529285982657703330062345826549555323166532305637373512195284921489639294238105955982270927599730329947375056874498728129347026066244776158346661704916269757179758724292911418797507487821715334199745268055732256003141704634220318975782077302373862469785041650979758445271645852204355139759287529508954652280662696943449901488020041811864203977422040427026695544603299092549594352025279648873458005434584684945297535391583792911305703761773663375795239771087393379547332118548790619268542240083953610368778991522104521065020038005180834770931615105441297268508996642282464489776423231947675602438097694631001688776057256798936928008650248744676082454595750132838100012297473056539991376611276067858345129580303840502530416631173982221137922074743939663003407049607643288219873398773338028597936098215354655910072431709715706097105968688690664790679515081011519705136357516361120759637386375738584999837864530579030443943012950410974378372747321582107022267675703966141860877443969096247776142982681257255182073821062914291792898257797002330749298885823539931935639425268061948642067083324510468170670405542134187651641921977618868029589218724367391297929670217002604707954075998806965382947068262947500799209178054501087213183671030214034123993988674101404729131764442090801109198035244321133365358285271828432623672503700241162594822559744880831760673701548562891186654465504563052137790450573281851201979665409430270049744632546121224141128329366437940321984479276656109271707635594012205535902446730707378406810891604840226316131653788226130623476493228155229195223409251839601714955706253393019190674597189900776543585394537305708587673393775225561887590862665572607148136026843048094633781089487053325334693152865228184850150399380033663878973389341128843457735233219997625754387619478290608410492317086979272668565017717845357601444068717168690095280680343189335630427097277870650886333372970310015932022324797004101814946764613369688447909453611490174462989749323003758025319176955052416250065528426114373076226542082682213459467537033662184218165664434775720963001368851514596794720360121393994632611454144468275264866158675668160232392170474512570134865906164308600588556879208478336062463041958464174708303366065330053420620428368631888832426681603517521400746402690075876108947946351508449596170005018277089668242632747552939134464826875600962762224250729627218837874695585396808698731268923748126981350128702594852987093853722712995055630159371662858218865916052074038057260330451319721679291477186756305293557276882390292266219730580487311401175308133892170118618011733725143663530875657342089417048072193359887479736426861987941028542129529410436548061666466560953506812679860837723426852206158774774504544085972412357281362939502487721322918144746035282409050040101773662698641702181670351818974670512042796054366627945217494148564864034233759590549060136096930916841062916367946892321891209127401951706180387212284307087960773113725441306054172989950548378827727046663864191137798869740632776799960810327556562870906770161485811851671525572067310925943266024855593887184124304225616774615108389728834242258914850508472905176061899777583007065652520847408208842173373910767398114880773332201658891141005158542238840636728656725089712885038452940316291883714453787866130540009170501111547185436355831033207211981334858631153423601920293718304352616908440195500481450658937687152384712418582070564413530487420515614512086668096886553647307014517115558399645835678003490949039327445144117799163796310338254450612672966298207689283473834827563761713839607939250893828751938890837424828395334225664013005888776657917835977404067075017710871939114578468254250012110401156781381295662572551091764603659677805799613086282001150125167924849476048498842037333939543468668590235457523095407381530411675919196403395008232212122031948582192443475529337530173935181814669205300676835498326089762673603011784585548752703073220035324122391029670664816719559254532213478249740250027027480599816837621411818338760834879258098138151661604146420807520205374549580130513552975387831795560660953452750289995284305259958631497799031259959268523867599757644136022576047065119871932352626491081301935915996762477542005468332913608093323184530910326642695702736368861586841986355898696621612636942346269870652951646036590889776309436953289214971802597126310791986342343368337985427815924375361059523136767058842514726866925962255623338825444915338951480780353160096236272362629321093838121344292596168977607129610965328581263856352840691870726909508719908487588059768061543438498330786223732995053859544652872580091738482163952476186691942844092020325285863597342736521084177924065337699487091904006536284002657991027808588169428112419867803212676611908212068769439025689831855029507358136283325881329349787561199657064770323354601359330157371869985275952788401552313044666467007044570167374730294477842583797133957981023419274301141663356310472002062303466720043473633620918607406379387410837798372659102262266281668368174614508881058679402091696237070267227078556702466966215235923248906556541142321653001230668315813709501175164974741770771047867114423127030825964970280652309726522595350260937603204641810401282570297152909966301797287496716078187386434604365603126009130801990559134496982430598104481214223239198832330517487617761060380242248693360782698348799053187120193656571881137988285470003661803376461641808005621106566571354457380355721627020669870665961163026692813351285972342273474043550450301843661570597586025918972971762937820758515214366300584413754353015287363863937559202494019912296147831205339020402152495716237517713920740481216320695616878374406751427661181935704092622544281257244674793566990224000161627935699977379362229328899510966718814725472447442332450832816113588506261778134752263774166893067961890698173854262071168345202086617225540215131520301426153635292417624887240193843284703145335685532116346032411910969004980661636537048300440101181291865610897469806955769191358515559383379158906798187857369687334916653170293483274482623496789367134407267722684084039078504473370916901619483417492844768576605582389499762665707260959172810261123708822042404896741798176105971216524341898769732540518357639068967524643049459814039960198336818628217058607337201469935697285000231851541357699941300289798454638720609259916567500425745577213855821606623818818432608559086488423057729024583754833271946592218906082255771930310244284508802380411824587454595405991187938986652434677760671624111861001010409073491303067136969073215943484812974545321465061611701587079237826776752243663566391919604273126428902144018734759285470742567034499691767523359847813886556570589998331860123461503647593817115860385697047892499359044412797604188982091303483302149530678261969030240608250991840949624111714750193668254719668444733985153038785005110697902006497353545593857570788333676889246110793462714441980272903059667094654269466800036557248250538537265700346455298437548560576643654846895919870325550908590937420980486241309926743237286356117618097163687365885258754292899868407066740913105233311691390175906117790840555041040973012675087716768600432640471731730874894457953682806516682884188097638768775167722540150700393369379883713582313675501585287524033755398687094783975615794630852599146212072385609522922010241942264365500964372816212365929564921203419310855804805792520705609707331100361087257336551244363974172687751532206542256393391424987919220299243040151353261830425163982175998799403271770630652960196594660331660919322521397851742027560453282255800911070557016085197780657101431630121188091255806498603094804914667610772074550263450695615815328307044196446264440197895304167380833292384654515372513331684033152563896589471100879881182953236468004613394537670149121770428219428285050662218846305088040978357011532665491625524952638509627579674947577160349234735962801761556267439062330347004453811940952869755093858067970266114568484484630899149431515248817802441697409989060390843944185025304735724693730561618537934068829460142540221142337313972408574494586237761932255185568911036463768407051600360614064357081184779777040599564120010460141300089078808937759529574504765503905318359914685455407570254194453588172823021718408734015606594770669821729663865913212771651925166629124216002608240455641818282420715559304141284792123814859514483996567150576460271361040734548881707227180083296814012039662237524091762593050119645743753899286461890218741075016941551730748796555794341221340186194571111414514347679110508738584379543228146239251032152517806102200298506117151152292468440623367092708922645324107817862349300203648615299307013684697050663695876213038719184967362628612877313530772131662208880690117845223199493653227244317747904408052101242682827577605768520721103235336355173322284658538557907259299765849786886901193452927464227525558504878241741596277439272695086300373919723243280964233209858067469745511572367038795593244575845312260023956451863424137001098615026519509650127633382819673659764355940000898370507219226837562534245796421520814153814035283423274574528218865399845402774412225452294226541450102462883885257064639199041273858637472377197018166150155930655258040244909298244953501327780953256426342626343279899516866922969197876946230763821342879185340166382658613898105566506740106342082853947818002045364226967901634799177968142697019624314183701793323920820696391145686534357517893702466426959525960065432609160427090327733412487937622089785456943184741943451062039746655514720561706101946122268668159690483839429043099283167735414442937221925763921777923422377339714848818191016998201827862113181284536326398438621565509677653198854178318558674158239004305345117073737286728018823354578530695996778806741796430097938413254054481238083190305865408515322785423135428374235375872168823632205507065270649525135696367521210463206418432239356377952099896545472001696835107430770193988419787070947694987486420085547074572670602171274095669266543143833776902401314278999775677872417957135722306063230523856351476313255726446759773377698628417509403393812169214267356386462354340206694306350751394027442889765823700307564930106573451869821269475788504119196136104609343164407415337439577243588525650231378094754319577305451878520720986386116227304334532958754748551273383279722191850350478718978842492871068961821089941715867761208380151618886514540012858597164630136449651605514938227928344490837674328198921142910431061110868692165527920798201649329374581342150765511878489276738254879351178323516112085517841083762117528150078518547781860767942864148432332331910972668500329341289140458582044315576107787857625774238384899315723739598381106078124677863585568996527368845240942528704596435920760579346684324145325596356248748821179120818397034784641754929142248619881698358368191292319024071712957000768746334505854605361897413652911487487882667012766317504121007203157810889243766403677309117553090409281711961362105392341387334225937678768526257135122434134824492437863318852768275374310490354455242143571369313856402904000656993625368177991878558718447307705825297435057486641270846544260384727445331835298489368389889780828901862307448404708449085284940303943429554638527408547590152688160003747725228117811611574237139819507406741753431841463505443424383574519248611580880039606683439401908987378192440400219832284520765154792113692550747874165836602422185462194643077515218613558151988754046355176140959054373857005250135809390485967216202160698441615690787716840681274143766140911181396310855991516614810795445153249599213668254996327123735625684147454143123120604881956549350282357979943767775718356659006902041799336909172824104906231327124424941601428516096280779063603833584141992709154227684258177499221993057258032595123771201299442484070122796867944473418067925826579349589147678883789154409326316567006088947310932561056198803086054865208774564545247485353154050111681242847495790437215941553943670290712577865368975422894964011618502443713140843463035435806477212711435043136254843866092436155003196510855005090715833704150255688910245840041819335202521244984571676792556822180232663962315709645890796869949413734326211814954738978562488217201055827898453333313654848945088878567519040445959265319521581192448981135290221345503835659827193694931765657818676004700773169181645503419476677438018159033309930256659566680601025092653011515016062246861638971930902143214170400219145772685840786520972216809806340340974308690729882230975195198310029861267048908177882768775796117833022329018460019071608747684231522405077436077933069971420826618840794046925806327424727504156574254671472330996260395728653859055288800591122257746897621928238904065552137197494522321276833845155145768466112776688207883475885860064886573576316527556999411910834661445618670681274946339286427366151155891224086859707892700750339421987583653597343004106955922676103553305993105917631279351162971407960650125329361940136650630794157005021118804358149453379132085873254843046365963575445347023689576407547704415571493176867930227775311988218483730191178628930694011158935995127482991205306812955192982493827214779554101294437734517564251171652621616699918583564687464935792409772455133280236293667570990769785251422664119119358543450137409607937600508655283422806572647802204206130795169963953324761662289154668469409691451525256341542697672709654289236696840319253509490673845090202972431809123127018255195138346002937882176207767661470179105698709532770660030841618105920658748656005148395218482499254325485613250858519743641707255380319640692807156322132217334545187661557552639031833939656842002946070111912900374032234397670106259189549411081661777562192162312113709031397199510930006010300715333345290159788935879859588478418005253796008798347110926578754895419075386106622018995978954059343787394706384236767750218336928872866052783454452202405805711362960075974665197771111263096946950342384651053143366709511076068629058782907882208713346420036439036633298098850085133781496316618857710806631255804432420769864751221658236162083468148414083152527539605062706669652630190259384874403412660635747377192472521516522939406695524534224812999183265659442375912055988200472864204206707422287275907409713982157237963214549916729673080286486448406832219033684902698992971020092041186578702517859183575055270334768877563858546273960750997614740057219289818296672620120311458260815855382692225101382561102542944306796243640089978100544006780213427670764254992593671010228467486622594117529405166755581862694175059399711537675399665098330161573697092270055730969595564927238518257578755341788875263978855596462447492326407482162854233803633594937489952680601675414219788350902373105768750328191825905212533184931830610070220267858052785156302432419555393856571133062252246234147971144793257899373626522022284579923034601177104157440941246819729500291141398676155035259981948073523915452858111822298181564944792756355332235062904962376021888577294081893514505639433389353397765545634086655528265813600081646333452544948450595556670516310770887250520662602256057362921445167472113886016916293005420512420641555527240194558735950975262553372909389990752880852423425526878962326127453557578081715309102459635355394814762771969164198426111827588625890580436615487562068163743408004760016441984380293734146828677717616041428541260642564158093743961591292427136313673177612445899338591777306113329884665524574828349252311945870699891238106008382022702659856257633391903367294000126429069966838423817943612746986659318961904532222329360316632960149436871828093274304915238932256255191114730075314812880720642684222698113618552015447980876010728760945026924945406148795259778098636006966910137781412349002068691983892641537672255176874951520401488303120411302022780645964589480587137799676887349391870379821439167206459086965189722569169850999031020309665736330187721579107878142644572561741158418587769963563529157661151716117556191214637721380113652263627127850352145333065842404271934657080561805642862699883193272737246850808063725345867743143564713432991361084587114567017680602415639874524038583363793983563393494459503071442769421392165933515161002806826001862171080275899091634546246022698586717454231097729730601950455750212178667292686336651258071050500174721336920726980719277906330129190334291822013011713020686124637361536176394805561122679035959983458207368030321560508366401669154640260872605066519849075749621296331192046086424701059966275204067990852111188739395262221717183945674358436625025940756778745520688317702101822639289293331994618955621433939875377741823349077638559935400871935321557810634349264692166801973069587793471722254480791181111963926392764800123517725719274788305783971136690606455254331919032228919360954971843249100904540662729238502740563383854859018826814943584364584398026261111617176584281609795765250678761179511632399263517003261953415092975005534048866409658351916597949193508634882192615981448436924375455651122041948055268230753324769740884727787435452359272108804052625835368689199319844609897160844674263673591680055284786340626912717217317175606167717146347556161980788439031135847771642605104747457663614383208549936721974573997978665227750353980618914088883859093213743752720336230257877956104729285638608513091577846496000873633392031048977816919904548372115769326147221016937339567708656913761110869153278354055689486050710822954248091805580809585284066735287814803865380214664675714389654758086043451295539355130958693211086299311106058399394249657601065749524026449463655244424073059903652849089666480404679455176056890276317171918768727725748903365671778563823216530569212911505032641281573270750113835519789309408910748803426109088274141371194091230943716786961363607247765710462348615040606854704645771878916603821401434750973053691031108440796955045623775381198275521595213650187756339707354395801204719660195128825105450331730516216341090518192260525546312264355322592957475728820016262708082360424445903581361990459604491675403755372720618198899951477716149327607979993540532317930374352758499542681718721374730002593356153619211112926163891621846956695620335649705965093323716885518784203330418075030665055606251741605052623316640919252238258870955218902881295750521711655979171308253404608433079774654768816669196814476897328483917921776776427103215174524479507358807632890541673160318119261024170038177565961182565415251809679876026163430172783703279617329250813470476548576560590107276735213854598276892987332975832994468536565991927202723128419689666325935947726672235001137195026467308449262860959852620522409521822359200314706982697792667225042365592919249205435035444239094088057620105046530926977313494108572799763801130492797398655841989887658332015933439610468750796352017847298731730440842726696584060961805465465631930250501495988840192508559631880923328014730387912919579582510129204377653347410891807580724712724027616662968626222223166070448752292147150714615960773351238272166915455272913078876136704003344771052077005942899727117736591924299132120809706489631255884391194426424834555020727461522672099256445652834679899490660341741368476155773134407346980037980421412267132037246532107321735737604919320627556467665490391302868997801527791202724751053292459552739864206624529571800868091573355539701965129310048323147041350494293596511826572404982044313975670314705370985061314615599154596790803820633271127053976438946130683352466915676444805847905318562649578393545468362970975088640725578236692990650812706432076742539043688571381094074585565967418113481026729780128765977058162672845756159328126606457532869835675416943733517186915449429803953280956253296717647427841921710549638534142832198621486189526791483040045423024372446249427695881885130478794805150924022184727268743260289620485985683180743752148629099213391399218069538074436347110623021020239908016642831219790393108898902868127744913987781601236963493538379048337388616497398864240856403886001217356037125663028241932844139371526035502553650068469137995125330157088169317619805957660961132814536248638143747081376099733927934071387102183560443794655957632108597263805611317386277996186628281065800063606056696516050027546320006428383399004706861062158978013591870802388375768955791117132702187191386124460922850946621788009123566467142528458131688323343861702634545310635732686171417326825210992719583249078323219289804851229823033793785926972269319589503335412606776368451920279901129435132900852589604906134817684612448185863452673249441239503370242895528566745576377654831303915449072417446990333489630103269608512640536887822212146215219423825090781889402643536751568910448856832921283602581574800998458320548765308408242561350893597229603185883885803835818566441215386708767601248310104630844744321880144790933674746884478564148174459091245398103230088592063710156358756516430959611273964015861769781314087950737142883177604366898196264134750069719405651950455051677423979401968998625278900852374458073288670697417739635725450609854234567898520425073228607094202639484182866925660616654440720457756839393231226540781247831666880180301842250452005355186868485055845308525384975426120579430535330807477508264960885294455727850034413955893793350511840302252987061629150596422599960058564895723365317986913669699442786657891252568462604147981108656855717390721330789331085259033331137185877287034926279027156732916866271667490819931825831668328285001575707801611931692219315147549377551598046540928399910949374201037170856086058817854490057041041360404351376424689981526806092554011234653295043491805374773561666671046929830956789203164820639317392212484055120347806321113168133732240632164554155882378460919427380885028383123622665497443005580998982995742584323537642986314656350552835604770907574732826367704396309792346562979493445664139608514643713039321367742124709044527215406879215426306425972602920189946552981151426126049007638671417302357272768390415597234506666938664605882920124711441788317822348215338918760583632761818194332276955531125819048475174629056200134689964407161982320543471846110205113155509302268251074919901496081785626051088590365847451503763849151340003295163991062192405572830081035217619796168322139816924083576395562116571261121929050871632552585586496166382541935914821818761959232920569955063764581826855752211527870118029943354674153627620774978540541333031363354236824101084647637490638852798414900764646976485400947963589549754614481376369705916356998368119875250547930693532075707667801484477014247162419081668224900742071118648815477289171865359677653957993350334272821460541696496009847069795855926430428703636647130713147823306115764199132224206460998988307626858360555274099047846761076042417842150628517557352999647862552954283674298706645794337580101407402116186144843297657442634285287047785563083096314352787830419450197029465757777328167468580874539316039372533158992805794346314087358608617788263349277461511849116551306818467136773488233410851364039479392088768863363394613823583447940815696109142938773471389342377361910964605642444747790820760496602713561689541064448321365980829389097296189121183429149061638963861069375208953468839833444671898212434780723874074576975545074368467471350248588183996655681963445288119418331726368250506118649003941255205745712036035578025141904352671837219213848299058032246958424323158984432510396544353505354322921674704077861468485976255744615351188003143056995492784716745449726976128393325183819722232836070752278129281301065694126294873063426883733818174217060864754827639424239140275321804295190341163517046980742335155605785756245099925320178749963664047347703898558730650760387099773184312810989789882085435595509432539023718952168202334424557257530787926339855090164559423733966252233516487505895569421729724489599882508923211203479589415465460303787861759157166139886932687374968473054965329378214756481057938082853005324470805065692942234001095934829461453907889066162640215013073533003319207456372637707709993999228862122432488020626348508885303601072343689013606427581425283987859491799796112196379757651924521867096088092137111977500087815930430729344883930957574159241375285977797291893453850508038319867745900251865791723708085741642971538078840607130686803619824197157747638950725346840456919275953193722370222901558006560760473854735990447799674874996976942713766869553319512533776409858709668386326392616494560868414037456842071940595070174303546918215090046649399855174138938519757312156826162286223188109672974760601302833119371611408747270676255856777511995666748615196491297019331808499410961813929649278936090212535443327375064260624299412032736255824417498345094730945343661590728416319368307571979806823153573715557181612215678793642501388711702327555577930226678580319993081083057630765233205074001393909580790163771762925928376487479017727412567819055556218050487674699114083997791937654232062337471732470336976335792589151526031561403332127284919441843715069655208754245059895678796130331164628399634646042209010610577945815130927562832084531584652001027797235612923012605863536011649209902587455521403969791153402241589813245057229232332131045392469983661127509161341877972271870257744736124388514083465932031248728192989830756892399493819598321885103228754680176531265348959379946441039256716271373765670976190037824177952641403477592636637423901248853818378590472910469319889215610792471433275600029017186285425139634004575898174665552114607079932283996193649114731212691945301467755623261882254742174925939881766761512788887829790775534351121708399018834522332196903474657945509447689207579306911954669008259571716759263187037589166388932888941845380700295318809848102997242480925591550439382798086201698320576363102564886837333675568675751472233937863999270437059938350588590556051836547971443132215953828793278294890967017460767160108037280410348481522656564863648428245411048994130152708936078824806301180992691498515905410255747870215367884778425517346863577233343834064175890144702018804220184060001250792873534368375279693390587583068899000986676275660627135899542946930880709000058236957793021108867524302635878255120563115819373842312741680228519325223995892981844804455795800753843563554453054923787125405638142343649250391762278734712421891968913826306731028522009679086457117716531202213996237431344790855045029007333499184252611096876138081628885801127188341154174941363451388680889567822705813438505214804376938599252578850067847093399732629602951076683755523081557048444813758213270991881704028121932722609107605374893567056325226489607815143554977384885571753483164646216519304208951078062789549490832143789737583340053558953425457371180856230185443410941852895513095759677695824021819543455445476524714266831898042366841672405864288065331048692161272550541092444862842360466663966876147105844227261274811965288811515010480668263347806452906218068056551796298381892871506926703423108833602202568832303517003217643956163405051042571225816099315475191043626338758855092048451506724838755449447928555786325977466367276246557645720319428334042103036158833933844201467867233277984922209152052247727510877973604183486583336431402763969391070723796763877080890754603191915200788416149577637354864681844110384241658239699368228164036303887816483214327153419525007551571752929863369367387669458325165191195465783936460223407898671238770886661104613626409576399196556202962257718226596229118176771739432738524884463626361256484220692998405099676566648012269769258631488877954900601384942462986568705249080143013828833620818097308846341463202287814457468375675939892992920904464825996561395926284077104199213925418262167430242564805735355031812607552950681624626571955565519346874759336717787958808496385713012993667026002902050282544011011431866847185798966085185495002791174005549660444491775609721231613832797595286816514606061650704910013295507759074803446445817922573888494673311069873740862773007551043643143223828402864289328146284941294516466682725709916396716860304098896168069906151005010157355140939459901853359350306116480868589949545536606822008646665467731919478415409872106957103210711443502372237590898186666870002784068161374415068300474704099988121015108507287685914153301632210585397382620030377981993254477255381930506775275294360694554874566703892928357599870603110753542296686789766352654948475149787023745325355515173837887571126709044885899490953019297247245015141602225347270911954692283452897738670849450731650048552463079998593758709276604725212645303134109242273645706176663764018635010131098558835785722345662789021745479660642561550687104323243317465089827413759393279514596662462631060695623382417335314957896678394140232357276877148742499852158783565171772625661272236516285216287859651365442974751712256087432584779557584810016953652394345942507621428498531844629621706395990477654710754714511824504465055839588367152006868604747683409009363862744133893515465048157994441498003952636712805496773779901381076747632564945824463028590739407007186227896154902883272081773653153812106351373863454338856975538711323607892409952743598767851293074233631417475457610754371017370518718029117596564006858306889791904400320542338097796934370412775504842123495715391056192839838075047507552554858915512975463425428051095809803904104562357300278373896590245082101715834045199062439300561020243183301065722461358859726421462332629935897949997998495497456330726186027040255198976954328697568114102694346410103040569145649549302325195907391424103852774180281241157484916825961480110088633340600972125340137378807147108482643552978717524130359717451374126395244665242250182381153256186443503028193687010515709590163506258885608650419110926648805283600197148485235034894368224801635175602794139878180975894463004014506535380369455779263708249993054025452210069419526613918364306194048777119275938581850798470680776630099907568296889455463304582170040817840947808940834029721137139622882961616518961851649416136812717359499449290179615187331515292647675294606074097945941738119841721595103442863695869237796757507184025299910766398837664823207338998624373533147175425516695999357842946222267548956769987388220242216321467884439617525111080710777248806218867936510606900027175998874184650753130175036043120382780790880828116951856129138528441792145628605961431353725785397142326297509841625285671159802649215352667458803873918522600841027544562170980641615814433117525769185303106714094377655211810055973596666208753308872247916949865246485523551219596632236549209533208057033511662731410248240307470712760066379169780275237448478923007439482047204360195822769007904309654658811948643937207699778546846542645047253566591660361688710908417973658791335665229114280432442681375020653571221973637796122865657686886710735514325729122697598417745955219980002460011047067788729849107363465360707033770156698594353310579828190379562164226428784659171455865359157196016347543981343776443753318165489698397800119782763230773284443241450932082125217156412560540057366149951624320346826076787219396436171374198224725794421479759128386518786054802194677264926078141701617648704799472184964104895684069512896288654567042232789397033309317982483926570753537607649085267763734377127179813927869671132570696222468195339362590127422453053814413659304024468942940082227463307395618481273362849103278568503529113857682364025710722088804476696300283570300099249317638529503040891974222916479855621675706765271566277929393073197164350161379526078950593975829357323522152170001083511847520516552612252398681713741624750663669906448392181270675003916197799863182111995102271529717880534254402403218681445841237518569837216991371313447737389099288241195380017062698568341250488659304320900394089434524322030583580470529996559043916429736426987214042931290490155232759585079026924576650964150077746848788861704548692155283160495584075280709206351516163215005936551763960499003647964612208651030928404157585499795513711879933862378464486513829252783422659330777777409901951620925693199486239082620378177076270395519382517805871177373807442427394332659212813639453830045530241794156313993461019136366510171401971559957080242384213032622150843776061149268857000457471976624789196003033337255286599430941995045068628529491066948331721842211575503911838996558840478611988559209112272014410152048492217905716718051413712068841204639329611254851079119766890098819283794481546699603552349238862598453622964567159401034525960659822860818423458561047179308549724754067842845888437046397390657732628674036839411395958626334584670452887386396995747536153069294478508831484490122250033867761215228669276036667648605685294178850907963593635505155859145033715607740384501724299099092154097167385540493793038354751997544384834825057178808193400935603524433271696972718392493528236756415718768617525956448315004015529638599980258865198301267524468688563375029696607064225895322834517272933868628163262676806383774736275175945942721663947030039766401894372109747299818511869073562403623746104619580853778966448425396131213846404254640404416565511248793453873036647247463303329726226590097489850168092654525366625714882203428213949135500286910918194285977284724352637273678166297843380428320952792145735723800117071875934898789361081781082105501271225088779286866007489915022862970270618390063038326733133856955457044835905535006073970508371569906758475542021749950886834266477115690008778536015924828721502800970107035830540448559738822768090651693050500780275232162529352912474752407741910301893630337123412118508395086588464645022854127341171453462900907441530050258548275864455299612783377820262398171179081529830770958125345331789775507333982392025633707423610130906791210259990301090292558485974424059497659496303278991596353095688328944778855521806091650109117826832206745246332162598470111109814165930627549779817339407057306426374732149242150864233364072067230489746425045554412735626905903460673935454809255664445463499394773610936258326309101234672694973922162878639365351127970726437728394526594432783474785793394022415137354830317649723053268105568879122938858791786460947031726915556038022807738689010299192733597570237819253912636590167062708605978846650859979733593489264703828656508617669537410436868066083254932046531767873309803196105124027993095308647018668860334715583241589604167053544755260907027876866091375958715446316303454377260619509032650010283020457613004682936480599776195003461676389707506268823560672529489122021972920151602586839393067798383190120463208858447772167892726691340172422803485589473613412235435785298350778500581227341470057291249348474541893757692640197410481880106686381540631825223057821533843977228642331814586417022770180270656758967571195543994596082426547035760996582665469639557450244464034970404943399246680686030156441368014468922052006551537323935498526613377532417793277910899993124246662631797973886882496904246847319303479303613333057903892161675242105383096782123705745996510809114238941942835122074455289227775861366334964628724906110523919228399476700843091331288543189531744973406314656907912895779859753148636835924751814786469670860712552141101647167743224216370170738164145678731601302082130024035242168838866431337306896776441963480090421996827895553824745576848506936825381244907519972537983081528825164674561198808675221898432543513800691967163871429874620095727206770266541314332855902759660517280741213240680505662991244534392205991120376566614179819580142872032388291436823122242179930580066781978716466051064896231168829573829757174745883437316140661310661562989854302814804592529775979267025607324988158770817834894144661704795514098345447440219945655914181995137859862215627791347462188309949064037585705987059851635405322730900762454175627511180991504690368571677330192270436393864836392794587336632247968642510546741422361870958732997013231989208097034536332864790074516010864163909061983845715537196178811262001317865681152124660042745415077684840612227934399275950383384014606927593065019144274897846996990027805466881637628234475639270096296349610666796377423297289126734219893814436609558891554592133295518557513383114221330719992675676569204177086297646875509260100263459421217046383837104220406656165492776667448336812883122917922995076806476025186263854246578491902321309398033352504291129781105388216065344595258270184649702060322815186762980475922946452387025705736079467289559859250989994587049862048258770166735788949028933017111394529706449161259606830064521139028466966397548174082155063774185535531035946598144059441287574633857873546721529785119841140288464952314211169225528032493792158274744375689277910798590824171380051421707955504031689778008682141831828203151550105581128891847599555566509841834835835226553309602229831546634878571085969832499288584879533947940232465870232451152746308576613237310945875440271205371986634496285314422745863797345861726295824819713451316896663758546762469995628520022544899353113183700404626296472969277275589313524934187029517411456786388044176408194619877961093164602818149119755379328084307384636377212199678120608756829950037768353239031163667899416356520569987581084303452434886310603301245329249692525326357058844863137793522396668514161566180888227170765336276758760512319597384699373032226553550204399123180689404582700299830573784058823374958420950176926334499691632741402541907638501064325254668832517899071873471958604821874378368342879006557719639457727047104722500493577163190407727868876276980188712551264270443156890707366069219609019969747552629803960983165898378922248536387758194159731806857325329250404402203436958195255984435397199285102655562383535078466639371097712807442535049804570252137869210024421906798291142267720949351282707837587202989007747192470418589828002476266576592610723484405629126966477256224463823124263432945940518832379016652361877805835103722403593880237798635017450784389661937843712377512134437630891826046180853826316524945579600377890938315275606351373826946579851855582227082419557765618601066521618000936612921040838391380894779490365988921185163511825834168990767062183698522655321927594200760157952962982932969866826916333700645629010683010339776220481223983806658978787307073748912376466979148883892406243348374797083693480196316149424609199035418080809844076492451563318134879482224021950473159936631599648829726164554070240362275462816330123302289859221830504049652006508779753525534509935645463076830044196004868499061833883641465734644676805947286339198696294769952224527296021653312118403543664758270058498711984141934909616341449430710732743149287178508554296015855355077949175363671629912432716370466491458338515539003303527433063289058639902531570976795307459977366485243453062933103932703915456057281693337251044713033853527074313225296036408756169744405456625200784215318802447158257671794444367223753577401623489472674009435098253067856321275609574196136543383872014652461468129843773498065867578796512330904080136301555308230248027931289591430430922777834473548152770971305835154473677120161192471696127809488511158602722648831297588738794177877924955687036461840173227611252601841145318185966215523443251806829302752253779144710090663034934540008137405368565409185768693607060773238811316741482014741034739077501785716359913012120738945366626193077228429294733441503594299015508122521888713945211947135995824936285013846534029190449588498685858028611045426887489260831909084390097603187395356053436027816831907656532798265894054352763021472794153930625893891607737489303184176926965632105185056688883037210197442561862339380455355904366473767712688932348057510204088622462151919692642348300547945701769453382424835020200226613589543881374506553933591322527185242640599351354813554689023800967994305748637026118049119837088883914827043623845823060657379535353910377338476972734006285156617536525371210399768433116290910059871971103025737319922307166815615723121147447923486050071999756704710496711437236158370175559821799530202388599860982509522294248367605256432760058787859353816309239737103541557078653345118066145870344649559161097303152504497895399984274830795906818826468047392875647788447061216445185180801691762247294330407259394253118979076922324427222949501281612758575988902723981820144796798385380437090931902891324494165572341988130576703758641613899443424224264877186367014317916369893573091349057673956733004520583936873057111366349826274397571395861466797138842049294995397897376193681744559272493976827535354797512182452925732421748277136518854807902338328808232916881708836732386671438828566289438857481295461702302880729999182094607745714896762466932494004492282151151518682905057420082102743609547819595108571470386562400591566709322350305889255209318786528083271709442372499917681379798289688126565037777362206224758568689109175947628654344603579137233545291658529270398311638983639230492055376322299664349274922629687399983442769336339582436344429736195035295669721798652087376173073092627289413855769581948055220598159027387493217120507387548879424079507150538587422763794716008794386922506136955056996829395855657831574582102200957984252870859817709918178651670972656719630409069311599512906462085542013765257872177953142808888328632624301972998545180561805845169788781595470329752739627292335223419242778056537016277281612121799781199577889454892644239046762394058108773947403031409654311227761095303849883042525521281829794765437951876900780586935016500583211507587639270393059453751138495194208116300820913369348061702025525756622974208136310409439567027642093133197101662736131616985546989553603828904952500825686988929060551027889485860876495069443683122089935294956757519765888173857109910788934352309818132724170904905781065417998428398772658024424873108121837959363271161996186527914945081055173621499774083701085666951345165077157885953809728566352157330358140637258504402699398579048079816014033374714627431167128705986400159324370721623817656046802601351509323325236021322277033660992284441277243533665992684896584936317302066274513169449964052766606666943454842231448121466228599436571584217476215335595882168791599126155228836357216673879779361707418545862548096035838844454635153788219846869552151111521708681359241122887416506060853382881131530858453812043306790789117519700466707651200284231314358559895875119918171279882051211596721401410771575775308036882422893400965517697439246008514917471688836705998719789164725451275108713122420100053506168725387718958627727765584316990896936349615590067745440758260161723788594586989339237695216214128523116086891744231497774816405552723319823457120639346736618729238488351079513814927695809122790328318737633691528256830868790178191479488906017791880596388088162091224742316596139081848455427267965907699014762341443128259070578598506122334054909018915004067266090813761435318607263184915173052065150803692715285315138907694600923724529188772724564401249923490922693966521872025235939583746178792684963972492872572564267278327486989882374297714253425413542346022102160319700742340293826008618935566573590972263958362079249034452659533423355923559999539512820322804564557617566121781948898829681434712928319133792865711552163826025516809048850014020215505047701798712862721848083976634119573580142343979595637004282589044254336178377526527418820221060132291386365058199526099629760013173133217556313223921480920726614137384964442594402902213691132054431740592192507481699975948527988798017757138377744044895492788306747687528821517117486168099208220322848904529371279041929109400489148675171610342681441000975601293512358085532565185642520745776658114101167645364940167938799340112840486517547402478796431629087834813793705739942327554087122968721122928991364354127997921261440862831654873840860335736704648629100656936525045380946205149035826753556821245889631607404636203262746135181523331191785708475816497769058746369180682858050841140068366679130627765229011978331217321386522565500410662350658073685810392833017400658796268320733457039769812645454919314526207494620980018428053091983664262073217177854144409829229369102811575198444608690050417525548336307667015929739560209334978479673112433540791640492766403315359020874460768426690703079181220486526160791971612994550824837877392796477282686265809288844482278937515134736620403392721960895814863162814180176953292049292587133057162678029814668101814699794466109569438359959799761003428890218850979846953149743955023988556675887522317208575985848466534079268357516523763130387622402497177891167497302544236998154074973462447493933606008475004761886043353183416927678421310097938129933312771875697814578829702158416621300048810196099837187650559414836449137519305393657026428052685360549753653029833627231897063639805603542171775345299402573092997057418579977702272830636415457502108386936267639091494150896453423370514649686778038016564478359407789116607589268563719989851078229016656121638329043277306644652907484779409251877096761792582464727062583115199247718068930934267082190061636572975989030274357119061299368220860502190924762615170222525421594431015343242284316500505359242094855756251036476895296248344779230505813010848214700899275682606965513633422285541088150587837206137634841383988534033071789719484150769577481661916670270387233731690564715440497169655174136676226619576715866497902038824410618283958710882426537304133441415740775473148068773847898970843631231795987898286228867657317755309642192129469728383372811129269767647646182309180791707825702068005001998640485822847862274274706528887935080677833719219381777012913048577781632572554148661994628447898723528201299467529255574390105600560803802265806126552995362274865847396998527225205154317473817386547241859529813529535655059399945168239419565359937043128652962913068506126146643616770435520842714291360702898299431418579724307879226417851651874988508572843848460604859096187728842608519457759000360610313835459508733409722603660756205178348473953965186686028700035831794189680814313811043178181284358940736247735171333473743170325427874289581730210662480147221249960473997951800351210068680496664055771278372022285574557893194452054904615967220160217931822618141630334272658445800140924337659314093787531568026246732542212100875713816808717985098313078796550982731552259279809527277328682306404592000859661992499475524986554323478430959785859896046554032990118992470385879168118400998738819438651648715425371098580475583922941422448476166246894896155209136202897523632750743783530373862752708627411252684407330537088451495912747464177678639776366950634354526073969113984741589264808160474888829218063358015525802267628350989930692132692962909360283259390913764659520340749948353089062528897101824283272399954209818606405203498494388071970225178795773161718658512537230476229372131928019574292794809411159191665296218604836972734781990485667484262454979044399685702795241417891301176350986658970246543844749738481145709307687075860164340112169026740155105640187968401803775402535873379573291248534899748648737130156157936970374912688629903815650626875543371097258737923885733657119881464882196052805100642796439332022479389420943424710047938504295048376579386809332819034813221299899232436857082571371159929381214527404030479645753659895375376534709146781124711955475292451229999348494316109855915335226523562508154166050579172366021630730864826421654863698565872609880902075223622428521300197539667002251378930483103766823120423746365044372047519695663524493827242915547082614653042084308585548263589025193248328995390635508314785330500805697783754856526167597414353527775718493684759257771454443243658094773173344152871900599389503293224939289868807188992453596334923183394883168463372162561248692988547323304872861941987376653608802651278307677318110393484576653896070125089889500801809343497091445670901372337495567033123496808479456805012954592977864819035697465641541972145985367811213837859705314916403102437742139984340051720082628686956774450553290322959296059965984555245347554631476516619714934983068785513618260371663646821842101149222719697066439432427610432714701324970381010818520283068775070823702882953863677442379769805958848320526129446965988947602706022957624666726264324334638638042636912552457227236944903261041435529562691217892358013700407847973781925922006930385070279013974107801421342720442777935720631761652808900321066789515443384789371269546280308647521997251450403464344298970892119990277432222612715474234944473714284553098187416541189421704252304671196178208328862466908855558347938671498425667866268406759304211617347127445136897120965950787955484251364882850847324518224499481791889014890643141250658800338551720042459873754033628848301027515076377214335953391046892248047412085170920939248281612140114883932084998465946524873357615781977518952967920856906697711228540958310945645688094464522191429549361355222768565116530291166234191314842386535610643598551531483300846357400433311914930788457793594522189117038023271457020971327116620015214843716195892767180601879956128827367769183049593978608290557335904023875122048545493959274602553247429589670890650503824643496111324858246306646651800600924325034306283692203352872825191027830011149146718415886253468345921869385928224035653178925733755006881107136177272104275048092888606650080357390422945008233846942227801977399485664453582000916408849073749294816352387912310199927693003160022139087146827003540257081459199111792791800129353513780343011581797776782660522582577316552917601981099238441967664682368145726177362784627572192315970521777160703619237590129803224074187431121387673993967380280780212799124656767789100567221586411628548809316169021626310072458007276358171048402571057283321611950601043568094250370703106216398699487649683104051473562242292612395872859322546169281216581833373789115355781701281398703819476488951914039285785666762823459021961134753631777640218345944471621382391383955134755441614802021793953896658050706716060762642015777033387792765121735296098765083096757731553589894309021893038175958448802302209932721614205810180446843969722796999515224155836178448231912510196505039146446769319709692839030392217162365422772493105391941596442627288787402568835178024090780027058544445108345178156067688299995350356556714713276370643871671474011089051150526248802818527508128858134772351421590324290723012285459639107444301386857093846552793566265150399318136715460939891279888211361528458353326632194661350013740790772226406725454338131491405602429628530773178300776625519000189067475461530885467773378605415014857990091651161627591608329908392450909497961962106890930444662414683710121313496290646628272498104358840317337458597299553992955127203209319666711788060306920526039056713689004764395557985662036321773629557698583925172274396554520685508003817698313259928231102848226299337681939504248194031225407583158758423102735622714023680870291241887312951304159995067568782756555490185431286875744796578651788433463550160989443307083156532092140342956336996778557356110027872222317184690572255757165182250539067268636062062638519753594623800568067069261526893838836002650849697795802220258546020996144118328328933766678750964116241998561914387109518032044716730076206054699577892480989537959616637598039882287292965818157555057915428077295208631081749262143358653556001713982649583243783067073747839201990101090984896290758735414478504100533569166897120082727897282805339366492643026103079414859677692044816738092327294630679755006096918509268661595182846497511177420967827913216151976844148705793487227979968400858443294040800326396888953121309128825468140775437358185981848944505073073147778773396073361523709409140711035990965329922245926320952469919563277271843476782459236652004403480155763490296037585837866088478277517737269286424926955215437205817578651621784692506949279525697098403614126647718910688059451333227734085252575526045570370858577107363512648664541328861459168472191386193904526556354427306787387010527362989915934609767156934646548582020616630460967683470103849366599699650318037305911022203130715659307529828443730602193239536980623381114817614229651841991838101913351337097091933985786580130075468907817930546167798250313859070366951906610527068852636679641828445780765730189437161628098433696277516962513573017523208556260391169571440897434903865014383554082638803931855029028944902875554441419167599477103844997500977588067277803148715272200384298639347782060738162428633812461518053599448337315037479234388425403650531920650406619440716557802103201078188353997812515052308646019615861050441563843822156361391479216004172128574236051064315474968766427829912042587413293666591167296493338225989314584696302427648159461776350204313298936091111511885949169892251062648502404453773523358434554238770633868960206989432507310421942144798561855426817054114067651400864884521633857363452404344113557361378697539738182235776357329901757836907199911394849118532698023673860718992017011336214212652618728515288247663623957904827233494583937877150378927128229074470990963264042248597084794923820146875211002911506719784237809877131367574032694361820955897756792973545855700029281734940036871114791074856791075113845903341889713141934353700204923707084052737923910001748467636032923976425409953092252498412107670028710333937809852548442119891241712600399259806142120153755862708052477476955411752069073042914795239322774189986074342913356454191557025947872927044496353602380128408542686427545843416686220130409341009590221300922449128734524497345407877740406003900731232396098341036482454507506396956324005182103029469178200935397819443324785480942857797900247193533436609938317666258988722796017532153780643669635939729511254813247605983941405084452602396778769025668305800747468116271682317943570487266134927997268688773851880936436254655119577335569364702941660868101884969768206783264588643953649340263407028031230790914466057787584364161537950756567802406041274700392010648431482162071371793563362213749746929504668811554641465305096607910734145870610242313252554637010565477773011031850500866145983906862901347759391925791226790755001003954284926602572714309720941485165915552803701788751367449277691667457368013102043913632244918375917683414323612772067505595197201565667951228997365768949034373830783818150707034487777316751746188597767611349016083794109764436436218280305376953192274785565562060887133149812147643239667694809215387314794408040097743049555435542913952120799307140972287669249736096785168672128447188283451368352362264521898623275081839110462572342038754477168487608287821580082491818190404237718940639543007118198538654478263696317425635210966590404522352759613907705733059109868018470061507798409221544074928314094669401515192030302653455830712026683705072652614298223103580480008512649502473077119855815974693975203460682418184662574064482560305141678869345110618634926532256718986050633544312002956531554697614213183641424944926829575737169077844447552747420055974326034666976317574959221467233054834275333420902169192002808671338181517651346727246785601808728069857930625163918159007340191781263377206294372175843484347385673764543549367644520210551964132041909034751090895590107339268507689928187673365901832859960770042196116153198923086688415649287322393919336877586319575388282868802432229285749062834698800318009782112783464473699430685892744593514603315540521613239180496028511094200920068108609671137169901631124957773356288814757767513379750010214828424349713144822155569448244251296517310052829330007596880320269714714305579972727024023845566932003093361534001346388226512858496049433741365136201759095500768872572379083996778771043278323618218079288644512985704722945918876390177410162154925294434044663345537960358152590844827165047142106494943390564029671203957889365208587356863848564038234012473264701575682856267631489490964863708780377365370562286324227491995329680995376011765735607066889623340654736346287530174001382893356965641419762442738806532005593571952599294161918250088559429804935625623475763876753250261768105102943789482800381819094016333853621848244778575211141902001157221548910141265746234094097604780590246929152237692070215043086599849769077258465120054623089267304423083990985283617980874882165175013947688392195961973835219025378292184274002679949868355047798670887434934877884263491135774173793789638032664121660878640151026693538539291175867539820704545400991554809940555947716302278268228819966911992077727685690042564453424661594551912469849409179713127670812163558797375505469539602019928916868690131678225326998283118811765205171314240303103619077034486006857690712568299122922890416514184354122151892709261911827890720386472989028312449637167226226079470589077301515792370665053773557367854297496141283239810725678054477845503338025822999006143290065674581131383706209334513827288509510058942843640093475258261534815493433343923202784019063406103988220724008595714547856363144277093578186468700313831150603202390138193673836582311063194235113752201259302216465067723953674010834607247360600187323359572596742577925778753474648474385583366726330579751806279481741545535766324556219906771543654287627692118653976305541667727371184712556819537429878906123197797682381322310360998711074411637782453415559306946528706451437145182554817093867458862259971932002201256794770803457553406855939564711660394975509368907409141140819867403429730897759319547758494032028359252836868265601285379341592958176034283466192813273600986109862053251020303654389147669581456125870528514765790448331263261261275475967370613929464344655023985634990690441716812977931560454244781181516843239973310249040861202320352625994551380919943942422644207306699422302078757372113453978409189295271883651511577284335650728339632667272773655271277835109606488349161116597296477072833978817620710642369653585760001786133457424747164675479560557604315992115996171053100007893120312916592118145597736321281310088459968596515479915967334820692572586944651048409016072543037947937439924948170354084929482716739353879309189149105940273882575634426740292043612971969003553202780746012997015167764566166086620650983149065183990813403657892330777427579288817853974784253456215948516899256315416653804608619375766101159282719162654984599284413809179093450289446222698746062369124910222676356984624729875553051228077306038272314767273339236971473182746508235706493645857416506527528033657588500186798302233361530748567770189621522377728078662970997138460124564113933535231144394136311364125063031705754638671649219177818188727804998651429623692032897521320441645948231116515680709360182325747196151283981182450028573594113668993630028651970864349680158377378960707340501711029221909942356787598529910642197942528880715982685438973651019956985537134356344844499948066238711559832680009139129230521345318710933406054852880528023480091981952064083701465298058753408827757824197190966845092572735422915973394209667721622675032838016836701268327087718197447113416474042333643324178455751429177479553973263018478223787511033467842821574771997718724907884569287855914978807215276216777487839372594667697466283646364324636870088891169603064008013321225544033259905510759601301217827216735090870830367828069535618798243249758543158370245511038222955269283087687897247615175634507109322670487519583543893267268520625106523486429896817851280346257186736577340840303172544172060562613289306744282270727818969513042713693386732530835043523622680664723620365359551522004610868541956015009851807742491375204290318837390768814511063319459431968016034238314294701177907339951880518632249363303737428987666395573004912311542547445635751228217960314931921755362155975173541771496270578666609166040129420641332056019879886479191028082572373344097806550004676084659077213277620485344288730641075216358008586042833817269955428440736006869980254634660144658650587017966628011375048195127464755134410941297544400517363615053233195614027633605043714849935500979339657556934728358078932701517616687071678505215157824221181977230596102718022113760557756508224510733940623404403522459232467132972924729590596607658491677679758175455500629289709458071169846248333631850495054136032446037122523002840366443270502682929121298013258704855451849166937175611706931575295002611807299804573870328033446422407624565753091061177342684363974742384207824933961324358878511433221439680160135550669500491595007129524097148418320524054713082666000289406977374674792357783279567686618221831164536152981043236739652109901286166797655130483366709558198145730160957319527868897617949738664731125813687331982562667229155559341762250892788702151915522317201257618794622116819631251126015128786659330839972870209589444425483857813403467475295709847983486791009529393177067779595282935586933838928401788831265834018207413113059012317875493132600386474392184202431142502717934449849109538269804121337806395730645594985291207547945343378821860367816869162464018601760989508005757040007613617583726869278889401279370879168731321041767492748146988683866933742989452900095322620623439557090365005347022096836720699559919206962310396834888855246790686617100250522735631931622916480153383634406669330611916306523322209677175050766526506928945267104663596291397570417951995407638592691435297273926525858349226001281210594341546090490896668448353479476740184091693440821121437575991844978935887981199988378104395450582209265478153024192434287549661529872752062512421645652414433769982120575773976979255452979275548311022227497804116723290650593640701326838116937117861709365336114661791958895816380085858227273146398812507431885930628540477252197325520103315021122179520602902261508148427987160887715683048894626628110875165719315803483791380475609981192779258193816013463820567615791947688858111977946573731371412896940425858642608461356780363809590304941436012976511086995327556982120044158668042851351485946280094502680282789078366103133193981570053235773709828419626117546312776400179255663368868410146625787264487540176093362492442105565222772843270865638145258939894095286299449126389851502639968925280789714373052711703482878632549311351468566743745502638079331233890987581997446383546982888408867958361478572004108178195267273630793701973161108035513307543426319758326623125873440471849275378555505659744347641467171749341623139966841084072883691239929036817624897833842304924086916049333585720849523415746389995902555929846484168530920932239450099842609353650712961038293914178384059673601317690142192294468824770343309980382663330910761357953567031620320156529942633836389917031552967101157171386605381110987649809142253221211885497858375452673543597066911907582773427165708311055881578202657719055716555229917225925199417118207127471635220224166932627204294585007602675155722364500253579838951440306567087689640251984362047673669476247213222076489353185298134830566157261004674616090217820368092789803584434628331615296800144294383434813251494447836469971094300627871751901583054975268249706681967084240041532931426707243910919269016602701227549972625900669589063641020196803150521418400014612813151431704629289361260451399255636599087035111822170092048786834138155836860001022139317162938175161481422045439766128328489548792451489203915346873564127793802822945618826470036726138100729222789243834143289121957615846825889532244491262372104309959217485693600393072875597764359278257219585173289203289373649695654810015209406770758433196108019191526970359449728205424099217747948855101892579673832190733955438482190213913546103957287564147009796204801679031823271129616918837055865294232028211967775211030427824285323075765857525501803872772311951540730843007100420922318378952510609510146744802307784143329653969117485526374925018136516701659813169341969516820963864880921930027649289087855906578223221964400442443845503444471502714727566153260498437996491046373298777309466552416081745527731188401660816921694723561545945639842474351310735621151612254696731133754720321066639057395945458357889811186178324261238258387629483664197843693455941473887456954555106879533894113498798990599543328825651993184489233911989102422072732503304780443482482631679538318812345364320343976941067634205074027762099250441628598738008542063309404490840874629501180438768199563680977412512147825641458109605463945483538312120741133967096575761170921701569194046703005278833850119606881285436914259105126429379763596380442614466936903741447024098707900609286591456627747370705418470014126066636777256970661853998281839518386935147370302170829143866834918955739571146882248943834768015147317842088430908014658858769187712165641204838346950799106078824258535962968911647995139741902725378504631972160757532992476702013619487991073630985615243470277483287408707462139789750922989475628757311491231819192777775556843021379643624950093850855751306244946161283158063084985942058804578704078785515289719360456282644804687204566172880931465167028752283204657047496845802111981776297074091159420791493023781858413123207558236599809265253524234756986784289710312193378059604896982190750251304431226998315156450957979143815249557321035853507966260643344733981207748446986453521343942991395784011881459016726094688838855923487055032101404672953629067700802205950873829180852655117756318673595463745915845363391393801788926019126055103459350757967533983990829864822423213165178011470479533400954086803420795695416413113135505666117924350822638514865192802958371094626166967342952888209695927144313382761321007621497855663453697598846376520810640392838659143588297104990724241461189967117103467866306169690503731543153385041441444438577519281212082102519526090256985712782919381403014206202610683350398499458356221159155783560795763515299610604051548273336617677383406496856449252423327982642009814218943291734435747866810316302538442076556722190100592807309090078580449191845003829560291915383448907964461571120018222173427521505846427751374514677885234986818302513692382696295177021772692528700944035940577934112915061449475258823639041486185734141833290220129687836159176523990639890991571159559355676459033076816414419845129941860910715526173219470295359256820831108954817488732891594760874594817098888310190065088204222186688229106327370360854471074710804892547330897052307538333384151108973076302032735905789880482107806930863805361885579645761057623018844633724469611597969699932476635084046605920344321714425712773923034115042505708630495725119876770193866370920645610897938154224397738336028622288236479758761741488277700962489510182397714125693022200631359251922488938193736190554035615770084653297526555503049938525731285403824614959879327056558531969324783521876282827748273693948065961564891925347719840553874804427669092596855956020727898300261155209277910428226631010454188865270353166747292907085642544172223309105163560882086109904820627869701036948655891645399219118345402280331042182748410590567150586091536669232563402988633518464432952007768643087419675280937643264326672223112216556883679826461784773799624030049157803060204202615615506942744707751415699612697991889112020018520257531724731667342763