Un millón de dígitos de pi



El primer millón de dígitos del número pi:


3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931257058635662018558100729360659876486117910453348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800700237877659134401712749470420562230538994561314071127000407854733269939081454664645880797270826683063432858785698305235808933065757406795457163775254202114955761581400250126228594130216471550979259230990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901938971311179042978285647503203198691514028708085990480109412147221317947647772622414254854540332157185306142288137585043063321751829798662237172159160771669254748738986654949450114654062843366393790039769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296617119637792133757511495950156604963186294726547364252308177036751590673502350728354056704038674351362222477158915049530984448933309634087807693259939780541934144737744184263129860809988868741326047215695162396586457302163159819319516735381297416772947867242292465436680098067692823828068996400482435403701416314965897940924323789690706977942236250822168895738379862300159377647165122893578601588161755782973523344604281512627203734314653197777416031990665541876397929334419521541341899485444734567383162499341913181480927777103863877343177207545654532207770921201905166096280490926360197598828161332316663652861932668633606273567630354477628035045077723554710585954870279081435624014517180624643626794561275318134078330336254232783944975382437205835311477119926063813346776879695970309833913077109870408591337464144282277263465947047458784778720192771528073176790770715721344473060570073349243693113835049316312840425121925651798069411352801314701304781643788518529092854520116583934196562134914341595625865865570552690496520985803385072242648293972858478316305777756068887644624824685792603953527734803048029005876075825104747091643961362676044925627420420832085661190625454337213153595845068772460290161876679524061634252257719542916299193064553779914037340432875262888963995879475729174642635745525407909145135711136941091193932519107602082520261879853188770584297259167781314969900901921169717372784768472686084900337702424291651300500516832336435038951702989392233451722013812806965011784408745196012122859937162313017114448464090389064495444006198690754851602632750529834918740786680881833851022833450850486082503930213321971551843063545500766828294930413776552793975175461395398468339363830474611996653858153842056853386218672523340283087112328278921250771262946322956398989893582116745627010218356462201349671518819097303811980049734072396103685406643193950979019069963955245300545058068550195673022921913933918568034490398205955100226353536192041994745538593810234395544959778377902374216172711172364343543947822181852862408514006660443325888569867054315470696574745855033232334210730154594051655379068662733379958511562578432298827372319898757141595781119635833005940873068121602876496286744604774649159950549737425626901049037781986835938146574126804925648798556145372347867330390468838343634655379498641927056387293174872332083760112302991136793862708943879936201629515413371424892830722012690147546684765357616477379467520049075715552781965362132392640616013635815590742202020318727760527721900556148425551879253034351398442532234157623361064250639049750086562710953591946589751413103482276930624743536325691607815478181152843667957061108615331504452127473924544945423682886061340841486377670096120715124914043027253860764823634143346235189757664521641376796903149501910857598442391986291642193994907236234646844117394032659184044378051333894525742399508296591228508555821572503107125701266830240292952522011872676756220415420516184163484756516999811614101002996078386909291603028840026910414079288621507842451670908700069928212066041837180653556725253256753286129104248776182582976515795984703562226293486003415872298053498965022629174878820273420922224533985626476691490556284250391275771028402799806636582548892648802545661017296702664076559042909945681506526530537182941270336931378517860904070866711496558343434769338578171138645587367812301458768712660348913909562009939361031029161615288138437909904231747336394804575931493140529763475748119356709110137751721008031559024853090669203767192203322909433467685142214477379393751703443661991040337511173547191855046449026365512816228824462575916333039107225383742182140883508657391771509682887478265699599574490661758344137522397096834080053559849175417381883999446974867626551658276584835884531427756879002909517028352971634456212964043523117600665101241200659755851276178583829204197484423608007193045761893234922927965019875187212726750798125547095890455635792122103334669749923563025494780249011419521238281530911407907386025152274299581807247162591668545133312394804947079119153267343028244186041426363954800044800267049624820179289647669758318327131425170296923488962766844032326092752496035799646925650493681836090032380929345958897069536534940603402166544375589004563288225054525564056448246515187547119621844396582533754388569094113031509526179378002974120766514793942590298969594699556576121865619673378623625612521632086286922210327488921865436480229678070576561514463204692790682120738837781423356282360896320806822246801224826117718589638140918390367367222088832151375560037279839400415297002878307667094447456013455641725437090697939612257142989467154357846878861444581231459357198492252847160504922124247014121478057345510500801908699603302763478708108175450119307141223390866393833952942578690507643100638351983438934159613185434754649556978103829309716465143840700707360411237359984345225161050702705623526601276484830840761183013052793205427462865403603674532865105706587488225698157936789766974220575059683440869735020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001264560016237428802109276457931065792295524988727584610126483699989225695968815920560010165525637567856672279661988578279484885583439751874454551296563443480396642055798293680435220277098429423253302257634180703947699415979159453006975214829336655566156787364005366656416547321704390352132954352916941459904160875320186837937023488868947915107163785290234529244077365949563051007421087142613497459561513849871375704710178795731042296906667021449863746459528082436944578977233004876476524133907592043401963403911473202338071509522201068256342747164602433544005152126693249341967397704159568375355516673027390074972973635496453328886984406119649616277344951827369558822075735517665158985519098666539354948106887320685990754079234240230092590070173196036225475647894064754834664776041146323390565134330684495397907090302346046147096169688688501408347040546074295869913829668246818571031887906528703665083243197440477185567893482308943106828702722809736248093996270607472645539925399442808113736943388729406307926159599546262462970706259484556903471197299640908941805953439325123623550813494900436427852713831591256898929519642728757394691427253436694153236100453730488198551706594121735246258954873016760029886592578662856124966552353382942878542534048308330701653722856355915253478445981831341129001999205981352205117336585640782648494276441137639386692480311836445369858917544264739988228462184490087776977631279572267265556259628254276531830013407092233436577916012809317940171859859993384923549564005709955856113498025249906698423301735035804408116855265311709957089942732870925848789443646005041089226691783525870785951298344172953519537885534573742608590290817651557803905946408735061232261120093731080485485263572282576820341605048466277504500312620080079980492548534694146977516493270950493463938243222718851597405470214828971117779237612257887347718819682546298126868581705074027255026332904497627789442362167411918626943965067151577958675648239939176042601763387045499017614364120469218237076488783419689686118155815873606293860381017121585527266830082383404656475880405138080163363887421637140643549556186896411228214075330265510042410489678352858829024367090488711819090949453314421828766181031007354770549815968077200947469613436092861484941785017180779306810854690009445899527942439813921350558642219648349151263901280383200109773868066287792397180146134324457264009737425700735921003154150893679300816998053652027600727749674584002836240534603726341655425902760183484030681138185510597970566400750942608788573579603732451414678670368809880609716425849759513806930944940151542222194329130217391253835591503100333032511174915696917450271494331515588540392216409722910112903552181576282328318234254832611191280092825256190205263016391147724733148573910777587442538761174657867116941477642144111126358355387136101102326798775641024682403226483464176636980663785768134920453022408197278564719839630878154322116691224641591177673225326433568614618654522268126887268445968442416107854016768142080885028005414361314623082102594173756238994207571362751674573189189456283525704413354375857534269869947254703165661399199968262824727064133622217892390317608542894373393561889165125042440400895271983787386480584726895462438823437517885201439560057104811949884239060613695734231559079670346149143447886360410318235073650277859089757827273130504889398900992391350337325085598265586708924261242947367019390772713070686917092646254842324074855036608013604668951184009366860954632500214585293095000090715105823626729326453738210493872499669933942468551648326113414611068026744663733437534076429402668297386522093570162638464852851490362932019919968828517183953669134522244470804592396602817156551565666111359823112250628905854914509715755390024393153519090210711945730024388017661503527086260253788179751947806101371500448991721002220133501310601639154158957803711779277522597874289191791552241718958536168059474123419339842021874564925644346239253195313510331147639491199507285843065836193536932969928983791494193940608572486396883690326556436421664425760791471086998431573374964883529276932822076294728238153740996154559879825989109371712621828302584811238901196822142945766758071865380650648702613389282299497257453033283896381843944770779402284359883410035838542389735424395647555684095224844554139239410001620769363684677641301781965937997155746854194633489374843912974239143365936041003523437770658886778113949861647874714079326385873862473288964564359877466763847946650407411182565837887845485814896296127399841344272608606187245545236064315371011274680977870446409475828034876975894832824123929296058294861919667091895808983320121031843034012849511620353428014412761728583024355983003204202451207287253558119584014918096925339507577840006746552603144616705082768277222353419110263416315714740612385042584598841990761128725805911393568960143166828317632356732541707342081733223046298799280490851409479036887868789493054695570307261900950207643349335910602454508645362893545686295853131533718386826561786227363716975774183023986006591481616404944965011732131389574706208847480236537103115089842799275442685327797431139514357417221975979935968525228574526379628961269157235798662057340837576687388426640599099350500081337543245463596750484423528487470144354541957625847356421619813407346854111766883118654489377697956651727966232671481033864391375186594673002443450054499539974237232871249483470604406347160632583064982979551010954183623503030945309733583446283947630477564501500850757894954893139394489921612552559770143685894358587752637962559708167764380012543650237141278346792610199558522471722017772370041780841942394872540680155603599839054898572354674564239058585021671903139526294455439131663134530893906204678438778505423939052473136201294769187497519101147231528932677253391814660730008902776896311481090220972452075916729700785058071718638105496797310016787085069420709223290807038326345345203802786099055690013413718236837099194951648960075504934126787643674638490206396401976668559233565463913836318574569814719621084108096188460545603903845534372914144651347494078488442377217515433426030669883176833100113310869042193903108014378433415137092435301367763108491351615642269847507430329716746964066653152703532546711266752246055119958183196376370761799191920357958200759560530234626775794393630746305690108011494271410093913691381072581378135789400559950018354251184172136055727522103526803735726527922417373605751127887218190844900617801388971077082293100279766593583875890939568814856026322439372656247277603789081445883785501970284377936240782505270487581647032458129087839523245323789602984166922548964971560698119218658492677040395648127810217991321741630581055459880130048456299765112124153637451500563507012781592671424134210330156616535602473380784302865525722275304999883701534879300806260180962381516136690334111138653851091936739383522934588832255088706450753947395204396807906708680644509698654880168287434378612645381583428075306184548590379821799459968115441974253634439960290251001588827216474500682070419376158454712318346007262933955054823955713725684023226821301247679452264482091023564775272308208106351889915269288910845557112660396503439789627825001611015323516051965590421184494990778999200732947690586857787872098290135295661397888486050978608595701773129815531495168146717695976099421003618355913877781769845875810446628399880600616229848616935337386578773598336161338413385368421197893890018529569196780455448285848370117096721253533875862158231013310387766827211572694951817958975469399264219791552338576623167627547570354699414892904130186386119439196283887054367774322427680913236544948536676800000106526248547305586159899914017076983854831887501429389089950685453076511680333732226517566220752695179144225280816517166776672793035485154204023817460892328391703275425750867655117859395002793389592057668278967764453184040418554010435134838953120132637836928358082719378312654961745997056745071833206503455664403449045362756001125018433560736122276594927839370647842645676338818807565612168960504161139039063960162022153684941092605387688714837989559999112099164646441191856827700457424343402167227644558933012778158686952506949936461017568506016714535431581480105458860564550133203758645485840324029871709348091055621167154684847780394475697980426318099175642280987399876697323769573701580806822904599212366168902596273043067931653114940176473769387351409336183321614280214976339918983548487562529875242387307755955595546519639440182184099841248982623673771467226061633643296406335728107078875816404381485018841143188598827694490119321296827158884133869434682859006664080631407775772570563072940049294030242049841656547973670548558044586572022763784046682337985282710578431975354179501134727362577408021347682604502285157979579764746702284099956160156910890384582450267926594205550395879229818526480070683765041836562094555434613513415257006597488191634135955671964965403218727160264859304903978748958906612725079482827693895352175362185079629778514618843271922322381015874445052866523802253284389137527384589238442253547265309817157844783421582232702069028723233005386216347988509469547200479523112015043293226628272763217790884008786148022147537657810581970222630971749507212724847947816957296142365859578209083073323356034846531873029302665964501371837542889755797144992465403868179921389346924474198509733462679332107268687076806263991936196504409954216762784091466985692571507431574079380532392523947755744159184582156251819215523370960748332923492103451462643744980559610330799414534778457469999212859999939961228161521931488876938802228108300198601654941654261696858678837260958774567618250727599295089318052187292461086763995891614585505839727420980909781729323930106766386824040111304024700735085782872462713494636853181546969046696869392547251941399291465242385776255004748529547681479546700705034799958886769501612497228204030399546327883069597624936151010243655535223069061294938859901573466102371223547891129254769617600504797492806072126803922691102777226102544149221576504508120677173571202718024296810620377657883716690910941807448781404907551782038565390991047759414132154328440625030180275716965082096427348414695726397884256008453121406593580904127113592004197598513625479616063228873618136737324450607924411763997597461938358457491598809766744709300654634242346063423747466608043170126005205592849369594143408146852981505394717890045183575515412522359059068726487863575254191128887737176637486027660634960353679470269232297186832771739323619200777452212624751869833495151019864269887847171939664976907082521742336566272592844062043021411371992278526998469884770232382384005565551788908766136013047709843861168705231055314916251728373272867600724817298763756981633541507460883866364069347043720668865127568826614973078865701568501691864748854167915459650723428773069985371390430026653078398776385032381821553559732353068604301067576083890862704984188859513809103042359578249514398859011318583584066747237029714978508414585308578133915627076035639076394731145549583226694570249413983163433237897595568085683629725386791327505554252449194358912840504522695381217913191451350099384631177401797151228378546011603595540286440590249646693070776905548102885020808580087811577381719174177601733073855475800605601433774329901272867725304318251975791679296996504146070664571258883469797964293162296552016879730003564630457930884032748077181155533090988702550520768046303460865816539487695196004408482065967379473168086415645650530049881616490578831154345485052660069823093157776500378070466126470602145750579327096204782561524714591896522360839664562410519551052235723973951288181640597859142791481654263289200428160913693777372229998332708208296995573772737566761552711392258805520189887620114168005468736558063347160373429170390798639652296131280178267971728982293607028806908776866059325274637840539769184808204102194471971386925608416245112398062011318454124478205011079876071715568315407886543904121087303240201068534194723047666672174986986854707678120512473679247919315085644477537985379973223445612278584329684664751333657369238720146472367942787004250325558992688434959287612400755875694641370562514001179713316620715371543600687647731867558714878398908107429530941060596944315847753970094398839491443235366853920994687964506653398573888786614762944341401049888993160051207678103588611660202961193639682134960750111649832785635316145168457695687109002999769841263266502347716728657378579085746646077228341540311441529418804782543876177079043000156698677679576090996693607559496515273634981189641304331166277471233881740603731743970540670310967676574869535878967003192586625941051053358438465602339179674926784476370847497833365557900738419147319886271352595462518160434225372996286326749682405806029642114638643686422472488728343417044157348248183330164056695966886676956349141632842641497453334999948000266998758881593507357815195889900539512085351035726137364034367534714104836017546488300407846416745216737190483109676711344349481926268111073994825060739495073503169019731852119552635632584339099822498624067031076831844660729124874754031617969941139738776589986855417031884778867592902607004321266617919223520938227878880988633599116081923535557046463491132085918979613279131975649097600013996234445535014346426860464495862476909434704829329414041114654092398834443515913320107739441118407410768498106634724104823935827401944935665161088463125678529776973468430306146241803585293315973458303845541033701091676776374276210213701354854450926307190114731848574923318167207213727935567952844392548156091372812840633303937356242001604566455741458816605216660873874804724339121295587776390696903707882852775389405246075849623157436917113176134783882719416860662572103685132156647800147675231039357860689611125996028183930954870905907386135191459181951029732787557104972901148717189718004696169777001791391961379141716270701895846921434369676292745910994006008498356842520191559370370101104974733949387788598941743303178534870760322198297057975119144051099423588303454635349234982688362404332726741554030161950568065418093940998202060999414021689090070821330723089662119775530665918814119157783627292746156185710372172471009521423696483086410259288745799932237495519122195190342445230753513380685680735446499512720317448719540397610730806026990625807602029273145525207807991418429063884437349968145827337207266391767020118300464819000241308350884658415214899127610651374153943565721139032857491876909441370209051703148777346165287984823533829726013611098451484182380812054099612527458088109948697221612852489742555551607637167505489617301680961380381191436114399210638005083214098760459930932485102516829446726066613815174571255975495358023998314698220361338082849935670557552471290274539776214049318201465800802156653606776550878380430413431059180460680083459113664083488740800574127258670479225831912741573908091438313845642415094084913391809684025116399193685322555733896695374902662092326131885589158083245557194845387562878612885900410600607374650140262782402734696252821717494158233174923968353013617865367376064216677813773995100658952887742766263684183068019080460984980946976366733566228291513235278880615776827815958866918023894033307644191240341202231636857786035727694154177882643523813190502808701857504704631293335375728538660588890458311145077394293520199432197117164223500564404297989208159430716701985746927384865383343614579463417592257389858800169801475742054299580124295810545651083104629728293758416116253256251657249807849209989799062003593650993472158296517413579849104711166079158743698654122234834188772292944633517865385673196255985202607294767407261676714557364981210567771689348491766077170527718760119990814411305864557791052568430481144026193840232247093924980293355073184589035539713308844617410795916251171486487446861124760542867343670904667846867027409188101424971114965781772427934707021668829561087779440504843752844337510882826477197854000650970403302186255614733211777117441335028160884035178145254196432030957601869464908868154528562134698835544456024955666843660292219512483091060537720198021831010327041783866544718126039719068846237085751808003532704718565949947612424811099928867915896904956394762460842406593094862150769031498702067353384834955083636601784877106080980426924713241000946401437360326564518456679245666955100150229833079849607994988249706172367449361226222961790814311414660941234159359309585407913908720832273354957208075716517187659944985693795623875551617575438091780528029464200447215396280746360211329425591600257073562812638733106005891065245708024474937543184149401482119996276453106800663118382376163966318093144467129861552759820145141027560068929750246304017351489194576360789352855505317331416457050499644389093630843874484783961684051845273288403234520247056851646571647713932377551729479512613239822960239454857975458651745878771331813875295980941217422730035229650808917770506825924882232215493804837145478164721397682096332050830564792048208592047549985732038887639160199524091893894557676874973085695595801065952650303626615975066222508406742889826590751063756356996821151094966974458054728869363102036782325018232370845979011154847208761821247781326633041207621658731297081123075815982124863980721240786887811450165582513617890307086087019897588980745664395515741536319319198107057533663373803827215279884935039748001589051942087971130805123393322190346624991716915094854140187106035460379464337900589095772118080446574396280618671786101715674096766208029576657705129120990794430463289294730615951043090222143937184956063405618934251305726829146578329334052463502892917547087256484260034962961165413823007731332729830500160256724014185152041890701154288579920812198449315699905918201181973350012618772803681248199587707020753240636125931343859554254778196114293516356122349666152261473539967405158499860355295332924575238881013620234762466905581643896786309762736550472434864307121849437348530060638764456627218666170123812771562137974614986132874411771455244470899714452288566294244023018479120547849857452163469644897389206240194351831008828348024924908540307786387516591130287395878709810077271827187452901397283661484214287170553179654307650453432460053636147261818096997693348626407743519992868632383508875668359509726557481543194019557685043724800102041374983187225967738715495839971844490727914196584593008394263702087563539821696205532480321226749891140267852859967340524203109179789990571882194939132075343170798002373659098537552023891164346718558290685371189795262623449248339249634244971465684659124891855662958932990903523923333364743520370770101084388003290759834217018554228386161721041760301164591878053936744747205998502358289183369292233732399948043710841965947316265482574809948250999183300697656936715968936449334886474421350084070066088359723503953234017958255703601693699098867113210979889707051728075585519126993067309925070407024556850778679069476612629808225163313639952117098452809263037592242674257559989289278370474445218936320348941552104459726188380030067761793138139916205806270165102445886924764924689192461212531027573139084047000714356136231699237169484813255420091453041037135453296620639210547982439212517254013231490274058589206321758949434548906846399313757091034633271415316223280552297297953801880162859073572955416278867649827418616421878988574107164906919185116281528548679417363890665388576422915834250067361245384916067413734017357277995634104332688356950781493137800736235418007061918026732855119194267609122103598746924117283749312616339500123959924050845437569850795704622266461900010350049018303415354584283376437811198855631877779253720116671853954183598443830520376281944076159410682071697030228515225057312609304689842343315273213136121658280807521263154773060442377475350595228717440266638914881717308643611138906942027908814311944879941715404210341219084709408025402393294294549387864023051292711909751353600092197110541209668311151632870542302847007312065803262641711616595761327235156666253667271899853419989523688483099930275741991646384142707798870887422927705389122717248632202889842512528721782603050099451082478357290569198855546788607946280537122704246654319214528176074148240382783582971930101788834567416781139895475044833931468963076339665722672704339321674542182455706252479721997866854279897799233957905758189062252547358220523642485078340711014498047872669199018643882293230538231855973286978092225352959101734140733488476100556401824239219269506208318381454698392366461363989101210217709597670490830508185470419466437131229969235889538493013635657618610606222870559942337163102127845744646398973818856674626087948201864748767272722206267646533809980196688368099415907577685263986514625333631245053640261056960551318381317426118442018908885319635698696279503673842431301133175330532980201668881748134298868158557781034323175306478498321062971842518438553442762012823457071698853051832617964117857960888815032960229070561447622091509473903594664691623539680920139457817589108893199211226007392814916948161527384273626429809823406320024402449589445612916704950823581248739179964864113348032475777521970893277226234948601504665268143987705161531702669692970492831628550421289814670619533197026950721437823047687528028735412616639170824592517001071418085480063692325946201900227808740985977192180515853214739265325155903541020928466592529991435379182531454529059841581763705892790690989691116438118780943537152133226144362531449012745477269573939348154691631162492887357471882407150399500944673195431619385548520766573882513963916357672315100555603726339486720820780865373494244011579966750736071115935133195919712094896471755302453136477094209463569698222667377520994516845064362382421185353488798939567318780660610788544000550827657030558744854180577889171920788142335113866292966717964346876007704799953788338787034871802184243734211227394025571769081960309201824018842705704609262256417837526526335832424066125331152942345796556950250681001831090041124537901533296615697052237921032570693705109083078947999900499939532215362274847660361367769797856738658467093667958858378879562594646489137665219958828693380183601193236857855855819555604215625088365020332202451376215820461810670519533065306060650105488716724537794283133887163139559690583208341689847606560711834713621812324622725884199028614208728495687963932546428534307530110528571382964370999035694888528519040295604734613113826387889755178856042499874831638280404684861893818959054203988987265069762020199554841265000539442820393012748163815853039643992547020167275932857436666164411096256633730540921951967514832873480895747777527834422109107311135182804603634719818565557295714474768255285786334934285842311874944000322969069775831590385803935352135886007960034209754739229673331064939560181223781285458431760556173386112673478074585067606304822940965304111830667108189303110887172816751957967534718853722930961614320400638132246584111115775835858113501856904781536893813771847281475199835050478129771859908470762197460588742325699582889253504193795826061621184236876851141831606831586799460165205774052942305360178031335726326705479033840125730591233960188013782542192709476733719198728738524805742124892118347087662966720727232565056512933312605950577772754247124164831283298207236175057467387012820957554430596839555568686118839713552208445285264008125202766555767749596962661260456524568408613923826576858338469849977872670655519185446869846947849573462260629421962455708537127277652309895545019303773216664918257815467729200521266714346320963789185232321501897612603437368406719419303774688099929687758244104787812326625318184596045385354383911449677531286426092521153767325886672260404252349108702695809964759580579466397341906401003636190404203311357933654242630356145700901124480089002080147805660371015412232889146572239314507607167064355682743774396578906797268743847307634645167756210309860409271709095128086309029738504452718289274968921210667008164858339553773591913695015316201890888748421079870689911480466927065094076204650277252865072890532854856143316081269300569378541786109696920253886503457718317668688592368148847527649846882194973972970773718718840041432312763650481453112285099002074240925585925292610302106736815434701525234878635164397623586041919412969769040526483234700991115424260127343802208933109668636789869497799400126016422760926082349304118064382913834735467972539926233879158299848645927173405922562074910530853153718291168163721939518870095778818158685046450769934394098743351443162633031724774748689791820923948083314397084067308407958935810896656477585990556376952523265361442478023082681183103773588708924061303133647737101162821461466167940409051861526036009252194721889091810733587196414214447865489952858234394705007983038853886083103571930600277119455802191194289992272235345870756624692617766317885514435021828702668561066500353105021631820601760921798468493686316129372795187307897263735371715025637873357977180818487845886650433582437700414771041493492743845758710715973155943942641257027096512510811554824793940359768118811728247215825010949609662539339538092219559191818855267806214992317276316321833989693807561685591175299845013206712939240414459386239880938124045219148483164621014738918251010909677386906640415897361047643650006807710565671848628149637111883219244566394581449148616550049567698269030891118568798692947051352481609174324301538368470729289898284602223730145265567989862776796809146979837826876431159883210904371561129976652153963546442086919756737000573876497843768628768179249746943842746525631632300555130417422734164645512781278457777245752038654375428282567141288583454443513256205446424101103795546419058116862305964476958705407214198521210673433241075676757581845699069304604752277016700568454396923404171108988899341635058515788735343081552081177207188037910404698306957868547393765643363197978680367187307969392423632144845035477631567025539006542311792015346497792906624150832885839529054263768766896880503331722780018588506973623240389470047189761934734430843744375992503417880797223585913424581314404984770173236169471976571535319775499716278566311904691260918259124989036765417697990362375528652637573376352696934435440047306719886890196814742876779086697968852250163694985673021752313252926537589641517147955953878427849986645630287883196209983049451987439636907068276265748581043911223261879405994155406327013198989570376110532360629867480377915376751158304320849872092028092975264981256916342500052290887264692528466610466539217148208013050229805263783642695973370705392278915351056888393811324975707133102950443034671598944878684711643832805069250776627450012200352620370946602341464899839025258883014867816219677519458316771876275720050543979441245990077115205154619930509838698254284640725554092740313257163264079293418334214709041254253352324802193227707535554679587163835875018159338717423606155117101312352563348582036514614187004920570437201826173319471570086757853933607862273955818579758725874410254207710547536129404746010009409544495966288148691590389907186598056361713769222729076419775517772010427649694961105622059250242021770426962215495872645398922769766031052498085575947163107587013320886146326641259114863388122028444069416948826152957762532501987035987067438046982194205638125583343642194923227593722128905642094308235254408411086454536940496927149400331978286131818618881111840825786592875742638445005994422956858646048103301538891149948693543603022181094346676400002236255057363129462629609619876056425996394613869233083719626595473923462413459779574852464783798079569319865081597767535055391899115133525229873611277918274854200868953965835942196333150286956119201229888988700607999279541118826902307891310760361763477948943203210277335941690865007193280401716384064498787175375678118532132840821657110754952829497493621460821558320568723218557406516109627487437509809223021160998263303391546949464449100451528092508974507489676032409076898365294065792019831526541065813682379198409064571246894847020935776119313998024681340520039478194986620262400890215016616381353838151503773502296607462795291038406868556907015751662419298724448271942933100485482445458071889763300323252582158128032746796200281476243182862217105435289834820827345168018613171959332471107466222850871066611770346535283957762599774467218571581612641114327179434788599089280848669491413909771673690027775850268664654056595039486784111079011610400857274456293842549416759460548711723594642910585090995021495879311219613590831588262068233215615308683373083817327932819698387508708348388046388478441884003184712697454370937329836240287519792080232187874488287284372737801782700805878241074935751488997891173974612932035108143270325140903048746226294234432757126008664250833318768865075642927160552528954492153765175149219636718104943531785838345386525565664065725136357506435323650893679043170259787817719031486796384082881020946149007971513771709906195496964007086766710233004867263147551053723175711432231741141168062286420638890621019235522354671166213749969326932173704310598722503945657492461697826097025335947502091383667377289443869640002811034402608471289900074680776484408871134135250336787731679770937277868216611786534423173226463784769787514433209534000165069213054647689098505020301504488083426184520873053097318949291642532293361243151430657826407028389840984160295030924189712097160164926561341343342229882790992178604267981245728534580133826099587717811310216734025656274400729683406619848067661580502169183372368039902793160642043681207990031626444914619021945822969099212278855394878353830564686488165556229431567312827439082645061162894280350166133669782405177015521962652272545585073864058529983037918035043287670380925216790757120406123759632768567484507915114731344000183257034492090971243580944790046249431345502890068064870429353403743603262582053579011839564908935434510134296961754524957396062149028872893279252069653538639644322538832752249960598697475988232991626354597332444516375533437749292899058117578635555562693742691094711700216541171821975051983178713710605106379555858890556885288798908475091576463907469361988150781468526213325247383765119299015610918977792200870579339646382749068069876916819749236562422608715417610043060890437797667851966189140414492527048088197149880154205778700652159400928977760133075684796699295543365613984773806039436889588764605498387147896848280538470173087111776115966350503997934386933911978988710915654170913308260764740630571141109883938809548143782847452883836807941888434266622207043872288741394780101772139228191199236540551639589347426395382482960903690028835932774585506080131798840716244656399794827578365019551422155133928197822698427863839167971509126241054872570092407004548848569295044811073808799654748156891393538094347455697212891982717702076661360248958146811913361412125878389557735719498631721084439890142394849665925173138817160266326193106536653504147307080441493916936326237376777709585031325599009576273195730864804246770121232702053374266705314244820816813030639737873664248367253983748769098060218278578621651273856351329014890350988327061725893257536399397905572917516009761545904477169226580631511102803843601737474215247608515209901615858231257159073342173657626714239047827958728150509563309280266845893764964977023297364131906098274063353108979246424213458374090116939196425045912881340349881063540088759682005440836438651661788055760895689672753153808194207733259791727843762566118431989102500749182908647514979400316070384554946538594602745244746681231468794344161099333890899263841184742525704457251745932573898956518571657596148126602031079762825416559050604247911401695790033835657486925280074302562341949828646791447632277400552946090394017753633565547193100017543004750471914489984104001586794617924161001645471655133707407395026044276953855383439755054887109978520540117516974758134492607943368954378322117245068734423198987884412854206474280973562580706698310697993526069339213568588139121480735472846322778490808700246777630360555123238665629517885371967303463470122293958160679250915321748903084088651606111901149844341235012464692802880599613428351188471544977127847336176628506216977871774382436256571177945006447771837022199910669502165675764404499794076503799995484500271066598781360380231412683690578319046079276529727769404361302305178708054651154246939526512710105292707030667302444712597393995051462840476743136373997825918454117641332790646063658415292701903027601733947486696034869497654175242930604072700505903950314852292139257559484507886797792525393176515641619716844352436979444735596426063339105512682606159572621703669850647328126672452198906054988028078288142979633669674412480598219214633956574572210229867759974673812606936706913408155941201611596019023775352555630060624798326124988128819293734347686268921923977783391073310658825681377717232831532908252509273304785072497713944833389255208117560845296659055394096556854170600117985729381399825831929367910039184409928657560599359891000296986446097471471847010153128376263114677420914557404181590880006494323785583930853082830547607679952435739163122188605754967383224319565065546085288120190236364471270374863442172725787950342848631294491631847534753143504139209610879605773098720135248407505763719925365047090858251393686346386336804289176710760211115982887553994012007601394703366179371539630613986365549221374159790511908358829009765664730073387931467891318146510931676157582135142486044229244530411316065270097433008849903467540551864067734260358340960860553374736276093565885310976099423834738222208729246449768456057956251676557408841032173134562773585605235823638953203853402484227337163912397321599544082842166663602329654569470357718487344203422770665383738750616921276801576618109542009770836360436111059240911788954033802142652394892968643980892611463541457153519434285072135345301831587562827573389826889852355779929572764522939156747756667605108788764845349363606827805056462281359888587925994094644604170520447004631513797543173718775603981596264750141090665886616218003826698996196558058720863972117699521946678985701179833244060181157565807428418291061519391763005919431443460515404771057005433900018245311773371895585760360718286050635647997900413976180895536366960316219311325022385179167205518065926351803625121457592623836934822266589557699466049193811248660909979812857182349400661555219611220720309227764620099931524427358948871057662389469388944649509396033045434084210246240104872332875008174917987554387938738143989423801176270083719605309438394006375611645856094312951759771393539607432279248922126704580818331376416581826956210587289244774003594700926866265965142205063007859200248829186083974373235384908396432614700053242354064704208949921025040472678105908364400746638002087012666420945718170294675227854007450855237772089058168391844659282941701828823301497155423523591177481862859296760504820386434310877956289292540563894662194826871104282816389397571175778691543016505860296521745958198887868040811032843273986719862130620555985526603640504628215230615459447448990883908199973874745296981077620148713400012253552224669540931521311533791579802697955571050850747387475075806876537644578252443263804614304288923593485296105826938210349800040524840708440356116781717051281337880570564345061611933042444079826037795119854869455915205196009304127100727784930155503889536033826192934379708187432094991415959339636811062755729527800425486306005452383915106899891357882001941178653568214911852820785213012551851849371150342215954224451190020739353962740020811046553020793286725474054365271759589350071633607632161472581540764205302004534018357233829266191530835409512022632916505442612361919705161383935732669376015691442994494374485680977569630312958871916112929468188493633864739274760122696415884890096571708616059814720446742866420876533479985822209061980217321161423041947775499073873856794118982466091309169177227420723336763503267834058630193019324299639720444517928812285447821195353089891012534297552472763573022628138209180743974867145359077863353016082155991131414420509144729353502223081719366350934686585865631485557586244781862010871188976065296989926932817870557643514338206014107732926106343152533718224338526352021773544071528189813769875515757454693972715048846979361950047772097056179391382898984532742622728864710888327017372325881824465843624958059256033810521560620615571329915608489206434030339526226345145428367869828807425142256745180618414956468611163540497189768215422772247947403357152743681940989205011365340012384671429655186734415374161504256325671343024765512521921803578016924032669954174608759240920700466934039651017813485783569444076047023254075555776472845075182689041829396611331016013111907739863246277821902365066037404160672496249013743321724645409741299557052914243820807609836482346597388669134991978401310801558134397919485283043673901248208244481412809544377389832005986490915950532285791457688496257866588599917986752055455809900455646117875524937012455321717019428288461740273664997847550829422802023290122163010230977215156944642790980219082668986883426307160920791408519769523555348865774342527753119724743087304361951139611908003025587838764420608504473063129927788894272918972716989057592524467966018970748296094919064876469370275077386643239191904225429023531892337729316673608699622803255718530891928440380507103006477684786324319100022392978525537237556621364474009676053943983823576460699246526008909062410590421545392790441152958034533450025624410100635953003959886446616959562635187806068851372346270799732723313469397145628554261546765063246567662027924520858134771760852169134094652030767339184114750414016892412131982688156866456148538028753933116023229255561894104299533564009578649534093511526645402441877594931693056044868642086275720117231952640502309977456764783848897346431721598062678767183800524769688408498918508614900343240347674268624595239589035858213500645099817824463608731775437885967767291952611121385919472545140030118050343787527766440276261894101757687268042817662386068047788524288743025914524707395054652513533945959878961977891104189029294381856720507096460626354173294464957661265195349570186001541262396228641389779673332907056737696215649818450684226369036784955597002607986799626101903933126376855696876702929537116252800554310078640872893922571451248113577862766490242516199027747109033593330930494838059785662884478744146984149906712376478958226329490467981208998485716357108783119184863025450162092980582920833481363840542172005612198935366937133673339246441612522319694347120641737549121635700857369439730597970971972666664226743111776217640306868131035189911227133972403688700099686292254646500638528862039380050477827691283560337254825579391298525150682996910775425764748832534141213280062671709400909822352965795799780301828242849022147074811112401860761341515038756983091865278065889668236252393784527263453042041880250844236319038331838455052236799235775292910692504326144695010986108889991465855188187358252816430252093928525807796973762084563748211443398816271003170315133440230952635192958868069082135585368016100021374085115448491268584126869589917414913382057849280069825519574020181810564129725083607035685105533178784082900004155251186577945396331753853209214972052660783126028196116485809868458752512999740409279768317663991465538610893758795221497173172813151793290443112181587102351874075722210012376872194474720934931232410706508061856237252673254073332487575448296757345001932190219911996079798937338367324257610393898534927877747398050808001554476406105352220232540944356771879456543040673589649101761077594836454082348613025471847648518957583667439979150851285802060782055446299172320202822291488695939972997429747115537185892423849385585859540743810488262464878805330427146301194158989632879267832732245610385219701113046658710050008328517731177648973523092666123458887310288351562644602367199664455472760831011878838915114934093934475007302585581475619088139875235781233134227986650352272536717123075686104500454897036007956982762639234410714658489578024140815840522953693749971066559489445924628661996355635065262340533943914211127181069105229002465742360413009369188925586578466846121567955425660541600507127664176605687427420032957716064344860620123982169827172319782681662824993871499544913730205184366907672357740005393266262276032365975171892590180110429038427418550789488743883270306328327996300720069801224436511639408692222074532024462412115580435454206421512158505689615735641431306888344318528085397592773443365538418834030351782294625370201578215737326552318576355409895403323638231921989217117744946940367829618592080340386757583411151882417743914507736638407188048935825686854201164503135763335550944031923672034865101056104987272647213198654343545040913185951314518127643731043897250700498198705217627249406521461995923214231443977654670835171474936798618655279171582408065106379950018429593879915835017158075988378496225739851212981032637937621832245659423668537679911314010804313973233544909082491049914332584329882103398469814171575601082970658306521134707680368069532297199059990445120908727577622535104090239288877942463048328031913271049547859918019696783532146444118926063152661816744319355081708187547705080265402529410921826485821385752668815558411319856002213515888721036569608751506318753300294211868222189377554602722729129050428751506318753300294211868222189377554602722729129050428751506318753300294211868222189377554602722729129050429225978771066787384000061677215463844129237119352182849982435092089180168557279815642185819119749098573057033266764646072875743056537260276898237325974508447964954564803077159815395582777913937360171742299602735310276871944944491793978514463159731443535185049141394155732938204854212350817391254974981930871439661513294204591938010623142177419918406018034794988769105155790555480695387854006645337598186284641990522045280330626369562649091082762711590385699505124652999606285544383833032763859980079292284665950355121124528408751622906026201185777531374794936205549640107300134885315073548735390560290893352640071327473262196031177343394367338575912450814933573691166454128178817145402305475066713651825828489809951213919399563324133655677709800308191027204099714868741813466700609405102146269028044915964654533010775469541308871416531254481306119240782118869005602778182423502269618934435254763357353648561936325441775661398170393063287216690572225974520919291726219984440964615826945638023950283712168644656178523556516412771282691868861557271620147493405227694659571219831494338162211400693630743044417328478610177774383797703723179525543410722344551255558999864618387676490397246116795901810003509892864120419516355110876320426761297982652942588295114127584126273279079880755975185157684126474220947972184330935297266521001566251455299474512763155091763673025946213293019040283795424632325855030109670692272022707486341900543830265068121414213505715417505750863990767394633514620908288893493837643939925690060406731142209331219593620298297235116325938677224147791162957278075239505625158160313335938231150051862689053065836812998810866326327198061127154885879809348791291370749823057592909186293919501472119758606727009254771802575033773079939713453953264619526999659638565491759045833358579910201271320458390320085387888163363768518208372788513117522776960978796214237216254521459128183179821604411131167140691482717098101545778193920231156387195080502467972579249760577262591332855972637121120190572077140914864507409492671803581515757151405039761096384675556929897038354731410022380258346876735012977541327953206097115450648421218593649099791776687477448188287063231551586503289816422828823274686610659273219790716238464215348985247621678905026099804526648392954235728734397768049577409144953839157556548545905897649519851380100795801078375994577529919670054760225255203445398871253878017196071816407812484784725791240782454436168234523957068951427226975043187363326301110305342333582160933319121880660826834142891041517324721605335584999322454873077882290525232423486153152097693846104258284971496347534183756200301491570327968530186863157248840152663983568956363465743532178349319982554211730846774529708583950761645822963032442432823773745051702856069806788952176819815671078163340526675953942492628075696832610749532339053622309080708145591983735537774874202903901814293731152933464446815121294509759653430628421531944572711861490001765055817709530246887526325011970520947615941676872778447200019278913725184162285778379228443908430118112149636642465903363419454065718354477191244662125939265662030688852005559912123536371822692253178145879259375044144893398160865790087616502463519704582889548179375668104647461410514249887025213993687050937230544773411264135489280684105910771667782123833281026218558775131272117934444820144042574508306394473836379390628300897330624138061458941422769474793166571762318247216835067807648757342049155762821758397297513447899069658953254894033561561316740327647246921250575911625152965456854463349811431767025729566184477548746937846423373723898192066204851189437886822480727935202250179654534375727416391079197295295081294292220534771730418447791567399173841831171036252439571615271466900581470000263301045264354786590329073320546833887207873544476264792529769017091200787418373673508771337697768349634425241994995138831507487753743384945825976556099655595431804092017849718468549737069621208852437701385375768141663272241263442398215294164537800049250726276515078908507126599703670872669276430837722968598516912230503746274431085293430527307886528397733524601746352770320593817912539691562106363762588293757137384075440646896478310070458061344673127159119460843593582598778283526653115106504162329532904777217408355934972375855213804830509000964667608830154061282430874064559443185341375522016630581211103345312074508682433943215904359443031243122747138584203039010607094031523555617276799416002039397509989762933532585557562480899669182986422267750236019325797472674257821111973470940235745722227121252685238429587427350156366009318804549333898974157149054418255973808087156528143010267046028431681923039253529779576586241439270154974087927313105163611913757700892956482332364829826302460797587576774537716010249080462430185652416175665560016085912153455626760219268998285537787258314514408265458348440947846317877737479465358016996077940556870119232860804113090462935087182712593466871276669487389982459852778649956916546402945893506496433580982476596516514209098675520380830920323048734270346828875160407154665383461961122301375945157925269674364253192739003603860823645076269882749761872357547676288995075211480485252795084503395857083813047693788132112367428131948795022806632017002246033198967197064916374117585485187848401205484467258885140156272501982171906696081262778548596481836962141072171421498636191877475450965030895709947093433785698167446582826791194061195603784539785583924076127634410576675102430755981455278616781594965706255975507430652108530159790807334373607943286675789053348366955548680391343372015649883422089339997164147974693869690548008919306713805717150585730714881564992071408675825960287605645978242377024246980532805663278704192676846711626687946348695046450742021937394525926266861355294062478136120620263649819999949840514386828525895634226432870766329930489172340072547176418868535137233266787792173834754148002280339299735793615241275582956927683723123479898944627433045456679006203242051639628258844308543830720149567210646053323853720314324211260742448584509458049408182092763914000854042202355626021856434899414543995041098059181794888262805206644108631900168856815516922948620301073889718100770929059048074909242714101893354281842999598816966099383696164438152887721408526808875748829325873580990567075581701794916190611400190855374488272620093668560447559655747648567400817738170330738030547697360978654385938218722058390234444350886749986650604064587434600533182743629617786251808189314436325120510709469081358644051922951293245007883339878842933934243512634336520438581291283434529730865290978330067126179813031679438553572629699874035957045845223085639009891317947594875212639707837594486113945196028675121056163897600888009274611586080020780334159145179707303683519697776607637378533301202412011204698860920933908536577322239241244905153278095095586645947763448226998607481329730263097502881210351772312446509534965369309001863776409409434983731325132186208021480992268550294845466181471555744470966953017769043427203189277060471778452793916047228153437980353967986142437095668322149146543801459382927739339603275404800955223181666738035718393275707714204672383862461780397629237713120958078936384144792980258806552212926209362393063731349664018661951081158347117331202580586672763999276357907806381881306915636627412543125958993611964762610140556350339952314032311381965623632719896183725484533370206256346422395276694356837676136871196292181875457608161705303159072882870071231366630872275491866139577373054606599743781098764980241401124214277366808275139095931340415582626678951084677611866595766016599817808941498575497628438785610026379654317831363402513581416115190209649913354873313111502270068193013592959597164019719605362503355847998096348871803911161281359596856547886832585643789617315976200241962155289629790481982219946226948713746244472909345647002853769495885959160678928249105441251599630078136836749020937491573289627002865682934443134234735123929825916673950342599586897069726733258273590312128874666045146148785034614282776599160809039865257571726308183349444182019353338507129234577437557934406217871133006310600332405399169368260374617663856575887758020122936635327026710068126182517291460820254189288593524449107013820621155382779356529691457650204864328286555793470720963480737269214118689546732276775133569019015372366903686538916129168888787640752549349424973342718117889275993159671935475898809792452526236365903632007085444078454479734829180208204492667063442043755532505052752283377888704080403353192340768563010934777212563908864041310107381785333831603813528082811904083256440184205374679299262203769871801806112262449090924264198582086175117711378905160914038157500336642415609521632819712233502316742260056794128140621721964184270578432895980288233505982820819666624903585778994033315227481777695284368163008853176969478369058067106482808359804669884109813515865490693331952239436328792399053481098783027450017206543369906611778455436468772363184446476806914282800455107468664539280539940910875493916609573161971503316696830992946634914279878084225722069714887558063748030886299511847318712477729191007022758889348693945628951580296537215040960310776128983126358996489341024703603664505868728758905140684123812424738638542790828273382797332688550493587430316027474906312957234974261122151741715313361862241091386950068883589896234927631731647834007746088665559873338211382992877691149549218419208777160606847287467368188616750722101726110383067178785669481294878504894306308616994879870316051588410828235127415353851336589533294862949449506186851477910580469603906937266267038651290520113781085861618888694795760741358553458515176805197333443349523012039577073962377131603024288720053732099825300897761897312981788194467173116064723147624845755192873278282512718244680782421521646956781929409823892628494376024885227900362021938669648221562809360537317804086372726842669642192994681921490870170753336109479138180406328738759384826953558307739576144799727000347288018278528138950321798634521611106660883931405322694490545552786789441757920244002145078019209980446138254780585804844241640477503153605490659143007815837243012313751156228401583864427089071828481675752712384678245953433444962201009607105137060846180118754312072549133499424761711563332140893460915656155060031738421870157022610310191660388706466143889773631878094071152752817468957640158104701696524755774089164456867771715850058326994340167720215676772406812836656526412298243946513319735919970940327593850266955747023181320324371642058614103360652453693916005064495306016126782264894243739716671766123104897503188573216555498834212180284691252908610148552781527762562375045637576949773433684601560772703550962904939248708840628106794362241870474700836884267102255830240359984164595112248527263363264511401739524808619463584078375355688562231711552094722306543709260679735100056554938122457548372854571179739361575616764169289580525729752233855861138832217110736226581621884244317885748879810902665379342666421699091405653643224930133486798815488662866505234699723557473842483059042367714327879231642240387776433019260019228477831383763253612102533693581262408686669973827597736568222790721583247888864236934639616436330873013981421143030600873066616480367898409133592629340230432497492688783164360268101130957071614191283068657732353263965367739031766136131596555358499939860056515592193675997771793301974468814837110320650369319289452140265091546518430993655349333718342529843367991593941746622390038952767381333061774762957494386871697845376721949350659087571191772087547710718993796089477451265475750187119487073873678589020061737332107569330221632062843206567119209695058576117396163232621770894542621460985841023781321581772760222273813349541048100307327510779994899197796388353073444345753297591426376840544226478421606312276964696715647399904371590332390656072664411643860540483884716191210900870101913072607104411414324197679682854788552477947648180295973604943970047959604029274629920357209976195014034831538094771460105633344699882082212058728151072918297121191787642488035467231691654185225672923442918712816323259696541354858957713320833991128877591722611527337901034136208561457799239877832508355073019981845902595835598926055329967377049172245493532968330000223018151722657578752405883224908582128008974790932610076257877042865600699617621217684547899644070506624171021332748679623743022915535820078014116534806564748823061500339206898379476625503654982280532966286211793062843017049240230198571997894883689718304380518217441914766042975243725168343541121703863137941142209529588579806015293875275379903093887168357209576071522190027937929278630363726876582268124199338480816602160372215471014300737753779269906958712128928801905203160128586182549441335382078488346531163265040764242839087012101519423196165226842200371123046430067344206474771802135307012409886035339915266792387110170622186588357378121093517977560442563469499978725112544085452227481091487430725986960204027594117894258128188215995235965897918114407765335432175759525553615812800116384672031934650729680799079396371496177431211940202129757312516525376801735910155733815377200195244454362007184847566341540744232862106099761324348754884743453966598133871746609302053507027195298394327142537115576660002578442303107342955153394506048622276496668762407932435319299263925373107689213535257232108088981933916866827894828117047262450194840970097576092098372409007471797334078814182519584259809624174761013825264395513525931188504563626418830033853965243599741693132289471987830842760040136807470390409723847394583489618653979059411859931035616843686921948538205578039577388136067954990008512325944252972448666676683464140218991594456530942344065066785194841776677947047204195882204329538032631053749488312218039127967844610013972675389219511911783658766252808369005324900459741094706877291232821430463533728351995364827432583311914445901780960778288358373011185754365995898272453192531058811502630754257149394302445393187017992360816661130542625399583389794297160207033876781503301028012009599725222228080142357109476035192554443492998676781789104555906301595380976187592035893734197896235893112598390259831026719330418921510968915622506965911982832345550305908173073519550372166587028805399213857603703537710517802128012956684198414036287272562321442875430221090947272107347413497551419073704331827662617727599688882602722524713368335345281669277959132886138176634985772893690096574956228710302436259077241221909430087175569262575806570991201665962243608024287002454736203639484125595488172727247365346778364720191830399871762703751572464992228946793232269361917764161461879561395669956778306829031658969943076733350823499079062410020250613405734430069574547468217569044165154063658468046369262127421107539904218871612761778701425886482577522388918459952337629237791558574454947736129552595222657863646211837759847370034797140820699414558071908021359073226923310083175951065901912129479540860364075735875020589020870457967000705526250581142066390745921527330940682364944159089100922029668052332526619891131184201629163107689408472356436680818216865721968826835840278550078280404345371018365109695178233574303050485265373807353107418591770561039739506264035544227515610110726177937063472380499066692216197119425912044508464174638358993823994651739550900085947999013602667426149429006646711506717542217703877450767356374215478290591101261915755587023895700140511782264698994491790830179547587676016809410013583761357859135692445564776446417866711539195135769610486492249008344671548638305447791433009768048687834818467273375843689272431044740680768527862558516509208826381323362314873333671476452045087662761495038994950480956046098960432912335834885999029452640028499428087862403981181488476730121675416110662999555366819312328742570206373835202008686369131173346973174121915363324674532563087134730279217495622701468732586789173455837996435135880095935087755635624881049385299900767513551352779241242927748856588856651324730251471021057535251651181485090275047684551825209633189906852761443513821366215236889057878669943228881602837748203550601602989400911971385017987168363374413927597364401700701476370665570350433812111357641501845182141361982349515960106475271257593518530433287553778305750956742544268471221961870917856078393614451138333564910325640573389866717812397223751931643061701385953947436784339267098671245221118969084023632741149660124348309892994173803058841716661307304006758838043211155537944060549772170594282151488616567277124090338772774562909711013488518437411869565544974573684521806698291104505800429988795389902780438359628240942186055628778842880212755388480372864001944161425749990427200959520465417059810498996750451193647117277222043610261407975080968697517660023718774834801612031023468056711264476612374762785219024120256994353471622666089367521983311181351114650385489502512065577263614547360442685949807439693233129712737715734709971395229118265348515558713733662912024271430250376326950135091161295299378586468130722648600827088133353819370368259886789332123832705329762585738279009782646054559855513183668884462826513379849166783940976135376625179825824966345877195012438404035914084920973375464247448817618407002356958017741017769692507781489338667255789856458985105689196092439884156928069698335224022563457049731224526935419383700484318335719651662672157552419340193309901831930919658292096965624766768365964701959575473934551433741370876151732367720422738567427917069820454995309591887243493952409444167899884631984550485239366297207977745281439941825678945779571255242682608994086331737153889626288962940211210888442737656862452761213037101730078513571540453304150795944777614359743780374243664697324713841049212431413890357909241603640631403814983148190525172093710396402680899483257229795456404270175772290417323479607361878788991331830584306939482596131871381642346721873084513387721908697510494284376932502498165667381626061594176825250999374167288395174406693254965340310145222531618900923537648637848288134420987004809622717122640748957193900291857330746010436072919094576799461492929042798168772942648772995285843464777538690695014898413392454039414468026362540211861431703125111757764282991464453340892097696169909837265236176874560589470496817013697490952307208268288789073019001825342580534342170592871393173799314241085264739094828459641809361413847583113613057610846236683723769591349261582451622155213487924414504175684806412063652017038633012953277769902311864802006755690568229501635493199230591424639621702532974757311409422018019936803502649563695586642590676268568737211033915679383989576556519317788300024161353956243777784080174881937309502069990089089932808839743036773659552489130015663329407790713961546453408879151030065132193448667324827590794680787981942501958262232039513125201410996053126069655540424867054998678692302174698900954785072567297879476988883109348746442640071818316033165551153427615562240547447337804924621495213325852769884733626918264917433898782478927846891882805466998230368993978341374758702580571634941356843392939606819206177333179173820856243643363535986349449689078106401967407443658366707158692452118299789380407713750129085864657890577142683358276897855471768718442772612050926648610205153564284063236848180728794071712796682006072755955590404023317874944734645476062818954151213916291844429765106694796935401686601005519607768733539651161493093757096855455938151378956903925101495326562814701199832699220006639287537471313523642158926512620407288771657835840521964605410543544364216656224456504299901025658692727914275293117208279393775132610605288123537345106837293989358087124386938593438917571337630072031976081660446468393772580690923729752348670291691042636926209019960520412102407764819031601408586355842760953708655816427399534934654631450404019952853725200495780525465625115410925243799132626271360909940290226206283675213230506518393405745011209934146491843332364656937172591448932415900624202061288573292613359680872650004562828455757459659212053034131011182750130696150983551563200431078460190656549380654252522916199181995960275232770224985573882489988270746593635576858256051806896428537685077201222034792099393617926820659014216561592530673794456894907085326356819683186177226824991147261573203580764629811624401331673789278868922903259334986179702199498192573961767307583441709855922217017182571277753449150820527843090461946083521740200583867284970941102326695392144546106621500641067474020700918991195137646690448126725369153716229079138540393756007783515337416774794210038400230895185099454877903934612222086506016050035177626483161115332558770507354127924990985937347378708119425305512143697974991495186053592040383023571635272763087469321962219006426088618367610334600225547747781364101269190656968649501268837629690723396127628722304114181361006026404403003599698891994582739762411461374480405969706257676472376606554161857469052722923822827518679915698339074767114610302277660602006124687647772881909679161335401988140275799217416767879923160396356949285151363364721954061117176738737255572852294005436178517650230754469386930787349911035218253292972604455321079788771144989887091151123725060423875373484125708606406905205845212275453384800820530245045651766951857691320004281675805492481178051983264603244579282973012910531838563682120621553128866856495651261389226136706409395333457052698695969235035309422454386527867767302754040270224638448355323991475136344104405009233036127149608135549053153902100229959575658370538126196568314428605795669662215472169562087001372776853696084070483332513279311223250714863020695124539500373572334680709465648308920980153487870563349109236605755405086411152144148143463043727327104502776866195310785832333485784029716092521532609255893265560067212435946425506599677177038844539618163287961446081778927217183690888012677820743010642252463480745430047649288555340906218515365435547412547615276977266776977277705831580141218568801170502836527554321480348800444297999806215790456416195721278450892848980642649742709057912906921780729876947797511244730599140605062994689428093103421641662993561482813099887074529271604843363081840412646963792584309418544221635908457614607855856247381493142707826621518554160387020687698046174740080832434366538235455510944949843109349475994467267366535251766270677219418319197719637801570216993367508376005716345464367177672338758864340564487156696432104128259564534984138841289042068204700761559691684303899934836679354254921032811336318472259230555438305820694167562999201337317548912203723034907268106853445403599356182357631283776764063101312533521214199461186935083317658785204711236433122676512996417132521751355326186768194233879036546890800182713528358488844411176123410117991870923650718485785622102110400977699445312179502247957806950653296594038398736990724079767904082679400761872954783596349279390457697366164340535979221928587057495748169669406233427261973351813662606373598257555249650980726012366828360592834185584802695841377255897088378994291054980033111388460340193916612218669605849157148573356828614950001909759112521880039641976216355937574371801148055944229873041819680808564726571354761283162920044988031540210553059707666636274932830891688093235929008178741198573831719261672883491840242972129043496552694272640255964146352591434840067586769035038232057293413298159353304444649682944136732344215838076169483121933311981906109614295220153617029857510559432646146850545268497576480780800922133581137819774927176854507553832876887447459159373116247060109124460982942484128752022446259447763874949199784044682925736096853454984326653686284448936570411181779380644161653122360021491876876946739840751717630751684985635920148689294310594020245796962292456664488196757629434953532638217161339575779076637076456957025973880043841580589433613710655185998760075492418721171488929522173772114608115434498266547987258005667472405112200738345927157572771521858994694811794064446639943237004429114074721818022482583773601734668530074498556471542003612359339731291445859152288740871950870863221883728826282288463184371726190330577714765156414382230679184738603914768310814135827575585364359772165002827780371342286968878734979509603110889919614338666406845069742078770028050936720338723262963785603865321643234881555755701846908907464787912243637555666867806761054495501726079114293083128576125448194444947324481909379536900820638463167822506480953181040657025432760438570350592281891987806586541218429921727372095510324225107971807783304260908679427342895573555925272380551144043800123904168771644518022649168164192740110645162243110170005669112173318942340054795968466980429801736257040673328212996215368488140410219446342464622074557564396045298531307140908460849965376780379320189914086581466217531933766597011433060862500982956691763884605676297293146491149370462446935198403953444913514119366793330193661766365255514917498230798707228086085962611266050428929696653565251668888557211227680277274370891738963977225756489053340103885593112567999151658902501648696142720700591605616615970245198905183296927893555030393468121976158218398048396056252309146263844738629603984892438618729850777592879272206855480721049781765328621018747676689724884113956034948037672703631692100735083407386526168450748249644859742813493648037242611670426687083192504099761531907685577032742178501000644198412420739640013960360158381056592841368457411910273642027416372348821452410134771652960312840865841978795111651152982781462037913985500639996032659124852530849369031313010079997719136223086601109992914287124938854161203802041134018888721969347790449752745428807280350930582875442075513481666092787935356652125562013998824962847872621443236285367650259145046837763528258765213915648097214192967554938437558260025316853635673137926247587804944594418342917275698837622626184636545274349766241113845130548144983631178978448973207671950878415861887969295581973325069995140260151167552975057543781024223895792578656212843273120220071673057406928686936393018676595825132649914595026091706934751940897535746401683081179884645247361895605647942635807056256328118926966302647953595109712765913623318086692153578860781275991053717140220450618607537486630635059148391646765672320571451688617079098469593223672494673758309960704258922048155079913275208858378111768521426933478692189524062265792104362034885292626798401395321645879115157905046057971083898337186403802441751134722647254701079479399695355466961972676325522991465493349966323418595145036098034409221220671256769872342794070885707047429317332918852389672197135392449242617864118863779096281448691786946817759171715066911148002075943201206196963779510322708902956608556222545260261046073613136886900928172106819861855378098201847115416363032626569928342415502360097804641710852553761272890533504550613568414377585442967797701466029438768722511536380119175815402812081825560648541078793359892106442724489861896162941341800129513068363860929410008313667337215300835269623573717533073865333820484219030818644918409372394403340524490955455801640646076158101030176748847501766190869294609876920169120218168829104087070956095147041692114702741339005225334083481287035303102391969997859741390859360543359969707560446013424245368249609877258131102473279856207212657249900346829388687230489556225320446360263985422525841646432427161141981780248259556354490721922658386366266375083594431487763515614571074552801615967704844271419443518327569840755267792641126176525061596523545718795667317091331935876162825592078308018520689015150471334038610031005591481785211038475454293338918844412051794396997019411269511952656491959418997541839323464742429070271887522353439367363366320030723274703740712398256202466265197409019976245205619855762576000870817308328834438183107005451449354588542267857855191537229237955549433341017442016960009069641561273229777022121795186837635908225512881647002199234886404395915301846400471432118636062252701154112228380277853891109849020134274101412155976996543887719748537643115822983853312307175113296190455900793806427669581901484262799122179294798734890186847167650382732855205908298452980625925035212845192592798659350613296194679625237397256558415785374456755899803240549218696288849033256085145534439166022625777551291620077279685262938793753045418108072928589198971538179734349618723292761474785019261145041327487324297058340847111233374627461727462658241532427105932250625530231473875925172478732288149145591560503633457542423377916037495250249302235148196138116256391141561032684495807250827343176594405409826976526934457986347970974312449827193311386387315963636121862349726140955607992062831699942007205481152535339394607685001990988655386143349578165008996164907967814290114838764568217491407562376761845377514403147541120676016072646055685925779932207033733339891636950434669069482843662998003741452762771654762382554617088318981086880684785370553648046935095881802536052974079353867651119507937328208314626896007107517552061443378411454995013643244632819334638905093654571450690086448344018042836339051357815727397333453728426337217406577577107983051755572103679597690188995849413019599957301790124019390868135658553966194137179448763207986880037160730322054742357226689680188212342439188598416897227765219403249322731479366923400484897605903795809469604175427961378255378122394764614783292697654516229028170110043784603875654415173943396004891531881757665050095169740241564477129365661425394936888423051740012992055685428985389794266995677702708914651373689220610441548166215680421983847673087178759027920917590069527345668202651337311151800018143412096260165862982107666352336177400783778342370915264406305407180784335806107296110555002041513169637304684921335683726540030750982908936461204789111475303704989395283345782408281738644132271000296831194020332345642082647327623383029463937899837583655455991934086623509096796113400486702712317652666371077872511186035403755448741869351973365662177235922939677646325156202348757011379571209623772343137021203100496515211197601317641940820343734851285260291333491512508311980285017785571072537314913921570910513096505988599993156086365547740355189816673353588004821466509974143376118277772335191074121757284159258087259131507460602563490377726337391446137703802131834744730111303267029691733504770163210661622783002726928336558401179141944780874825336071440329625228577500980859960904093631263562132816207145340610422411208301000858726425211226248014264751942618432585338675387405474349107271004975428115946601713612259044015899160022982780179603519408004651353475269877760952783998436808690898919783969353217998013913544255271791022539701081063214304851137829149851138196914304349750018998068164441212327332830719282436240673319655469267785119315277511344646890550424811336143498460484905125834568326644152848971397237604032821266025351669391408204994732048602162775979177123475109750240307893575993771509502175169355582707253391189233407022383207758580213717477837877839101523413209848942345961369234049799827930414446316270721479611745697571968123929191374098292580556195520743424329598289898052923336641541925636738068949420147124134052507220406179435525255522500874879008656831454283516775054229480327478304405643858159195266675828292970522612762871104013480178722480178968405240792436058274246744307672164527031345135416764966890127478680101029513386269864974821211862904033769156857624069929637249309720162870720018983542369036414927023696193854737248032985504511208919287982987446786412915941753167560253343531062674525450711418148323988060729714023472552071349079839898235526872395090936566787899238371257897624875599044322889538837731734894112275707141095979004791930104674075041143538178246463079598955563899188477378134134707024674736211204898622699188851745625173251934135203811586335012391305444191007362844756751416105041097350585276204448919097890198431548528053398577784431393388399431044446566924455088594631408175122033139068159659251054685801313383815217641821043342978882611963044311138879625874609022613090084997543039577124323061690626291940392143974027089477766370248815549932245882597902063125743691094639325280624164247686849545532493801763937161563684785982371590238542126584061536722860713170267474013114526106376538339031592194346981760535838031061288785205154693363924108846763200956708971836749057816308515813816196688222204757043759061433804072585386208356517699842677452319582418268369827016023741493836349662935157685406139734274647089968561817016055110488097155485911861718966802597354170542398513556001872033507906094642127114399319604652742405088222535977348151913543857125325854049394601086579379805862014336607882521971780902581737087091646045272797715350991034073642502038638671822052287969445838765294795104866071739022932745542678566977686593992341683412227466301506215532050265534146099524935605085492175654913483095890653617569381763747364418337897422970070354520666317092960759198962773242309025239744386101426309868773391388251868431650102796491149773758288891345034114886594867021549210108432808078342808941729800898329753694064496990312539986391958160146899522088066228540841486427478628197554662927881462160717138188018084057208471586890683691939338186427845453795671927239797236465166759201105799566396259853551276355876814021340982901629687342985079247184605687482833138125916196247615690287590107273310329914062386460833337863825792630239159000355760903247728133888733917809696660146961503175422675112599331552967421333630022296490648093458200818106180210022766458040027821333675857301901137175467276305904435313131903609248909724642792845554991349000518029570708291905255678188991389962513866231938005361134622429461024895407240485712325662888893172211643294781619055486805494344103409068071608802822795968695013364381426825217047287086301013730115523686141690837567574763723976318575703810944339056456446852418302814810799837691851212720193504404180460472162693944578837709010597469321972055811407877598977207200968938224930323683051586265728111463799698313751793762321511125234973430524062210524423435373290565516340666950616589287821870775679417608071297378133518711793165003315552382248773065344417945341539520242444970341012087407218810938826816751204229940494817944947273289477011157413944122845552182842492224065875268917227278060711675404697300803703961878779669488255561467438439257011582954666135867867189766129731126720007297155361302750355616781776544228744211472988161480270524380681765357327557860250584708401320883793281600876908130049249147368251703538221961903901499952349538710599735114347829233949918793660869230137559636853237380670359114424326856151210940425958263930167801712866923928323105765885171402021119695706479981403150563304514156441462316376380990440281625691757648914256971416359843931743327023781233693804301289262637538266779503416933432360750024817574180875038847509493945489620974048544263563716499594992098088429479036366629752600324385635294584472894454716620929749549661687741412088213047702281611645604400723635158114972973921896673738264720472264222124201656015028497130633279581430251601369482556701478093579088965713492615816134690180696508955631012121849180584792272069187169631633004485802010286065785859126997463766174146393415956953955420331462802651895116793807457331575984608617370268786760294367778050024467339133243166988035407323238828184750105164133118953703648842269027047805274249060349208295475505400345716018407257453693814553117535421072655783561549987444748042732345788006187314934156604635297977945507535930479568720931672453654720838168585560604380197703076424608348987610134570939487700294617579206195254925575710903852517148852526567104534981341980339064152987634369542025608027761442191431892139390883454313176968510184010384447234894886952098194353190650655535461733581404554483788475252625394966586999205841765278012534103389646981864243003414679138061902805960785488801078970551694621522877309010446746249797999262712095168477956848258334140226647721084336243759374161053673404195473896419789542533503630186140095153476696147625565187382329246854735693580289601153679178730355315937836308224861517777054157757656175935851201669294311113886358215966761883032610416465171484697938542262168716140012237821377977413126897726671299202592201740877007695628347393220108815935628628192856357189338495885060385315817976067947984087836097596014973342057270460352179060564760328556927627349518220323614411258418242624771201203577638889597431823282787131460805353357449429762179678903456816988955351850447832561638070947695169908624710001974880920500952194363237871976487033922381154036347548862684595615975519376541011501406700122692747439388858994385973024541480106123590803627458528849356325158538438324249325266608758890831870070910023737710657698505643392885433765834259675065371500533351448990829388773735205145933304962653141514138612443793588507094468804548697535817021290849078734780681436632332281941582734567135644317153796781805819585246484008403290998194378171817730231700398973305049538735611626102399943325978012689343260558471027876490107092344388463401173555686590358524491937018104162620850429925869743581709813389404593447193749387762423240985283276226660494238512970945324558625210360082928664972417491914198896612955807677097959479530601311915901177394310420904907942444886851308684449370590902600612064942574471035354765785924270813041061854621988183009063458818703875585627491158737542106466795134648758677154383801852134828191581246259933516019893559516796893285220582479942103451271587716334522299541883968044883552975336128683722593539007920166694133909116875880398882886921600237325736158820716351627133281051818760210485218067552664867390890090719513805862673512431221569163790227732870541084203784152568328871804698795251307326634027851905941733892035854039567703561132935448258562828761061069822972142096199350933131217118789107876687204454887608941017479864713788246215395593333327556200943958043453791978228059039595992743691379377866494096404877784174833643268402628293240626008190808180439091455635193685606304508914228964521998779884934747772913279726602765840166789013649050874114212686196986204412696528298108704547986155954533802120115564697997678573892018624359932677768945406050821883822790983362716712449002676117849826437703300208184459000971723520433199470824209877151444975101705564302954282181967000920251561584417420593365814813490269311151709387226002645863056132560579256092733226557934628080568344392137368840565043430739657406101777937014142461549307074136080544210029560009566358897789926763051771878194370676149821756418659011616086540863539151303920131680576903417259645369235080641744656235152392905040947995318407486215121056183385456617665260639371365880252166622357613220194170137266496607325201077194793126528276330241380516490717456596485374835466919452358031530196916048099460681490403781982973236093008713576079862142542209641900436790547904993007837242158195453541837112936865843055384271762803527912882112930835157565659994474178843838156514843422985870424559243469329523282180350833372628379183021659183618155421715744846577842013432998259456688455826617197901218084948033244878725818377480552226815101137174536841787028027445244290547451823467491956418855124442133778352142386597992598820328708510933838682990657199461490629025742768603885051103263854454041918495886653854504057132362968106914681484786965916686184275679846004186876229805556296304595322792305161672159196867584952363529893578850774608153732145464298479231051167635774949462295256949766035947396243099534331040499420967788382700271447849406903707324910644415169605325656058677875741747211082743577431519406075798356362914332639781221894628744779811980722564671466405485013100965678631488009030374933887536418316513498254669467331611812336485439764932502617954935720430540218297487125110740401161140589991109306249231281311634054926257135672181862893278613883371802853505650359195274140086951092616754147679266803210923746708721360627833292238641361959412133927803611827632410600474097111104814000362334271451448333464167546635469973149475664342365949349684588455152415075637660508663282742479413606287604129064491382851945640264315322585862404314183866959063324506300039221319264762596269151090445769530144405461803785750303668621246227863975274666787012100339298487337501447560032210062235802934377495503203701273846816306102657030087227546296679688089058712767636106622572235222973920644309352432722810085997309513252863060110549791564479184500461804676240892892568091293059296064235702106152464620502324896659398732493396737695202399176089847457184353193664652912584806448019652016283879518949933675924148562613699594530728725453246329152911012876377060557060953137752775186792329213495524513308986796916512907384130216757323863757582008036357572800275449032795307990079944254110872569318801466793559583467643286887696661009739574996783659339784634695994895061049038364740950469522606385804675807306991229047408987916687211714752764471160440195271816950828973353714853092893704638442089329977112585684084660833993404568902678751600877546126798801546585652206121095349079670736553970257619943137663996060606110640695933082817187642604357342536175694378484849525010826648839515970049059838081210522111109194332395113605144645983421079905808209371646452312770402316007213854372346126726099787038565709199850759563461324846018840985019428768790226873455650051912154654406382925385127631766392205093834520430077301702994036261543400132276391091298832786392041230044555168405488980908077917463609243933491264116424009388074635660726233669584276458369826873481588196105857183576746200965052606592926354829149904576830721089324585707370166071739819448502884260396366074603118478622583105658087087030556759586134170074540296568763477417643105175103673286924555858208237203860178173940517513043799486882232004437804310317092103426167499800007301609481458637448877852227307633049538394434538277060876076354209844500830624763025357278103278346176697054428715531534001649707665719598504174819908720149087568603778359199471934335277294728553792578768483230110185936580071729118696761765505377503029303383070644891281141202550615089641100762382457448865518258105814034532012475472326908754750707857765973254284445935304499207001453874894822655644222369636554419422544133821222547749753549462482768053333698328415613869236344335855386847111143049824839899180316545863828935379913053522283343013795337295401625762322808113849949187614414132293376710656349252881452823950620902235787668465011666009738275366040544694165342223905210831458584703552935221992827276057482126606529138553034554974455147034493948686342945965843102419078592368022456076393678416627051855517870290407355730462063969245330779578224594971042018804300018388142900817303945050734278701312446686009277858181104091151172937487362788787490746528556543474888683106411005102302087510776891878152562273525155037953244485778727761700196485370355516765520911933934376286628461984402629525218367852236747510880978150709897841308624588152266096355140187449583692691779904712072649490573726428600521140358123107600669951853612486274675637589622529911649606687650826173417848478933729505673900787861792535144062104536625064046372881569823231750059626108092195521115085930295565496753886261297233991462835847604862762702730973920200143224870758233735491524608560821032888297418390647886992327369136004883743661522351705843770554521081551336126214291181561530175888257359489250710887926212864139244330938379733386780613179523731526677382085802470143352700924380326695174211950767088432634644274912755890774686358216216604274131517021245858605623363149316464691394656249747174195835421860774871105733845843368993964591374060338215935224359475162623918868530782282176398323730618020424656047752794310479618972429953302979249748168405289379104494700459086499187272734541350810198388186467360939257193051196864560185578245021823106588943798652243205067737996619695547244058592241795300682045179537004347245176289356677050849021310773662575169733552746230294303120359626095342357439724965921101065781782610874531887480318743082357369919515634095716270099244492974910548985151965866474014822510633536794973714251022934188258511737199449911509758374613010550506419772153192935487537119163026203032858865852848019350922587577559742527658401172134232364808402714335636754204637518255252494432965704386138786590196573880286840189408767281671413703366173265012057865391578070308871426151907500149257611292767519309672845397116021360630309054224396632067432358279788933232440577919927848463333977773765590187057480682867834796562414610289950848739969297075043275302997287229732793444298864641272534816060377970729829917302929630869580199631241330493935049332541235507105446118259114111645453471032988104784406778013807713146540009938630648126661433085820681139583831916954555825942689576984142889374346708410794631893253910696395578070602124597489829356461356078898347241997947856436204209461341238761319886535235831299686226894860840845665560687695450127448663140505473535174687300980632278046891224682146080672762770840240226615548502400895289165711761743902033758487784291128962324705919187469104200584832614067733375102719565399469716251724831223063391932870798380074848572651612343493327335666447335855643023528088392434827876088616494328939916639921048830784777704804572849145630335326507002958890626591549850940797276756712979501009822947622896189159144152003228387877348513097908101912926722710377889805396415636236416915498576840839846886168437540706512103906250612810766379904790887967477806973847317047525344215639038720123880632368803701794930895490077633152306354837425681665336160664198003018828712376748189833024683637148830925928337590227894258806008728603885916884973069394802051122176635913825152427867009440694235512020156837777885182467002565170850924962374772681369428435006293881442998790530105621737545918267997321773502936892806521002539626880749809264345801165571588670044350397650532347828732736884086354000274067678382196352222653929093980736739136408289872201777674716811819585613372158311905468293608323697611345028175783020293484598292500089568263027126329586629214765314223335179309338795135709534637718368409244442209631933129562030557551734006797374061416210792363342380564685009203716715264255637185388957141641977238742261059666739699717316816941543509528319355641770566862221521799115135563970714331289365755384464832620120642433801695586269856102246064606933079384785881436740700059976970364901927332882613532936311240365069865216063898725026723808740339674439783025829689425689674186433613497947524552629142652284241924308338810358005378702399954217211368655027534136221169314069466951318692810257479598560514500502171591331775160995786555198188619321128211070944228724044248115340605589595835581523201218460582056359269930347885113206862662758877144603599665610843072569650056306448918759946659677284717153957361210818084154727314266174893313417463266235422207260014601270120693463952056444554329166298666078308906811879009081529506362678207561438881578135113469536630387841209234694286873083932043233387277549680521030282154432472338884521534372725012858974769146080831440412586818154004918777228786980185345453700652665564917091542952275670922221747411206272065662298980603289167206874365494824610869736722554740481288924247185432360575341167285075755205713115669795458488739874222813588798584078313506054829055148278529489112190538319562422871948475940785939804790109419407067176443903273071213588738504999363883820550168340277749607027684488028191222063688863681104356952930065219552826152699127163727738841899328713056346468822739828876319864570983630891778648708667618548568004767255267541474285102814580740315299219781455775684368111018531749816701642664788409026268282444825802753209454991510451851771654631180490456798571325752811791365627815811128881656228587603087597496384943527567661216895926148503078536204527450775295063101248034180458405943292607985443562009370809182152392037179067812199228049606973823874331262673030679594396095495718957721791559730058869364684557667609245090608820221223571925453671519183487258742391941089044411595993276004450655620646116465566548759424736925233695599303035509581762617623184956190649483967300203776387436934399982943020914707361894793269276244518656023955905370512897816345542332011497599489627842432748378803270141867695262118097500640514975588965029300486760520801049153788541390942453169171998762894127722112946456829486028149318156024967788794981377721622935943781100444806079767242927624951078415344642915084276452000204276947069804177583220909702029165734725158290463091035903784297757265172087724474095226716630600546971638794317119687348468873818665675127929857501636341131462753049901913564682380432997069577015078933772865803571279091376742080565549362464641260024379684543777339026472512819416320076848736251764065967540693621758879307855916478777274739272002910342949562447661308200729250734529170764226621047673037863169954237455117456522022783324096803524667663190861011206745856287317413511162292078865132941244815471628182079877168346341322362234117788231027659825109358892359162055108763298087993165172528938001237817434896832151590562493347370206832232100118637395770567473867102173212375224325241626358034376253606808669163571594551527817803921774322823436633772811186390511893075901666650742952758384008544635419317190531363659724905158409106582201814734799022359067138146905116051922301269482316113417439944714833040862484269139502336713412425123864026657258130943967621939655407386524229897879782198637918299709557924747320303239116410445906907977862315518349593035305923789817515891457650408025109479123421758482841881950138546165680301755035580054944894884871351605375593402345748979516602442338321406030095937105588457052515704266284600354402823678768550982678161765520375795655481677896038927498355608791541177749423573400764161093294003899982199267257086957326068774974224802023307525187650255968420760693229988587579898896460744381788170081548895226516722834045277219106991415764639485231126794730865803195076455197675628957428881796812090026387145257858315277615109088631740243695680567873015235427804793414266495223833707117511265375503942372098784668049139473446530714079622597287130503077258714875570502582573466866613802351426056116197405543436548698005444879295970287590352258409782683598666446586045694241390729095266249932902973440568160683805726626057277088407073471496060064561454070734432782514087474275506722304845357006092214390002992981608211717047917614505191008132670375214930740567853311106058352912781007391749949197845112915913681107394055175208019630539350740248509553772500367054665162330430425087442324262404632115078997336929985407041656261041976700202415094892411856092409637604429612002364590706449770627207919019235964807048923636979860198283087284228564752353162882791324295524814447505521909672046080689545181712204930321853740627247421519740305769043602686360780792004776232429551829473522027244376339027721392087767065716241639751785859254426923428535274328856336850789651962072519416556061870370550218462845434257850383000095374518292958440464918838685793483961151297160581665745096703677495836666693121883868579348396115129716058166574509670367749583666669312188386857934839611512971605816657450967036774958366666931218817636796449436171304160372430506584851317492640558551940180051809084752118682246169761492432383194864344159085580110730703112015022434160731579295287529368358203970033891121141706852193665897894595031543895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318686599680385838123703291562075788359487809416882055316051281901526475928075749581545642213414593781670569928682998956119823538371578804804787045841753946654976901732203108900703033629117673084484503721456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727975730382459894668096808222213484858738229992817940908256652095816554724752445667436975944746863763324289042697761067919339109833004223102937282987989032093910926828363061736101738781236798986451493117024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644376506378618613243486357974112585208634599278036887924983543632984576876501650651153450086957212395075447856831736315571535270465242352597375134088254616096614407466755142268360319598010721524635510691718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014354500174327307936251130702982504994179942844511464793291545995559095878076216366685917910654359660652535253202736507259891212556868428020772464877220109966318295595529033933122843648644759735608598407609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445620009414656034992808794051153100575871295525719641115068503407737106043803712595755969859493620584775120263549473475347481892622541903526716144292848998575367406921652716300860606543737368235565886264863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279218690442843426307357607039996694307895081472697302538173756949227517953543261569120405948328609499923664122878812264191485048563280720664185570595203750303229168944894275783060909108524106014006832742055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160170196981665424263787636014530359465384503254766749997373408356651381860251565202836373891710165454148826744480091057041861626268379711208861413572796110990882929702296921281809787989513915042709367864449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827499843759421130204182973084171788130903795585456032471708191953027714657945554755447542844344081393889086097760178573893075186619065050180771650018407443258540241843605011182429907023234172436745253653495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588249742262418853525266367028276624993498294887483310617642084290169230528996089786041300651090281798050405871076711790411302174827966823530019602202531855767898433175868063783599687916015389222202365757655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213602352182367412147331244999443341559152743159316874778825331550927703362029012225977948098553922000645271622808553982789065842334475528212765176505726632676911410750348458718969964348757751384791481836351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830021613682766970262234594187374767335379988844034270468030425516941271587393203984443746045478161130566251764127598211819396611018505628805559425660600323121161809946221293010024709133471506822684304586803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434620185873282529247965052866814085035385198375236374519256227954902905579070302839501048548359298345428144873043580470533150815105030015214281171753936491331661726212354055278633080020831770556302949635942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576953077981413657001747613569669861460684914396995738376316958246025133421080726217136019430180872098885514150241638183259752595931655318658331171268579415272066122184226614118251546574848783126103478345467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963302813916472089635817717355558485927065245048625164195405508013435103233898133783024977018227549063814999647233340796130414697394763726508692733471084156856084309213162404346298639208416600559045985064912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740341135971991331359465536854466923676525890121084137774324821918127478478922872648929700323718734561579815998348391004126010507469645994303319788106349139238124905030614334079183280040639070986725961970983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832613950143295094748515947246675272016843165866088075127685847555411843811690116220055521134844889606682592274313190079630115870846701176549353930465633562253112447277966690058311906161019726630739705425314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414746083399186968892711569423454926512466455077925540281050376220359675305586018564920560628790907694533392088088494778288948511221547432301913832455629938810206144902668760102077532109156849778307408596498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897939181583945627081733015821602255196598987693761640198612074667550488611108557267645070526224461302223358520722736204850572892388158849387545352291863997143808840617572862209501225065158631042588841343554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815832270977451809293421931898158124828326589500407048552060998937839003419141630446391638805496587865013750463416956551566182988786307058423069676602540530248114710078997842118304890104640568965397028855955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851973700932801945303205726284526580460463378166314299330766466465307605905489628887241897160602258826175775399220551315093772006248630855628204935757527249955670892216342339836025653287310291940070411769192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077105815742407214963395603652702833344073057500736745622605846498861151016896121811190584717144610687197610174565873737967406971374232387538390303172002002072059284887851239117464716737437379232838819662016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699381930691487447171866461831119426031616640703773164870018647996002430440032422418094022785333090115098808706782688353172007675225531380088187804316901900728048317992874141254761230896068330958283776676882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598534812856846193776698942774591709188025200127499055594072896965947933316722436215678967769667080352290390184857308062756708676586271047694092035655930253527434189659270022270492331868299915609364137570049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743052827641756700502880404894298995809481035348339341449278859252621924155472319971433850866373209266327282435149336407045896838523456247443611752567669877675972234392063575074715529181027626140129924804228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594688382984528829229662751371624221729546786707158409241840841475575825393852409633020513497047406953995678979817278609204622868397357798151118681526598846069497589654813146511503926263777495137615572481951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163617414324970791096581627464297170728717251427458983568970955346268201690853561089448984071005819203021769451207717745887955195104733841847399807963067678858451675757299043069715426423834980098708699336709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287200172155886663457349714095337211516559857579417244198890261670161016115578343150254603287811984240274846085107224066767787608552476177738330895026100643883505502054563243461678594519417956698749685152448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097591677991584260491971209543227026784326542965724032720887143219996453132025871096771651285496699625526986073117637182074988273997706019913620930832307368382064557325637659829125781314922242204279712414416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132917179929792407833907157579814268168646553829468473992058886316559349198678969628404473449680240770928313764081033522552427174041076735654244410044833474401017264410529547872963458986405012036080244511903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509596740456168404517717479527903532549325891204833857465900967817304160005210889346107687540042419778030828851812001733695591271377141950113613044097532791905048915832463991434835316486815485791786329351239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712744358156320881066501495681435587965769098577659027687074536592763649755534496173080781609871032480137951361703677634575949756862080139963745517624251477806287222659714554829067692957136435721526744689878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492699871692343318900221415031139987652606887615667402101972017196023908610829749276395695411530322754601738707956259935797853024434767163995914623179312399899869284379757024923695515872976838540052276514956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634325232815789113554504533719052750682291561850033284695679262262081904424733403625038927920715859600393631533688427243753667996986479347411331983286194414606539227840999031438403545650470567895520248271760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997704518328535864804285568222087372136164905863032563689130841037602156799270200053223554398046531193397754590440450785680213984650096934295473102692499475864660580916699841606846460872939438082743082858174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612186230019866079877826842459338356389195702068535216032116352300649887446002001704130569853651546687520238593751832803728511432748116996836928492204473805706334966187112409478359158696268586435891413598542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324899630770113713446751569302448854820771241335577323069494580672678452359436315078727281579015730700331787968544362795257190236232746142628687327380094977411228562376632149046532940720261975390717404222595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545378088270634572959621690853835353703814181155738163782090325615198697453576464121254980760051561417072980469948135934831505681166427932193352798227147157673401860887215187996693502527007575560997198828630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021090073207273697493446304997314425715604331336903876181009488731207134827108158898574832658542075100779531183268617080370709359276149367825308583404823510036321663789574262025503501168615434073795045164828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294719745946908210256347889954317715243796962112812245034260663992688521330791963702777804488579205730469908009234401866381132520971230964760599899479257598510081730396068222199753273016065826285275825766950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328794474109697038798547369840254580632948350223593935435874802239897609162962501104739311694491006669072306346931301697118206325352692440438400937242844282097093648569094689200873717532525570305435398287278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986996547863685341028488573702547255023656634186809190383886707879072084036194021646701215348379781518328264725786288152071010814995589803381189615694417567613407170465385121709021237778843336496518721199054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840838506873416250716572741851349520849636709555424504394839480459791562282824837879341527203622633695618055563710768148888936192757426599358235594315308879330527675587475123650658439694756042971920023198680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749116546854997164539416112164176107171454017651905650525206622778831290457196932059902413753959838619826032054958395016755525096441371182225614960140030230354078992096986775078672000380742679705303071679322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990990212249224123151689927678558637363155260025034884878132330019101893996167027314169996265119457426367619650024347371727290284622097983948710659822700099549188776961885054326532118022194442822284251525561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015157143115795490933903261411918654752376247215311020793691158487422058227473432017355850771224379698579654915806279502740977168861148076163151618553068566924571717692204436684331273989337941116297224516999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519376539734984802454976076024403080844890106838786972612370978357824516680117148598367940552904619826216566917202742628548239339600182545994092543081696910329784112340228856001905493427502231852947128296096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423187145518241528676305675131162677177350617511245463387994265291270105789956718057214365579183506917779307040757329043974949958224106238105149176502385041827300966201717509405908054089572837554063551522199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337883360976012114848700556016581249247068256844272045472896309420306650445298646223594226008554991589149953606498428034579492757009497959450602378775019470624632394954957823082283066840818802521076639074230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539347888587094600582723230519108117514234912687336585960799891732928915896001815091816337400806035475200051511751029012299248709615459280262060761698272181029167315548929423740851967433079166078499055782101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878237438944115685176271711636309401479909649456354592950130739003626821007326370082356150691269643183351716254390304698989314261544263595113634660573786549512445747526216789547036289048304849968040377225134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680431608451284591604244132698791253856029915996727876619519505317648831346932573668946443825581391084862096637426745798313012223438725831244220330945714575414704792938758582389977385152135237238955966431223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081521782826112293131182086600709968603654098183268075582477670695041099758614362435521619453530292002546673679964850433731334952082107511992589266389956475698587079018561237915788643744690378715095001125502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352776325598980869487211138459800141238421638278244127365424467488333816797162011288619141540193671290947899026466644315609837296150196862422825067230616672094354657142514930864248877859868275958874906507726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384631941511620257790786307180123115945860389656252655422334623445450739478869026815949751311688514369452102168831904461686297633252298638518188500492869357276476682385556463655449640063176482855757858666102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132615853187176388598937792918890299879387981000369730784895927062541048485931585432339568310423902990702634437978756918554340897644076013084448197862650794764408301349424358342818859152592934714363175337495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307076608498252990003178503058536821395127350386382460564251033777558098646433980171862081426630741725922260005110913426810746701290143016541010649332122837908275150010035300156545975083237729654396973820477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998100953534135489087548363275795224072069862910246717035792514417667038866099069857262605812408253362252189920004189757457653151230000644457159317017716886354833330519215820559461173577163211322339319653203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517977821450547222788529872101978588460700474200284688737958442289499743336562718779917211379161644925413297156528795295326397595385359209501386333805075613695308995475848830242619627589859415137805158050257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814053714065207581072708481672639770987314551626469114232861030369329843303003236761627142640675878067318839715150027981633747790787750383079867594045910739210345874042196170349258081899072059612915864202028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328334700751619790086872854399629815756058916376247230691628711111376760864803237524596649304117539461364643378046711650555046706718362212857950480671656304276267114299991134876984470503706379001810968886297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542470553759386966246563341215410140322869909301591328858088312412428828763738727428380385907102927486333515030904453280525977956589205545624342979827941348917563824007716121733247364285401606100443376414572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195153616017221589042878567848206829194416987181928627308270444163039625471305328438833791337476873582612211625836027289616245590418967702474538275839665229937123516304898330124214174557885915942560597924277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582020424573919942530942642245042026890381501526836024125598075975236481628093048912746151196231546114008220563967806585354076686882275426503812259991620760170895567474465242344520176616503259456659129667863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347880383566875220034824576949084568626960577157019191748922606352081297387974438354832861369395624503929768057832234021716765559177668403757234844094617629312884926899368713898388222710602790379900190455833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503693529270115663051533519186418648234424999192720272953459599063048723608041595760029668121116831723660381105428035914457202482564561057140554624208213435209481084171582895724450720635468160023051201408480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254221827291491598105836897025035228130021411924860142480680797536996477719394906804683552808347327610306049409733091690316783097934636611832784531868716462680738833656704566010423768505801395074436479639222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132403397131655043918879601983821385850007732424617788491875814596426423378897933308194881600401131265256356932446593984006368903152547229239914144743770696338935761926039189247936317800831026114195485436051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819762844028610258805392339329474672024088541276492386447602161162620824212991660362299184923782236300983478119522913821847326342285759120979805478285250591837983368017874112426447460022562414980691400740979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504583283874853137369113510255062010277534580943910500102183397324565047288947687929892594501987507671223637918758647201214966061151280487096488630562284408393694438721692120849200851558381251070741955187208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631142254364839654999834790843070217643855543512574368282281530322223808347679511135570148063182004532207237948918635721491062425269939946710153668462341051533381426847706275852035240992079720869914537301095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221127374050789272663406388506867344585607732666483845780277189114758013231055198784133652185190714606813898688671031475982646112937954395266728672759948335902597445878687684964626834844344141359177145877660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687451082206035554108176664605241249662244228045452432160320360194641356097920019590240497929236732989245539901019801121402908686999205758917771880741461222050247285857153675307478143897305717872683663601576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429026294982656755335273100468788657310472466493326567927331345122955059186232937393326086077451350775309015744438294873397796053228493583013618379586264803212973684748175164769136621103603695091066665051717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455174726278180326830585488039709770479348310354398559078435527766760331398846052715031388563324676889271045958519328951391678238577357726581004798256393551935200552040800287059678249739374788605283564935914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400851746604296274309768387151945982644735940234248211044757291117779587731341553609527595708986125867714562523994500759380206093550248920084767332293085742222550206455690239126543663578524272429056053205754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996558919392205046999821062931609675651790751322960777857553310265858425760866867645355209277482755675451771699508789411805936305249944967012375980065534998739666395394417017059698101512719333118407679232718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957588376168784364346792755863573972253564884133060119289574642809357858081132331433115287482179766039712579528900364071989233281316116404169377366280132597382222374268189176489596422703380390592959649696482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061621073001019262483146821203551699501522007316384004132030333242312167082685468931758436630430784350785928104478492663952652398718644173380085681692321347429754583269402161253332837900960648627785494126679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480951836233233175229370352102914641331275203711716675487206347389232937851072902951446292741546761947942747166916030497829288961474587026499797079206387240825023006425544995904011974108535167844409018806462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126453570650830092147925834989247512745362200610585457599736931352970781437428413405519544467214894150574528391716037154530825255583432025125424166244575245629644579107697171521470951850550035505439063168825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349282934390514556706074460797047693164627812141713818274378561462197088087021064211057377851471358837377388240765280451914271374881105597447183100939375197659802100241012511230813682603384744910877161322857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320192528043461704390289260279931404361370265820121312851488158573111782104131033572888718172952627112000814750640268304641898876974787917317370381399918882424169942121527760451859567119094180737347933109970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713632957423217357446473421097414917436419947319588400526387269592318364232549184559550453437784670947045095942012021142208641912790493599452137392487110743231495113804293793655436372172634819075711353127093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032934134728905013167728097131626834959634092922430311950848788671035335200237127302029165929752526570392104214963495238570856057234346215769569851340683045483315459075364711469968242091023214311717692277385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877921513113104500836636310075175110259002808642771502096271366239740107528844546833161821150278926430729763557610551124620332480053105995111505431484829553432959830574272451737886527193000732321736237587327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633620779550452193215633612468530317470544394029418292635524015545231609868255313897018801539704596250169179664812501555932311482673005633835797260328601778474149600456972578349562058732873012451455576345230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290482516701766198207306183312392193535690040705215498939034465938809047507724169543651858075066490459443188862978723571603022481352204601090635214508280639749275512847694354996203399164488791974379020957188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321005003940073106632075257283147115192633289285206967239347175098295260212549476433019535743835092582831113391153906337661737307723630279889869985799450165923769067548837988929400605162826140048150469482814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717335949663371882149192837871164639035669257799424573943554730449355593968480327902086141968150826064810924688543383329866390745478052636291615627988031878282707451630327863907566533621975063224248645769459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771518496417510715984163572072412243719680672039270647894278942171284264133427118318479441334606472431411501550985511712414668243312352062840657226926069047479196447297528322749569819632778728162595401202053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061844683749631892913745993421603484822883158289730942161473689255851699271553115588887600721703410244587440208443428273004673097955556668115013003388895838023146431382900260076322850347583078087889518031398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270655913084000586265639963911040685104128200715324625642637145635575769452849271126355771963250658965455364821254592633552572925952814993415878776515692231191510233734407169916564763982000896984629843997759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936725020698280738433341175283157314342639896416347127053034775699155800311815918091137880268838547576972923398882860323029977043066628869553012102727057633959897689410249968479498168420119925613480756440406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222063365824017454988082913018839140156809050000849546573730003274779720991750746178595157995320223728523592040074251522563861667562031883981176186119602216284743190797025036745928280467817853664739356003540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620534522173119409577830195360518503854961406218253061820365182733706211198939024488975386358180994491815784878336528865436542248302027892417049689651104172759475017812267858143917486494243573009091712648771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187222655865040300284691469278646800318360346381726405702707422620342971875558099386871240465622333891464658305543013155095285109726300508051882652726853353729373385691826937171677303161186474948104242151279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524927558029979882409206644640425859662008887419164987730275403729204215810937814713136226288666694547421244955284909149219337193623402943371255755699886529662364503535192026777637942482082860568936231521523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458729327052108535726763805642288409296658844777952795467107351932954747130150792208403282322044289446782183965471109021173407251397247573570085553127432199967512595825680632358808838843662032622661914149347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249894725830411451495268724236189967630588168208463274374412103905527652187107355645257133601145580455856845586504328599176765196193271143498665407774514500473072711714795712227572018128864464407775174603282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293846454960402703705085394190927699370668045517194160403763511801855136575451095247034602260020741742823849481782254906365992084749037583205744677959106755660640775009347129817005818769408027992690460594987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289089858279586256599013759687500785698534209443995971523667673559911557090061413018853956006933050826115788315979018829128777653969640675392080848582290475561905186375490594176472080908485239299663653777468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012282836279851502637454279667177148419757339065728715430543215752354493205346537542382048448508846345908533866772925385204449844131368637518941176848626136036819373635133932540806852269214743073291344676252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292292377520328744890200405326681393547528550174645317172145995081455613646925266502271153373818175978557950419880754858113362891549009039080607754157573613737559880187573075362487370012912238261134381039234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335215538523001781108276163630370902052595037790925341104705700465652519779256793314108866326405926231788931260315285758716424211903337987257758742901290375936269727234314893572572418837941862768645667758686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059485607891824015219982852269465095876314924712795201644676474027046895454351030698261799914022340728548915468068420957432075066211544876266446757986364438802325863608869187594422715214296506641613849638150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036410498459690602253144748229457070252704363040611144551422276693665012542523720743940182775250894143291521517059974545931259468212143510622763303318504339488951276720637291512493681935703191046935729052762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629939932081645071741734905643398652199866390557093521198524390679861502144862392843873982018760228547123039494596615725875096503200712476657593813721248011341535506167547203695791055974610671125417117453695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368544160710823177510780129830425381419089224920859536461082139564811320531607370777207605599349815034240640775123315121589992462974978454743857855952270892671024791991996450430401660056217629623401492821816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202774618583728185859970177211160371098273932414719793766386484316000841579272530611640850151500165203002001427433763904187886226352747022589848494690776947476132763910525994056603823823716369435554706581748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599585996096750612830910194748865650751261397136329276415834913042083009508511004140745574437849278985760726105769741819633696790755188383220173443764398053682962687328518939530815972138409987536577466354932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479073204569647197863154908628412333251748127848288098487610221009742783475164627905539385196688956965108760628729574590889201702386720740106024538941519547393281424662231268923626502720564026430217769031895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886608059397380546894867556025887068710308118989220242174952934582195353009915613553607315909567346990699248742680019538217524621053498627010613215907572602408043008278683562931983842710521983547275117642330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804363097477453767809820873498038498259924881067029775494953522829951654655985068742831762852085719613937978285057790149962321392204623415241682380388944662426737300189654337647650363412518285095120888648562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069196578047057471484600729681823722879775604960891581786867293632379024157920472836469702103139751800978415985500070553649387532125749616748758725832599259576150743391862284379883013460445408808178096854911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442686419708923064846305675457388720247601652577608529377210933584453871074027292591915246267623538179786930642153401316337011357356351110981418211296622107367262696156726748307752488744484167665737024004850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149031760755373219447283058221915580788075245369693274460174736052420586469686975770612186776197205874910451651427154954238539202325269751234954654630906132946005665072830987280338737351553752235631835702537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303687368385644037049806617909200831710788210498183315526148505373540750351082239392474456301096920422788447371696889509111857369268903366597185225377703296220167081065518126758009408525150684775792191389321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755712527864370698983544440961391737903545485180403973331374805235879109555830404815348045391878540382432369073043102740626417777626573010347033840211296690848180461624964873947345844121553025815222149945822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961907167977778025951163147757626402858826251481582164399441350619608117589046195115853908261335496038803237135222451696811805975121895900285917973908665244952804078271302700453774372678555325048503974637573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840975477981407268239569314724876098280345081189383404096153431486301124867646531547875845494652222753187735608908350438370811208824417599385864663093970481172530040203058134090447450511563770541035014166861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001194975185979649409914897138536227945887407609904328542281277305818304024945108706336986946867400894810975397100908494768304107115295506388876524905456599942607738863473945525114489720361047937572544723966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022078175397233716409698626492055766876156445774464466492547734672972555705388285907892317597067686398249662945556019387315271036272012429312017642522464480318195446833376399461313836144570416088834222537155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473294553124042477552083805237951012393843585877545499900127206828665999857909842930384600732962384262907972182333727476694640152692048814304227394388383869880723650340088095245127260013615257041577497895464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308022803665885309302704619400614464491862785664244942081621020383276111696224421386397311571301189918531699151581650258342812848741492753605073550149275164965568949868814457828072415400901161769365898628113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562801165332079254551969851910384281572683512010923679952429068679954568308388593013667218521135364172442283704920603648154449717799886187390619701265066843706404251244599519090062260821798454151398740861561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831854809365141752690405027399232695322939310360456984252059471087760223210167746792793562530768337722069298099521332754934107640682936962565380979829922150200761906567133233307191753110953769674314458270474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553208276044077452544230785453748112596654635574596043270368542157386962244479609259367500830989140006853836358817787486427106882578787407992834182519771408422304894979155179876782746847540849289938647634983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558098067233241678261782570891163017980881955837910754011805096216010930804225701805492976467841153876914307088247531217231379403723659287710434554469626659999262339332986411371001268040811602769694022871365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013938556806427007782965968048607751794922121562917386716354649889853835751532497431583541399132213650515513841090309027554332364412022530077042821114714191814757096183313782294342072543410315558281866932838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188669227447368995062528945027771898946913296346758587926423521163354647468642605485613157784036114314902695442750564803847888794329565560484433918406020270451468278242315140650702210485195920723120049337176738352370930885652643448419467734538241329688543063024778255435028195957175433268735831728279337741010263471725258000551089980879204274477838536427497206543092247960572140033066159793981569706136609839640552028766999172254724020639606096429945427059154600073536731549880773908300158133516035730111114109280154122806666705878555092703338500983115676285161649242550929283039087709889349460723490286585602054220670371568046350038260527637108239865979318483093676416563607907066052334341113779312161202058809514614377394768353883950472129452834986548086483788501946767694562326701998713318455453483736084512767180056787542358871951058956527978045378344846504681469516775381369518451030832390374965716214330796386015448161449552393511121218944302382695405786011646737366479565206587250815927530571313438356992004899961804325495020521955502061792779930564245836658721675351928175033449923918332562361626502081490355786124405183440403815991358271738433734045297449996405991865666415356124243080016261793375092142965808828322195705784317169794628455133096838246000369899618059298795066037607124327255975365088203863609588090400380017604750786697443325877232154383259983998643950114495415077009728226536958394380850912841104162909663701274249881761634410166742340050683616764823271038894223948202530869672229252434075060265129885763587813750085100568868743282747187323242898477335425815041625895502385448906849676764892829707281158435116760776172604891355851098147895084298498360559365937105320205997904436973534016628764532063718869382189780157321907629981036125683876483872698536012944816073176186580668059683733894119826500873262426696002409088320762261178399915744021058427898450630360141993392836245540276835099897204218596209020162101565192235842119488202091237839275571856055416562054553471969786612350583489628212860820840349731199881077259045458633766108505095823850307512842596428597494715967542592403495586097964340196646672175723723707078518464663837067170299541698329886912472818768027381254962938987607223408465709509894320165487604793394679468513437326303922309331790687303169941800740480006872513659785795859947801994965234272868898871781351617155057783915871386404057895659182321370814005871380883652304716712718220060186088112572603398624035420675212769089210815522603293004441018906372365919571195303028824858684782564883005251812608103542135181224715840046275105924448705837095408353189752152361034204084507641376742347300588220343231604746330435062814232108294872409025947644118910322337404979474085782776220482618219514282179811243726766258468951951069986737402273230026026150597064215274602326999497006158235928282229783286840199729036537816816002884117306733244966283840324353650413975362055091052197490957998605957269413840242675559674863774293085831406648031844531532908153215494345828804429373556800527667018000947887335886091364949458385268927913655943428817418645559410296179299581260809706454746509023426184034501081240335390006107346941209783867162772161370836145151105007720117042140575102955114913702554533502068141165244769178458694354034118791350719472868333896624761011830170049726189561183989816053909200891172772452827329958680838010737813140018760672501269264546450976733747002367678201352356732426247888048234362900999633010976573057107450862132187796828074343989648355242714487573058303218024945210923199120417862983211064561898234504950543971618030395685126538014922516948784795547241863827862758232782129939782074286755471092498218244686147958081408355004668755962615790617175902192718697237845472411298557573179374795351829558429913369281405884804215715380746853113023354946272141844005632397445875377275180714660165706503537500007800054761003678636991113239858621322182246246434350103632239859670172899284252341131543432629303907359534291441393387428218721484186131279071626858266847205954664035651133279272928367042153333781564897878724347231657710811890588115922053413447767521297746355065511098018114547089217012441063492394924242267383494394078654658363868597002601991541683855861557896701272200232200316861954197028924757421666766801524808240221111561909829095288293422784064903953396720086499569654470752118461343409778577773642631658691698762749541886831332475145315900233544095171491408135927319114619200677579215856331076125470709339611644150880072729394563684925327185891551688147209601141540566400389210281186485459504119005580079283947161996760030187700072991661348781038991897992779330826033333833405791933860125992663543506471009126063462523857434635268474929790657800172876659682562194685410779874218445504710482511389936542799445932024438989851344256726693278613295048517020426704168104239887877662828350193125454951010870376696381206031276179962188931877783052045019481204742705204573212548733903930286680853928985514539518307016773725339156792769039073362485903433514761178705177976647101075024507681616557253954820094809110586317329891753118416036402195034635732195947558600832082926751237884955166725064922072060974120312931357435374521855454983025804156517986227801646893748172397133811236953637358110573939105369179739293431977518803252435258608082755374099972101540080046979927943422345447689707580313149065499764572719969962803326920908915583817603213989264488023769100827420906680800437399250454122368497194097746704673167378878520494165644737071325437283139540962318133764738488941218277568760582754721153484064111928660919806142282295524907588525871140721341401635238119989127477891313975746828093424728231102189843007024439996429064445084478802766865394635783597863301435743073855224801180578551630030594803517023052917619376680448974551900622981417402254687938598091422858374494142946684056784478629968730373668633975101391007984558831971893984042058517831262556099075164256666091448576606836793744806529724037099333962928343483326610413687134472596294417153661683256929874607519349004367548712450125173882289594264322061718377059516656649038896234159034283659246762389215431621094739650098692570895075041141578197189457994851682923997676852605909408476925555603209473017988926182294738346886884787742147478211246290050487616242097572295178607339598869641860539956912742611053799648648272882147298654479372705114310364153995043024924890389871904738048121737057256637134651471541312220563195699529710744845423257854093196070374806243288730574037414313238215835562671427568755755136182019176330108628379725855115674172305047190608736162770832629644295804827975636308237643616154555406169800458196446706678102433478459880692484772748952982620451694370037112019129535311291971380175955779745321797068998107869799671161406472583557313852803781447946186458216347452039855897512317136407974683851455920414500521772122914466992786476520100365397889970941956779542290004143845487143488528556517630802992516764442476821864906215121917234256868516006058597808966236688320128396531227030746548182119994822538814300401681144503621167202444620482829677761601656378975763497955487255108091057813394203472774484748769898419218280856304164926029917623036263225044182962965215438562876070374218681400473863094501591091325421030325613511075755828734786562608093256450743463372334224085585816338537153069458782692020523950672724753690013980114964316594582971648686322048417952196424498327948806313464620108913932870531345561503788769211459272685051467713559958906322386507647782826901680360130617085698288633635339821664116613355480403703821003445838081505583034017971208224939095038566095855713953746347628324042175193426566863925591774337832554820703861056330126237628769817347282242509461531890702150820504218103977489407657214990832478528545951002467959739308411062725225415696493892368273581434607727598033462643125982788894418184917380268704496038867071864770831564787589117803543082013186565820343540734229283474557696514986839150397614126133607894809975591648249062551685536794824740509846496085681889172036998737579643980011652952702772372260193575557202326310147686928476263628518930484926909264098547249364818141283168938328312579566213598835544520667408958409231486257559110519622000503080204257370028996601241363556488028033999569465609588576321992603000468539755980287655583171070639975066604761486777635632261161271522426710967361840252910825524461538857766602779608089830283706877813984923812545171789875779067691651324603108755181479600121676201685543613887535111144646445965948986286850038429381677597961912729990459134396042836227821457438491080662673720398159683311458313277557371939647621394703694871344837965336720886507609494431067489386281016686080935487620406295314268367901622324344216250096191988652825018478075009309298961687893514404852784485210194972931491229336642838361095835911792669732105032865863719619130649857332086615243198917751756133072533690606289440140362467357916861241907679730721538960992609147780039218290966056780515742453948127051582786560861766280887675485282643534579297510910374324314804905099720134009387120996799226673274569721997573974983529556634445324345570326260278293136893889629676914900511179164157396415162234596241438799849972397210625910452426655628296014596790128617641535247864330478558149625711139560325150363183745061942587907329747990654033781293234354964770959941597021691810368147338333306415138771322151733984093817465683332375212452120426351494801795737064857482558812962411141464692661774781738601561556967768080635428081339262222680573586043957391627387714350848477018662653169748886473868243094196018928758912021387277096153848809506565320734420589849785682144810993443271437941292340729754793264761829620403614436411274652404369175428358566140595943326100913231448641642049764947955201717108651706981224160848217072171016494824798077491801666631807604571639525183860958271832720865705298255892664923127405067312348772034977998295609410636030516581681903848011147030423901820457583727316520859225399475109389001211221942666544590867792691371154950789666576676546096288277775199570554507297923666208523507816894340032047543740400762179909188135109499396694313427985992158062927042138267562143534059246720235020642585410968595512829598880167947485348827623226089882142602796694948833997353809115310261572752606151664675747231126731130456302101644275628278219148792466989753209783265292168258433047908547833654269758433077955719520001012078724019881349498443843676382704117421003695116901118016832699946612010086053209415790192889761397840351651115993464204441482768205455063418483061619799460270489648952438970258434171773190315330932147980542020896195125075929364901627814740773224772573220191350456805599978569277543054657879842859468408586784134114538241240720656755982648262576190303383417425184853854038470371006908765080853508640217621010156728291435673677110351164397836344042830234780735456691438177047450894587211787839154166530924726979519526863928233003716850678762078775481783910819732182904787993291396078874176833081865318199940659792678221322713459632471409529463076197396749984634936360975806725366155180785981453495358216014802602331762520150636639939135142877511535321241122515057065723115208537650284322101584061898257004704391718649072412089171456120249173004379934999420658663798578734606048061922811946433156292568671087969712349623640619373881121802073791598180109759080113272257843002501113788034957920439189928830051624292176003376410793371968133192067582991826078485247571177524201683493481941400539164639352182737104891500365804792597615834365135534943843191509214629308199501835916709425302654032980324967615843963471143532471437039221486178438282611386688552159846134450580330263691439417435599175378716668814004529689343519876527230084584655015656598952113011048528816939415686706351783192218559553050002986483254447747771995501650826588967139640889880567958066916065806094048513928010222769761561382608319076033245484652866146494294839667733008070732006751042625141429624471453687509706878506600593940265187786103276547028063257299061968975918873866723051101237949329259764957482625519592739447176400925561852118577244308889458931304570975272959273944717640092556185211857724430888945893130457097527295927394471764009255618521185772443088894589313045709752725867071455651423603418198903151954572188621149171034530596578450826186807436497735831757700864758799643227445489500780966711961621513676950853089233612386662834811029398046074355342727244281049032807567670033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677542793161986045430504448510555800411679433767132055814705872720882536047310649679318479637352788447885205873182866006563349325602359088898353777250797020050541440210559461072076492440913633722789739946639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672754845459997871633253310506190240215181468100146512628510397598394128823698621131831524776496795777441913323947985528716530231998698023983984731981788171333103443398908379580000513196534523383390109097044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757766754316869888602865677013500372589696445868683417647387839066544421819235857731078700231917445428714160030268283724049464360347876903573326188114310108132188552798589730345053440330372276915140453182361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677730769946058020640723918086690020175695641759552721135933758979116047598231558725356445682571437465856688982037370549704529071584697376355587060928012017697805329357967838079502279220010520167689887325410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555926786589807098502295373949421754246962535470439547324133924764852103761177731123138500161871304710647783932487585006361991196778775326807139246898440388265936051085465236922261927240349912103831622629724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294895308547919735618116894346944344364303087144425491060982948288158115956356299337794739220978511040672166448032053106709130375948843457873439847370765374740479308090343824433970583053269585629984793830480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866262011761260953213926339182718256327583059118937210691577643838872278422852900912261251408052315081202726247737066716153729796236517171183091817152280526537593373755812823486429693226678471338695988769158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937757985524486960807267305907650248851408147618917999896292907954060691650986275070330910088661199318365347811068950055323212323104099431566975712843211058927290756266529830683461268817435027634457348731308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570605581139989607656842772395481206246549279224664410867393017052678406522475041053604323508688152543821884057815229519878956064995606982745328922732703853758452092709242946673468959337778965806769512859044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587950751036819995860092479405220515488077774998306131379026412827371575710612817362497836474502072277561952126743273581685496119698882583112616695052224021881146693062574953847086995865745998878927868473871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580449442950345318338129078508883338583786977108498206651020627957076698334451779345271803769114102075574774315429329032629532114978826203515987412546422884395277795499289564754347105898585159005508490056969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551094076846979736827481459790404552190484180115456634783353438088153414037239817881907757630647233836848076617187887525444073186583050118647563203017139833900789875424411026277749259455787263151608748702504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033443038680607516077836502789166628360931767596955301493681279793546665239389865492208212613277637898202946799581624398705936239170511750705049392442937122875207210047900369520353054174702688100313142753117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437897233361952936807116294649741746746061619442841957715064212449115406707312213842064141269671545664389159471777969493519583468433678322141303743107342917437343763544159073773807768335545452204160755832450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398368312801101752643186861118351701735867540649265791513740582162972420188375102977202769228078017323536585248661037355246360519741758718234908738197745199604135160468808608272559061048282225757674635819166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967370151347721514257148023878189727890993192321188518040030497628938731198868763397705690319074145176297505582950790551571289772603435467222518751947227775034780629888158027640883058588732114089935625654452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785225355843731269337547937659943069910056990821560314508198864943894886795977365202377638052694955587145427065851747444596468235269410568519337370049144862376065979574374294931376284954237476962984236204040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903294628692150012003317372231594599370244046654644010709546377862736676904564259977586034142337627592585363126437089730757955269968503132069091830679132654203064003148245598623926575975731775912862530894654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623816308550031265168054478855681997310896795755442683922048513091902688240337712017786398604639800256037206069295346015367351300935166490475996904153484422840649464357839627395979697011999599689705500713980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193081404706478740367155552114034070303989072232339159423512652971711214491591287469696454455709228043473384101385887428050725149320183676549865442619068767503039795693902421343747525920284449370703219824095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422170662717787522895393749739449846068819589926057904266324281818832976825708783089016435405464175367797521401491698161349930449104204274172990731837969851312455958606399199659668996108005049400729639709895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621059065843854685352265309940809550686451819643104550056985286403697227264496407220910728050656517590053633194257188261901685209110944462304938727622601300966509801815021611618931499175544866484510193964089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881504881746263214401932459126384677645387821490032187360528840161581467693409724342496695967974551295215247541300383824175967755422515486890349846758461066315941988121179713345250927530701408561426350301527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115348021065850875700255173632568820097595527487122535718255169787531509556908689854648379484303518706149231357340296313652791276152623061043140923956535229749326101802357414494002010757529248895892932458035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767835191012510994437030462907634661496449559967303212585228400681288632060138439153523932091157906047341393629732349275918089423365652609394831336481029064358631183082596587859784715023449078747678799566742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712823393286247731719643862566531455126992223677667770819864349679984152604519464045901639578960492791392910434902756838172684047052298140890671314915262504417545271011235786801298936828493391396383366078142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503174185769799799107895565679960825291655375861223383807006921957963941983742611767676910050735750147104127391778359634794411592416074096491892386416231443150984337999995741238608455687906501796604659040119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300403226370441388424564853196000910240359148604341956718891985856156554657750890144317771286164568621900128459460742160742957104583140046201246390110210193236887462318746390639051846090824746612222586831716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879788904624217590046666091040163622700645067167256329813561916957758561333390398277599652250990403870932789862215954943799706306480709649417708005812270559330916211844004635893785632435864191061540068204787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455894879852873823946192592738300586578623690127192963826592639378195968777634491927813839152734685103171283501167754128969634017633688033476132425006547944835516002423125664608010786702586037609939080045175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142830791854041696667832407095595877094232009415610955534334434913854388408610824862428985961974125657170424006787671236859353722710915670406062194347260204099413954720131755244915834594427491919291350235583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784443759903370271443232078520464193147559475831429194169719062976979044988213080192587590485875701028049890092764667431817419312738798791908667056460174141045183654736392112018312726421352990750753167418604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574664190317973325939240210741676702423535174221182857151618329768142226073090296369487133088077855566632397283342252706565073072518903090395022975145545081413444428165414364410492175062270643628610175717112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835436681313303172332381352647075257795233015289166395286543189995731745780167826728146022264038189956693799484242109824897420088233111400134104409516093083130905465503159555154739774802214624067611052716137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287895767233391108520813799484234715318952612818751089051213546549692460665576734518571774051139809005074932280070940569206554428799289768091385328823923127426496379071979978524909030460958502032813011881918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499819415997508117083997585525312534793070723771948237383367606554185021133373575357116049840886306962649890151155629827792230433349844936783915198562685043252008447985546296912629978831302936306463370450331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722655067873590934057238979378191460803198271139248049794110049229814317594991993103280897957472533768146061745433132644892480370134626426692631734244357427051774756506755634133360059178313763737592038902042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772424505908085892756556434411548443888953213270285605406006435240340117743942638314926942036676773124923344604615279222871174737320682073795040775380702487513973697487220807941836272457926715860587568437382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429923805304609792532175952943764669671785995655479752601048111609001925598770316036928905354642196936179009854720785512572597532576878034184282394193011676471278020013244905417068719406087486425099249004124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816489358140375420413163179662046260168300583584027808425084706102856321467634921644155965653995124411152722520988557631807880862837444395373363866289139439904591869356297993169132074310849123878269670817379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191964164969664205192232229332522498099068094382986082393386867739544526736321944401598659040665286702065100494097867130245089605063631147497897543186327376379320227953001087717684402618218003859090607702934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250701231645954210423036825301549927292304970650068874455290889366465514819384805637455447031971718642272096587063004983436657183030945852528562989254613260790172374623360138208947640472176710210783635306328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900606135442020790080078443591851423810954062463592880074917472326014282915066473564694914907531304041194874612758425172542299337656191322834413615968845123050979229080934778061000120243079336754606956718867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016459422968490216357698460365666770688497906149378958662389785139503019552520711594791624303805713391044123512797717425894997181320899397240945763050438176542023774937292923666640858263563047018894284713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759513255857198868415635114346544492134618362582001773911196356597362091748028951071191193121616150493566140019891540677191474060450200848900785210448984071558724913181424123745314739095859285491926195512752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705975518962282166849472155167994010237260527619206175045604966371707626384595300533444387899443285436630146414207515026765299871484148385924204684351505285892648354129599964190638362225500616202985179080799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781365580083004587905455655237596430899472829415658468980629431127259755469302188791273103530021686422763366103189051108633596398607097473741955293417850780136533786877679115147383325251300237191023587588679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762263196756598977297183942297165227761967340857344413747591477931793339892435994058139603228134659247855875655057515942861161317673955283481508085185207154795143926672875105744138676971890208777611959245935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350370590760938575244000094748229713623772159263083602213915885590946140740697630129708656969066762442186183635520472790353317530936077977879847080239021859587448789607452374905628374741893102680628048174338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098496399831811297188143863954265440828008619305729179956888798818257244092308607770862635131360946309767740997028472766829666854290845405202291900303432247189820499382480607516387279456689408497366651622813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831281254572692763105648258790106857520808063392875136481758375810969559699338484199106269224113656117112954796777812386239349341400854705378458378285151232798730884093735721100458603654544945301868107329376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689239716108751625981364642795191163033917961291900176095322165573491103747120945790041860289922155117591568303624947160865051863227974295613651983035189714287602237507160599904685227028482420257009629938279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730527049024147727564715409237680664165282261122166055190351049532169538299957017411465102998489825164390569909394598682049855258312876445683898434210936589431051140755583849278936997409501389198821247991620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709530844896580056558463095232963187124518366166304277498527362023490678591557693622053472426111253263891430252893766737392628606460991664258399987464743414163952677732246933313408989228213523671609562825134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888480132493025843817701187856663572935398781140646588369417283873657084337575104479912359736597243445574271838473362051640986039310219592121122572034365100139638906494529671420560890861769828831638828382522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689089150061861841892185304164332216949278213392118277190216752020805967262749463002805388777945962185683074384298925646302408906336676064738970496873626773471431934643782695278376028614658389278933623236160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402618390250818502039941310950397081248122107761283245956399564073037842282949417904179913536533706092953580412844901956771743632655873343028440148149907546510328181387821090721433983745415095721808723321639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516567968029585973380361344069307813757301161300265797024265591786343194362646623018687258796305755636607828996953634981452238866007301477187919864160661439080577725519244870708291097673554991120061231753618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480208158304780292913950274218678869198017655546818144544307419110229272193186444074979031725993977136218099711176146890001377240700923484996330832030429732196758278940008466523507115511183481032014483529474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250204083601834811827158553439255537458236282552372625331435969964636667825593382100917598744440271852251290642515745359479613052718959948884782435317225627541310959985044277475352638887118926497707170550220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295190449010574191419981498587900005334896120691631117546825348582900768395376626414520527393607865138057224150689718558277653895215135856589764073014881111337386924588890982276022973395124413507510038725894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574846316439689789627008337630374301756194573890788481042430928552363102983551745174544660652976708199474320599516529159600871565211546129673541395732775167844348486459833913758485625055460175079220988358771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329619640229202289514696881144705828930980357001504103694841705472869227519704469469729203495196976621766414362032109874971729908144000371573928189152840831974229437336774778258709218717225298406930555693522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354059293108901874004957513305645755468645881925344372271704841107604583450525724291768442356100139456682456604288000474072926191657544095336500054458333133334866581972749276001242323822517184689306940857232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239005173464563780362939532778780163604410427591864202516771182359108124947844895488072585512574549607995691801297131720540384249096087363621351310975286209862242624187424357837677291264179188013767520032056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086199644290736157490533034510746792139213935734146937826784053313199235443303460719515520570066100116930106114645564891680500914500556137849404543693134859106184193301895454863852198600808200402863322268577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188006133495909306114071104645992447597175424019965407306540841697352392504156355003902644002922751551910862941367236000269412071278113087636531615224433516226691901231017136295013316980770097670312259233409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054472593770645420643730283814784191021868821846656713832612826378069753098860829066330396698468396246747688511450649131518615524629479248111598731109079771152980588092092858162277065275677719539311203573194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244624556026604086161331997232849787615931712681400404505618966869098470823941370855181326199637688970212415231378187331300156011219956570354141065353563845243965564267272174345053170897086203476547586741281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600294624181015143131869024087493841124215821508373074128337310032226683957690735069881768275484817730499539131031846532783838656267174760018062788758049254008878403927985646496451552789273450200154100313190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493436827327088471684840823065106804984019899661418486821929237124322629328442483023610179839100426990407744799190837610211112396067250719299793136517706731645047986232255197970299256653151015966045966901508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629206052026876752213679668274687758745287607786344913826995634800825441441318253472049480142126543298296784668605437790613389102060765389746783799090419822642829171356980043472466696993015751149537152043740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958378742017115100574265974925332868258662570245837811521822012775760787227875362544176785168184919799494976491000369349095508194502055638112249647967662496507858023271236894462286697963197153902499010991176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163597153748490569452456053125403791760331016534775001998649580583553661420716997411733105525404205521107731858104589461046273558070947146683528783522244243951951095964801933997282254412372911975335233397882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245799131874799529518736756020672433607862783164465504713334255774562203297058370652084614814618032795565723112891379150610787823672417063157427908602758268048328204825305959448653553053355736089436683787788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226267587896126638330684384900580057761373094604324573314159787616555372263016164233534510023746353682989424782425580648076643361805237741563140378933712699900811546084081424058692844640874238912457751936646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888392795004056809668826825267833258753583516005057945853148483777029676183263606491366056471185080491635911181680573568625676757483627962595423144408426869444178084654590010983008324701273276732518629652810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447698291833644325638379834789224992424734734749255855729315186110345341373356722746257827671875512852296157193501863251721759999422779441251276949166596411764533113076783943587557015112683397880778230893276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008831066490683497676288008809713157726433416470525153647177306613927224056325710013972998990955937477305596363485600615984961253518310745042828059910113561527646137187323074054864438709510376239129317441392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301987370587173582180980066938912507662570847465950628991846834694991196205056288100623524340050240751212565976218356834552257668404916525157075841461441328952097009306872902271637056385906105921696945735131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217254044418986403975038451360611100621071808868929053885565380321231977664500797880892291390719718321553376607146881588861466593708021811848640949124415780158696473723909595858031173549396393423239812188385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825214338630608641076491303096303860615612269477567270566164198322661282955940541852670099389441814526699815121965396719051384313536550321313806824245173488947592503124192484175255740381823511390261635537093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312933338786858701558643847212190881311947133708733823275000562399237447717210347921689995870015046980589562365188542682939856667127230583317473946798938791798447572639669972565150933504944962393298941183809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237676601871908356625734394683547048362244546199371292199455216077052265379834751066676946325551156649491168070523052817308690882682380129412541814673058459343581273433407463471098101697337845113700036146661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177368411359915337237318467663405071568966819381035854807990739961345388882685756724350459189974006910447041116287865267920106161324719998448237152334997836375230143135132826955395290108649420581860439615905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268793902227820026173884246389592211392638749541141959433002708467142370681281377822984874389225801960673229557664622256072650083204373463689206974257310148877783281459700550621125297094395513482069706780920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794877109799136259366223493706483705981684191440900869283841758136960770262652637398421792751865585534001802494738842479507635936962516581598005490110797072695324488613743499388440836614685920902013874629297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910594164937166417567650944337465409728901440632813018914386339280633443494240026022881047169997255339395707641070678950590524163290221291761570720281337963064985988232242671029826426454822793271548045876499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300089475751906443642507040115738131779480959953392691557988400547828953652395636741657296488046346305736737117215809990209894453733255406649244555657047977207914581230450618880669347731611549213528598081110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040317536981729101193027421648744601861963215944684538075570987221296475842610580437101441448910748813376672138354541424787136666538718207128484761707002802307713986200152328528467498051716009417700848306078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119211999009122153965563172633298735935838666500189702103768105655391258112742565036589214291019193567740079666127138230714081882841864932545670050478902357998346296652053903452672297367971122296475763842795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078089623831168239465051168547086261364021782044527622621850946877145846667658899947937102845702785828864945578192102470884098054884049428920275863251351203276836916550933375756877423110361610668383215808025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951422463758912011361597998438034553898743686379416430030513037889583127924845498683990658600640789933528127851940984016719729727069932213390718420955178247520680268463616539771651234574340304432466147817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290354428397379232513895550640142391307665467538114524402470683765280641424872089134513796385999449351608677107460143274772385102847494666363346194172301607736297628897725128300258084687726530151682029250873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727034894392366484590024597949473948604166711335717028120922680527815688335313264331759029946538574852184710972047718248056721561923131996627637828206706279778643822558087274035538875576372258299905067359154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822025070893530843523458081507195695889241260528757183964963055076628600911167261753007281738884588123735985372692992626426660021729769040932291664578008028615731050138340599605215180202337467493294109576913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052586878544570222146208736858727966414530176263354155887940590732122253946707378265467560810746496041804339579538721133064646799286122948571393385632976161785089115582766119790233799986635770474963796822399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724179827100082933191371419288771409898637054627113614217060316038877158734107562660346260346932057574636326530612059614741096786436632812848924621727699060440035648313727017184326110762869070629628767824833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918293598889124812904849996547644596555459515319230198673421439626905245337463449860371792720542796816889295558794575534131465881283310245574792805020086669571693957780153414390677074688444371997229473142096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472417092407944822081957934969811552492557325408808831648195199484925188597971817916507188649753536943195763660262426172292425480056059572174815355934092538283243334477794234508946594682954801561640088402355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966453592077279387939270095466014610509180273269755513571365490940517098691433383437353862239566253167050813221234673687814427618547883058500581078515556788076939732421220873066182620090830504150607987867207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189308463418418513775869421385970025192357210352359781475656283700649893580619427747837673671656860440124253539425460837473462224960829827247240218753734151044388427140893032903966317059852727435757224919804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684963362317735446303933793489237958382338014835246620707688841775646825727171361914835528944036115796246825347099957785414816484667357356113380319206582213549678296294583794899259090657150858589924036877724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812657418887926717804023857800559852923256156882467651635904834058800448384582302419984176242039750282144203323781364695612918160908807052269274478502357943715614285496103309997013947721460617450078824754170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246243759854001837266087383264712072554491306433644995100194782544525542561198544468963386192334108861190236636252006167177340726844487670870786339928851878574886890695595205756080655359723625548665768065997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367659351899510821050854558659024045243950149586570975168801772980081992225972528916152832643287133019120720262250559930210552005936427206720674365808195919838946862415075380275165662282604255844872369634231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127548150940351270138170794870400279463643368842771692401282640444753830021680605559739911153275674304250791689664936534610664903033926454798262450752752970355117029389549392605026116732805080636191135041503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657568583799428685543148848459878043199371078484089337419779080033863696659632700048007534107331302869582860135928766135088569413072689527062211944465709013500028507817008173296936069944780801165089977469838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606611191124996043119748730035578467538558093194053656414387240871593070280022336202403420926692484103654139246032528151391060258069008679246947846415137742530490811333748592565903252108437870583690180305933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852444325775264579036182680360526238789966875626868457587113494826170278726420774053277917839660593024680537612528783622421631814764204764333456586924291561946174147929303267274533198796275905105825564390641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184050164998438612807378871881675478875650566319631976730470586489462404594926976645328510919874433735121566448881451325097829979985682830183029271812658757997491525942142606638449347618236694361301000778347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591191912573029628757699866983060284505512542557781304919657353708109753889805144982819585172096328879249759668785855762687283638577142823352346656795892694854891954487424195222854027581013272572588484604654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757916288363148490647791455348726575585011194226486996243910900959484219505011828545702189874103457183898179048636464908296777315083677699733551507417008122025805388524519536398345318761778123182923384516149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403239799144070248817343433029272571092865738989424064956181090979765498511842477113390072880929901630186941142126117034372249667476682598881833777489153001358002314602426047205527579931989940964316114429852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388459563596685293612599124572928376935749499600063745405102933125235371942115650133154753736280907142815773185118592763310014484781157730515727741163632176299555971064374278716404082983071046305419155993714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598915782488050412070590464407322768848308743534512264547062694097544451369757257089150573023242573567272108516847067390111372101828058046032247916600738326914541593198292432543374648604963396534224817293832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582911338815739432277101561962477635519024021712746862782472197996762662900919176955643810538569264018591476166954319407769348965559060313034157909445519756029662487545487909111753269937093712638067225675146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250616572973797480750029723392190975012204947494170065939296729602873876719522255063086438503602286418437662400917471903283390839953674746861310109327545085370103248816456357548955860367991893611297876190835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908632729003478722237659894186318952339757526448262322846781474167839417587877928413411223019880554837191966208599311296978303388651675854462279134053844760839423555344903316330001247579965276168526319453293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144729732605821321486152801009727680151040298965202063860686004598161428523749991208520934729230797735030153390597764783428907474877815173481573626882872884730960864188664530329476007533093585380277049260073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080829559047506576584568604989519869930506625060170970783298760630468160095210972977875136018632054589557818005958757171911723235091578713751539912551505260695947605933157635090917977332083361368071945515640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426072791995525107455130424433833640549397003333713488002997859465754494276518303412111970210299873361991177647930047649326491521909917772362558052712725779928418622127220259472957836424156951838904261862931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179754496131220872848373883319385740201890828176785029850526215633527508339394101455547212563763685464079094647653816550805001796737374314099089474841691430065081182103990094191714290554428743486917780828412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729595961387100715792147218370758041500544134986004929074996989379034881020827925069300574236017467712639825044479879477551383688753888207757212063531958650030083910654471490754927971155721846090155394573325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871837399996196829326612241217067713397137880925201702623014717820800639162135982052973855055582095940333264708915619555223566380626412574791346382537492599128801431261443620117181006104722585841850028634156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458174055622180102965869545542962321362680851935845002587357305866651956174463718111344775636102931642292999771284847399247914997524697574616765240133398871189935029199507259403541776788784275863173386202123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190411493162347872763662759215456841070241740529792569429819149817406395271447869051184234337195592612319193757906211785809093205884794836305795612156010565182075216489529364750499783642596878804760925999701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712137553712549498364613219105479011950805481637782317553188054048344745682348295528213063830359546479755313386037131657640783340885935945737671967408625251809781817880369860116613883471299915377112383415452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618234925304365477918872773039577291667603598906829849792753264457930205625004198215817833679758324582016703344016375194361307936066877060596155074581873007405885541857077712937653954611123552017737452675365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529608607344805531229553356882145671180576047588419420583496338454216537702022628873203281426271924191134698071535062364060488010610176139643065506664667145977479275127501313346596764639606994405703118605608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671964767833012638465080880428311109850255466129686185565035001236106852974356644656198492092110126637583119546240112661948930083828438659999992833337948765982135588393330975965394351687477025420380520337338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860389204692057392137396597629342661799387598861055713847390158695380014400337739425963524869263689609087053952625109612729088737679822241074767848829902625921417206513544327199164599833303338205097023670379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475856566862618691377693236555385533736640181142604011712634532053725124468808392504553806425476628093450603910861511948831424647739359453611346263253979030531061551540475704318358069888911685088278357540626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269701690562668719926815848335174102410950604976133322103046832009316294819666417866410892596335403862924130152476404151953276182470723527897727695774543149145720405417995318578837498108505057157671110581585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274740449837985964755841334894107426083336152120775019298015129465672084211550763881645988966176464369760328924324510530298250512242680703731212808393512202255408415132029479998057513768649336556761678499471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019656148112453886271654233428875619797920485573019299975004175881862203550843526937422418347754235756053467255495615418988381785602926769085061313659528803917355560245687971772310603217457604975950232256294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547595952532130478006326107107680832162100145794640977692680069139071937272531922852627428957389504137685477459296033592272625266668352170703189496282724565284582414254606303728040777479798854129463539799924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320471690415376867800192930506366957785508855054236989012229808779126706105235629735806022201829431580735552190937586577473626473699288881279782933393499869773523241375993155463631192982070653727478607258997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292236982590464309339788165229985971114388791916811255637498313161109319061156325528926120586515985149397612705562408767671406059062759367897286320465589407531927159129511701844375575853523697820603460308111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689463887385553138636824336997598597061645706267041304591264372849891483568904556090934810115809231807301845998408799090461574931098614313315919784060635683188419505707596210326850840753951104607136774315063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222592225911315687185512988438399771818481775752765286872747867997560955981443326979802322469251748008480437354026738684446482509456837198696619833088985878352579323281004784980000165924072903146602815056472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613489722639790211988963444866201881902957692950434647230578452652005806799064539004955427487396033311151334342323939281539285755241892542753368993670767360327076953407153977831769329985800290247380912222702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178211544073283084095822937176862803685645159152570329027569036857129883127811874734596074173100978847315628386494861931043501661812266303769593726764588538380943049453023030268014210975502503890721484246009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517074454770653839619602834310285238409133872378563979536825788370583048947266348134821317190888339633672412315363972952037995614054202652355733182260536030151610767270161366775347202108995240601901907310716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757640208556243114944537254595680970256475764244423090474070144938720093148556612673864189942549493136310475961893303490949930728432409009866042964776416063621289476951726567416922104126791976202629175585305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088099429075130067286149727378504160015538097278691011653816376029956001998756771052874341796486349487590228434508102484523242850619456464928288338024674531436007665393932531690693471534111025909155950980999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687191594786448216907197188279045374175897865653963543641749642113833239127266085382956774626422043748613750869656038144115446781746318241578012548976258024056722181651902552564665510417840313993155273497012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015604832529324660590007467538289113588769660502304327546441577272041355353431069230209904095882802842492545660922550473678663353597767011475477937895122163950391748837006069208321431310565114032165914971605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458542671276811026007996977327310910874040713888398593020568547705681283700324106099488089120372337515691677129447677010573628517526922673867332490411057618836343343739931740573619353690777058069918700110387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561280761354315839479796503645798442252939980325213460972862269536267247076289971779632763346141120704154148305304401967545816235986063466572733057403342467568253998855700384203956509771995410026837628297511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122979203137211031512057869458182420174183205651511753381284579981732961300097228591130828209090533147601196781850383675303470470005787483609975909091296303441827655051198429426117421250174531088376152772103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137185342463058517707443432161316913045445620729557791498890485478502949425186992301564204823672996782085432770817139937297136472855162369102809439490498095711147987353263361086154490921362107195786271826589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559547566993684235624999792277233328567847862452694981303829576715883682539034846167149680141385991940555979179178582819757848123724780229627342713273807017121315934540225441686146416206418549556220175802717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284222126288743972398792999872217126802442695704364082691751239472885809766317352190347740207830108250082306867481659929162142043785596907008396343174915704007049111330970230468766158574831350801444759928520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762756866162211863675611345401850612301450506414647662002547937273701691150910570058805838552877515535683461355508881431374498563637773694334730779223692023281951260198833485319308413912969210345115664615581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237805646976435268613067747611615640308898107229900613620291385538646836842458354434207249065269431319263630645579191032817462246523050868114539223790346999357618192283841178311127342660931717160547230274858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611002107616405466145328261330250989929553919275962994627826326321165658743195517335942787247995482872278107931497771103534255438166350502182004755984571947076429678271587726848362361118065924451595282915230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632172593979270182677659278790726975958652444479862784876695394914610177605776036071107508660345575557129623454066377584487731406580502181444145701216138894429425430127261439960397515488096841753887787099771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515861921683583853720551718196699002906225244297196477607657921208349979814831084253380066460564654628441059597587010538378376695134144117115765801529197239328318237419072418270556211429248125950086219348254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650133033647595971329458356905875969705836598402375264559514284152743093476002848059737445115482304008577453819441423549187838092922978318441402238443611232216885056243354185884325115447206432849620845632811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879880682998086123949763295104635913382691252518794669450894153964933273454972994489836299473991754744164719717317798726839436024010521661014981526554162540385451779521584002495879879741049524800475355816454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659777819507522588829870247890096406531852047423769523893355012184785996600740896503838595147018040723457768783856075809561645339216884897542598305991753761013232063543253442404886000030908226190037306341848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670579264414090854374014853045902503716963747745860719140542569438156117014437888441888309159229271920358412987162286685053246038943565002307341670837518645953680252758240520923744676573351270601601170349080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197363493677111426543048470811333032318663398550949431439748048407876477678327705348801596714101698443566978084548780518231995756407397883177027113564392420445203330076097643679699900409585495562013135848058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772171306420425326555361143239078820350945377075084348892301020693648517284976129383325793163280402402366224770735848850558619602148189507568896146498647108584644537329496552333726418838326212711782724069322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056421803074943611078136138968220487736518566702091978710942722765034706338508550084211709404050825699245756282826278137513327080529455232216084540576543785400717990812768836695374975228640671461534564901126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509057949181869154204951481895063313672323360017919244397594016416771983594510693427217293483713315270825228587814764495406616826606632817385906468170848098019563095401910023030383772107483227813901168208258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965727049696689190976787295678568374918266228075947073087639094291791846467289893503816657160323834130048221490735573101147560439107642307049971417179272249889362511853771844565361124353668033415834710999978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252604805038222965665856445463817257872024223930603167450160539775516554246030743256914538414066770009334817262533785783695496880181971420758304790250454493294344080654706966709208196687180957451822379033311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611160465752035096499203009430633851515570103965436156004250209175408368025107569627240540070613073914839978215497526962006777174612537517747408077042146949807246566921031380365590139144631933785249740807704214694980724656692103138036559013914463193378524974080770421469498072465669210313803655901391446319337852495607651289588470395683600524056037732266484889767598647222236870457260025131465330278949073668317542852793043641684491309014822977944414539776700050476454539441997442534009022064970795065778667625625790416787951719322821604842790422281457455555258501105051118532051282481704493408500651110585967966113480543157990100271163704146255884514695315016137653098634679351398306442172125391421048484018069955555893386469844709722072920441600174464574485789885219133254971330254820980219920946867055130885041123215989403060607764070886215302252839630610614984492974704512812064392509526839331630165354068929280565187157265787411940217478091727995418741181137373534823204924028544437285424144786673531720397284099921075338521376852189920275476375155088032382034514104490336878610551139745556445344133528058933149507241545365042536863587651146455776385286184222500373544338608419457202578083624670516135441219360521249265478557979011265815919933225542147336102522035640035827908575507305278835431594674179374264974074094794894477957316609623021732397288402601621550899074510246296718368591603789059816357439266727829502991817957028068636510124544515441318142965418452451978873052020028802043389552095212624250682073625164648296888315050959701000226437213534878582602533578984284992642598493826986555915745522772230447836700451292620325907284470070718264639429939710579650492402721513090902016322578929364662069079114189091709554858581709996939845824188862304346386468537094692019086644250014237049070605479440163636224484204946141454073340772056136753779947174346418696144163556429471591970959124572988939233815001041229439585288124290316381893911829364047567480132005483777642241308322733790168055134561187865263787390846029832484496777676526714460909842724092219442087290507772474227128491998627528840954536122442608122367302636241666463676956582340509347865011435452230172110431829674611812712477267475584183473918296468924243908358983041077861222164667413927458084410934467091407688908115480426990464476617903706913186431644872934811624753142709479512183711895430801606136867423308652068568392614804784456647494574832329837112783484945756818482357381296729860250944563100213870768049043011088410435606595632913551363659537905774508634658418379378550213855073066062032361892026534379655424091388667805176486602355686801024443819982174081868308063265793445013660695883116352765901963710912216830217994317817811597562569334811817590163704539548800254386919502939484296333878802324540268683115920771472660964081472974256413523770713265586567292609352131356326973863345139232379491272741604407165332837276663606992078289885158189007406817883560033839550249105442191369494384025928975768041647987388754419071010073882502600250529371571205988217997519052515481351289265070350312953887973951968071463129797393988552240677107478132966112514244409425462058656056386484117697376509322232005813738988859893022336308095219342652281506753067731168349920030749784495333173923562877249889011049829135380994323467387064792939183829847365091741599344224180136090702185376839482371972551488138816352825082378087561773037185933102376901551814895668026451066955667635627033163755042821846935526079312867717163008152297052501399440411109952375878216898707228324155404378594936488165971060194170111775308197796006102061075809541843822637717441589308934402454807763589859838646004481913063291821212522007280634089056273136156282514259729116909696211674082471631451891747360069596699142308087833837868659015986702232142869157014142480704589721910542004790420726183894565916757662433748165233431013197777875062648144789623796854491833393254452263282389839955214350864723998824618234678333412034969696346523102970980070312729811300298748758845155628443101315609908946158784058400383614543062750283843451683679399431155194067233688033261838130190651593168620191839636438811828697041164945876942211365769814951731860439447681922394006701455127928254056530324642352419083789115209165207534501147751337617613160303463500158304324119830345045973111548023529147267556528539615498251732218702811891475582192510975188147499627018320123866466554470962703221196735206682568834873759645072512079691451687396399872950892928615057450939183524898641711515633710772070437194298978525854106512202087219851152011968200668515495090775699216193168057612255084107995644735723621151384426059118785236111157667462461676058949088473218825118818916537294130184756365083622904096877270759063075951737344653812358167205699861544933744135511580828599979725070005425695844829042157032963296954183720611253277818507824353239187267379753901060421898213335680014917629276358973974915103361029448548755412659458830826273087297415813599878505897081564293241595652057224388601584207810475042628112904425526350548296613431983475578851932222671869303645667271026495994005116630866373172740445456949737487485211033177549364625380611334474310806832630846622039370773105244279995137450193526614235225514186805510400502143876778592990110859251867499131314500087258371166936982497699408416160624284063083328979971618705057651962404924316599951518966497547503900114739890318968783264557847453725180452235972687766876242850753816616792488000823409032034807146522890222308061496574270447722125026619237142356260929122601825058373181197103907517533857713780776213177245287947915831714843227314735068371778815798520230352800599998697766693700822670880420433042717610360443602119574053183239775082537624353359925874480669523131409508267297420082719591871616960153406545781475710124329470340498901172403145627070070858913555130659474830501092675331050476766851006872795324432368964938724349140188685802176697065515885025617415207031509272651458735885771669074118956676294168134057842406773388665298433582820992092796000256053731611957486517297171140435836830233310269244755634963018267857351110563974947335708175806329870766803421309668272612847950604361526544217036355406583290195474112632161794143686238782446810885100608798206571969473153168872765582925484100600262887084707264146369814546760230690648480001950891529208834752002948330118357071474860460032318036646630113783461481020801040824162464398628580275352540541481178772578449824401215358088326311157679388344399416742552671812706870485790500170018827661154025989664563822695284086125700000312015134146214627435881881137521596235509096186934825303819680850849675713080265221001754452150438824469635391354522294838227521939781610063081571394734757164331002885720115617471919226677195436928312826604396069925463721960291425377797398316744381208097218818831236226603387075326789425385591691829772833273126155084174849512359891579860193104630204088365812328283393282877527485978705364732951561411429853246103430255531301949643011670379286563766956985479637443740469514404752486274767380255896740849630272538858173832095777727044265967645023462419588725735933861552680812047751364027860596714899368123712011862123490548171292454815430238041036501487535674543111800604500426130787682215885144267302962084048226136949742620817609999350033446197688418790304159595153926411196546477482084960353618894576122048571862646143232749719188085841721650249255612284867044407945280918253914446987618136633194396064637822450816138177872928278397648591104634556227172221781769229741153867862146057242015889821754945547494863631767227436470898021546200732501302370572121626662522005303961351678831013008568016798771386008087441449608596103041041197485369831113671070824797474197170808243016916661770771312763331363815453158913375254168398408478643177506675039488466367772146792112185361223631672188803806610698593702379096318692240259119146345846149741712192550199254747960048460063345981864608011593744703731663195351890879205648107281187772402039744024602129739110134992696648989782233646553651294973293415434068946943373818266377860503474934332702908375618011054934690179339428739905663796976347810695528961987646189850722086345874757753558684468723357249179047654807751039237363961854667533349597089174705010313969438090236340457990307072485296328514308887866880742498163585636339314194762523066152520565896307037142091574467866737683351558224442263717555290549395328823666896153326331493583928128224584932540555941071950713799703563742340097316130986462139379530870947165361256508033157850445730000941413946001474525441403816920993360411596583800506303682545663080628250094880200341800214558417554634801876535677644115164771043843669008537061169050325303146835437133581809292400768050958188888031319229966049866511923553334427159951307690820852662967740310259473022591776820132591077731585784477312075886450933987756187266253938362357576251588056203092312138665780721626116181270037560534462263494983862525666524229234436513969720823782599576261080998493754227356751224109232447930724282802917623537533863708763873518155274821112448002459124640511151114996644626198433900579254635394962288892436232521864025248104905959554083650286893574890542000912533867434313407342265195998144887626448318552732774941228785613062258218781200116285735213380860436525201235079083015059632454682818922475989132871694359851422675732581509249821248990518465907278237639649232119042056438491725564318734416229620060447190161161278608069159705072338317990240010621164747758439023757467891316957011822646217702894571191364126858718686358249327174656270672807513674315975075657747583764063380449448206683521783321333278967763836574467462017288395723672110981540162132700681687402313661948332501044648564646036412531741333323796075672937330521229745793335256616855892004375962513420306383429430609715847409538019741154953001028216505595925945919485334822732715544487352136534472942394955964530478805317945586293418901077793490276022180849918514125716531651374508750314014667742519764762046166931133260453878964516572908438615194431140161514230702247163939901004379068641034162367907418506463768256603895503347734896731133431362942854314887603124731335419670980008452642740142097631369587622585910093111299737936001355335292074829853672042761269847640066766986610534552072872187381806791058162907487010767369652166873448787438277199732718649255424806684238330274106960918550071153548924174440794337042318254560683867024205233933058031730647788593322929965546621687057128180663158107596988037954190286710515896821839986172264565237272159212726998561668843085968396028717153852669414793173289354584495315021859300866891179713664949241053953017401360785889154713408500397680364538111157208612956394709645574270823873126874988730970590053373183461689693417093000008616802780058956741522844366300229652650701385626568435888629758589271228973122504501939753988019599295859466744488527923464103724733413533839025948077395517640674147646580145330375512587839152060027305459805828008341586750878202182980291241797731523538577064067711668452133686650109064439918466472914384152284355957780524178692213439026209703590303502527032839798676548711129716415065768915393509094042163002921262342347128521083954216649117518876848901601635079499087251459442840907695196996180377128279292330631394632150965793664885286718536589854282324046387338281784815302092030883156972673439255833643216320660898884580711362776399966495706481333243008044307069228179629683286131639498341581788714262196654990514044999490513227583290203973389028542575136640742837719838951375846035685933196763654229787959796756828399831018152542366659857278588886806485189459707162034673703516804567897410832102068776915310505668766877329334920023893505744369544516023429794578060306718931576795190895808112827048686785651794949425317989898545584635110166292415067016117622197572925577322229957957026951427313412587036021325937476429476772338553939496080349432963081459079933815943114610237436482609052748926091149978175992425233969728695252416687315009238204121285426136163532491366251378662874417287369277732668533899905091442880593169617682577285592777855488912248808866962902222009071053198672733203501256083276186546860690046121765511410345328312712044352295100167947903133505342535567838691922343124905213327943612569046803304540642593143348598935298788225495318574248810376413754148449982952274890279695089814986469076164438957523435665064979825941525032426325529441165969405598958665076121533992974864105280830988791971237287616972907302953015863380954319401820266910469313930352663628358321962934195022055821562811510082783702191422318615775289443074012512069822362570413511621279344747937375070858534490402518946776914742064913902473152404739223757035683312553974447363697759131016724855642522704985587132991847584382118515249153210866087093894774655589097681500909155245318437110167970439422720060659347278649237655946958471716429025786327183436043870606152679931992517807196060181997889618914413296815327355365655317827878987704548492565683154048433686635893482791153784996014629433017853591892226871356021156380668887360245242861517707711106712851439717394625668407770725858919518657200283026878274880646248625804514333344541330861637868233257296257953800673509106053396523255759682415048279519619749459051008217962365670147705645902747898018100630951888962137903769365337298726812820884788701063082554158504213341014958285427718069494633813881682451903444805049224355100033141429208942257683134801951041953956483428383168994699706893612395299336477360596737956301617803184226182619920816348676196602758664471180876032530070874535085357549089483316670801325348249711806765228158023607082333904142811702294135253600330633026112455168649227533897653332750883730873546591411189798341977081211090804713744235632419974361958142327674056004446749156949455787149355479222541764298223075736651596039395678729520830762129957290564633327979056087360196683806841521600534098228717682054303049482964071437795896778917852651344209014796569969586033217610283983223252420909187497569528250236244494235687350103470187419905300293809698609087614945672871126806871959924240064653277115700461234695506725963015667229090544556889669490363819793746846586653406795597194462977563164582434386240379348980473005757098395158216139214440418894226816655348954143282061553926819933381323414313987908720655644117610051979103079211594464124822986954039586697896296360224807663263111856093817090755322596581714925458095004864281930723758653310934741026846088351017655232979279258864296905772257139082911909071964170853845945443359918962961825813795766195253377709395930937558695979150585469590600816003435570792205728418485855996164771561906337685043293655454747429793082284034010421477940049481806545729224483426104801520489332597893682357594775848939079653986132009777388783890023066496506731865265056828395821962580338070209708988714146215856544262375254313938425321275734074533191162955171187913699270353917235081499866237794428418843345714929271033322663099327159181177798427378975014789433268497205154307237560639987729616687253234709907174640540240739876530764999282725555733397102244685228197440635674154423398952240404254833976955371473159903911519958160949598512103745365994424396455866218951207314020177355678185319574500159138619106408997869328313648390096137571062723478005228242118426427552831612858697601566046431833533610397233746019991538893157302858826916092049488454130092262588377714048796551601554359374511078984718088470096060778907622069368407378496336096342509584708257256336812670064291029822279991576193941230501066561932438529131227088307156747196820218627201948474469147750995873774866029631262112393626268432315339171935691378989196606671277097343228082519847506195406203449333070378426798379941771882384778573049239862558566116335286152795713435314524810391638351705507787722297623979208407088711586623991923319336495574109949375410066796880142650207310666332190372968824698040807054186317885193804782714122565417999942520847288328203476858489725525747181941141110041741566799999641975328403240933119063192104713467023378515181682298661343846179559222892272724792951269711902324963913804404399574050092712081861325429437494680803495274028786638624393417108857657456509859476694892184500640546563007857601863379039611427130965704638609176346038756811696167424770017570120962241599529760603853488570014814031370011280296945431637235112508802119138585426221056899489951830180914171906159263693473649530715417590666788072282014882919882051557077635832956721911220357704249516850618829530889889133774280092605574823119088319103131939299334559231342822908244952580052392312035468409591811803767004110412429520600416749760555822753840278557228994429097079220373479880867350017022354028870748724156877915062146524891733255247701844863336042379174274985534336281951376593862764032817426362481472009657057617273393219713701624994376072232561327874249377778589269330335964016213344136498402711391338427470757769543778601175664910861942707182917441242654445981363785943440204322865897546386434827291483675790906124620843234390391923443343496772773556111421320014394443227320381369085729795736326744778943865774890385918099259886296977925891374705285779546130320543303677522033550855052641852468351949293468352432860294168994575328382103070059714264453901409018029918233366474407788470720216230623856055975822134483772962995988321194341336945834461478359693702832682714104848145288290526166403281494081840243768279808314945204633401314793187522373778064144956575621060530337373631466749971428199074239705585981535036662090465058448358290370627882179517010954976396032910465540606926458630212687402703333762870900863607757172312759161950765391337763291958221560239574342934468871298084612180268971042434170908330991098588888835254085942276917768288120756179439690119075663452417006163200810141847533290811300309310975867707303631842545293345309766615291752366323656474216904228061697515605333059925079176825022364645999570337747610841475018859988302655204068322532391058724489413214920420150763661972890004060592720424962760719992999765156898504788208519098035733115741544655500524131490124398995076737791147971421276661555365700029980643522358559463340291519655744773725774525517368467724114822876372680019635844862426037986498657582130805125486775367180449618700159104473879342430418785461787045785436649442843850304116481926667184975252670736583993025400618865946300442593498642188736746677914010289921935190341984732576022585319484839338206114648070364899786708653140531734815143246518534005640853019289907636016009140767076874864987866144724164384262549228598167910812920521882291519447434704103619261982249688650183287881228655261494487243355986406705534886676421607699601535508232824182707156181963143431092962804052569380172100643874560935856366533754096152099368441090064234555949678992586527173749829803717638644155408339933247328130954900909116944267647099606051366703401744118303662250489910202822410449800530639392246517643281963200444786431071064518182924901554707466301366585027750507967666944709231116950742845792691986465479689769857442471202502619936276904918689385379697748241302056076304338922473675747538314713417546782974962447706654093819818294053395278667728983884828299114239277363245716014373375263048026324942165455657671976751934720546499442516009891508526537508002510756054326553772723422307196967945272246615973866021741689039122722547133825915532284525152266946972817303175525367108519113588765425443579041298241035431744232764343271370654209963215706364060968713845246245663352691301220789207803854120376020634119553945346946694930916207958199116593075741982692987786665036590825853102107170150184413675291384847390819223564708665621950319865198555690374767109471408761353154871815930278188382078139400086999967045174005890292947204951246680739095172243055169301048038278147544641937702694249327243368125202460157153486104406075905633203741788371475352143957277788274638618416087213432549823690048373821826384009251021559976282492414832391100246927892536253848077699875241682775157981445345592180912352016230923561872620356180637137437050124625681248863511622694756689681361908739138611682781042246641848813774916377582353071751093363651592078320285074878177329456795722880270292533039303562960965509081112345990450064098314626001133976600372981338813161449862460738400410387389523346770156047656476774375309135303602773064948548181815798555845871362783153768046482215248418050024360485920424819532883678403638789956319332163183177839752991937552421965960896506553739404460898228965083088605090890249651264721191096922940386605909137826663597944840783267636254438297382631612385127135883189511072580994198572394263896590594982782417809235047599580728228798338367066100204159537645690875936082090530464645605498351090377847790876519746000574937826856962268923656473689664002376142139140408853022853014229240229342391847460728918244015840316196570370051165037483283612130517927679202949584496107578731219312362792490708774704940277207668639512899595810379182555275737019903563985512824029479351343047014985331634148827241470870511372210732637816770795704244352542402658784910323099442185047657104762926221526379911773502945540414719797361893916413646795825081052536221009567308707059953511023282255406880818424246132905503411246368206259564429291757401920097057467517837870949738346200035152023509658220513234951881288097417013828007277492706073842957867654565122328069601873592793842250298239452654566153768909500376120416256518301073537003907029150204753714277894368805917320302711857789917666634257164269537166959331831417686469920393292873147806545499610556358587858035598893825325627842779752774869590582901784353170386419677914076504812980943838768811633599534749783496325840425665564883523023097152638961085263284139935517370055701579243314557133926350649126910328745743368016847088321019831805725899635641749947999141176464087830985873887601262243929152513512743163114240916595798544231194074263914199573700819368632439542888918921590733557117772516588695449446490515695732422360494291061139881878797814569230082568163508933768853608784915097614076727220176526327006304042988298532360410002404018299071505820953486678658549147523103917653043924444519665134251485886593572530618789331732908416340355221647410415435261375821818187912790652821080566445817008188462120953276418823619373937158454165450046137634755726916725247610255780211198221219161676924799468148510221108354686977604706507970232697917944664058254587841235137839159878685765801747173575840055450021699156624893432775705316234398574651211255669761595794165500430927839580643678562017610936953432274420323727782921264107279273315388054265718719523146147608512412071162145370705234609873528525352639855517375988621522832527062331717710576468344207112184896971626329212490614166624188760417868396533520813403993199974584851636867649088685910452680787306216050214958591937822714926533322860968536505039861403799578393235926809107789054855586108859242822422592774477365117818270019813885316073056803365796762717845777429169997919369629629072997268103049709697061750361784872804915714553234024897008651825057184139097089981443210863274307629534648301060291760317398316298855807697144339567729015294792494892573053103628809298857109774203433903894241774960849678531158757524460721062635221799957944832824964981796880877703560490697406097558151120951620501327709107803913461147510049698677195780467282368221758850855512187378823843550239713535647675312848875111455843944130756166908021940470540250925616388730579959357100709542152424023897386614498430269643615697593835035800086525206634482325093428912815946824688131107670648072715392133808549088932174463059788581127442534488131962175507453904692292260778682863658751566809447504786267227357076953714897264860136280801508442263265972211471187217154458187742615869707938869559231035534774484427102772791812654193912554760484431809343679664633404282833273374185062986549946001209056686091094950352084418389916340306963343519971372234045101839365628394905715741199173881420686449188564896816333551950660009288433325248067355841713374961715055093426371894023253035425993843941877187420881455435435616430348910314815205765886944478270644910995335212843251910491246905432173805106794185988054401289425123258990996231232405387739821014464058496559741586595232058144988525103769306549748931350603293607448181499898201118274927781520113240464303834000930223108054725959755121674670665922944438571075829356865159801179019948045358247172345030176398914902214494890216019868415175873791916826610983857384537652804189009337550323487675887576583508168084898048899461346384675835827589450046648026022470795960731123470870190122939638421992508876853711199854331293724294847578836115174083358437533109066594270132580329543981526920681054804215521024796511454543319711530574099549378383693200170656410239939685203415131733092513860829839610344837564348547094563741106045616668328026369760559410786005301485403212528253223272517323249355788226593959508373340095059845300844861549376083077293236978053902069489843652286792858078158108085806495326331730564681609178514712540008807225793713598591960203211769851661813820572666448797145605056476417427368418914506734245675641604829030981897917595674479970441848154395604702337843568126761771579873748731652445882100164106192876715295197730961257950401327995125123044607173765330443488975837750220067414677801697322800545673449942537241384582367759639957228554593078385191403950474413617589100741462268192976969498861286529855178802499331966356382483829419247431923558426763507319858030301534307486182437832522793357993835685378113275565386473002476743067237584455570664332239670583789750194011098458453031203974160814952863365122483951151426513952136199492804776145672284844312856596154497313827859533076736960149415863707036217565867010430358696114579171483445820548229597116654702113627728249354079462907060140372016903577892399326303272607254506004036460502838092961007600067621093582161548809682798180459087699075582797111496748587103659798177900559920461992108621883339386436767545357823633698908816193564218210955951100939837537477554658607786559433062248491278978754508135580009553618632247789455782167285821565583485741692055782234361503253551913069451960052894986940468655864528839323919612404399594779057554351905822581270246825732160269935312376217316256389732475711628596069997082939495981464546812429119289449321675789363587752365870831262612976895221403712133337137363657009749611146795473894021625486684146352498148656843712993256610369032098432452443637457892832745325401013787354608708578491533913301848796502158881092990371435011496211919724372703633189011799293100919897206605891949918385269867800580939230917378195429850851684668129923342594667076177767558862080126141261464088615606370386756461288814378861816884069210573731007147127556028255238461049428731994983801419274943751006947906095976275704074256052792040373513225643720532009690271261787884195824392343316525246682094254662729793482420950273277702953598156498247338180616393871547749197535049321791743206684340920620175808477830518875496124423952011896490704766018606357333213987937346739149080881235134551377407155868222354558845754468634333775403138713026260714622401171706024010652254911986468430964157219449244602828173252536670353723004242498660648053112750195435652322568738263515606179781774903631475049573203258272282087901580037039472207847114408535302162674050665051256166950057399083273250689952126975261606027252472836652446769954693569475947257566855811894258537772576809839768588064964418575387172908716236658429546000645728360531387581386362944104313462995374182776271853061591934261217713201031002114525657669028709745553310907385811128955140392716687522479984987499178502589268902148245957825905186445482530867096054152463916486748199695691963759719630398096105803354613278943598184350869745259200054859003037296168307195762268543536417311817450957993316477690774640274025905255388091862936860458673952113310468554748440381710725066369101455731473828250535705756613939175526069518689649250344686647491465261560855050379139420298199422219947354382317832230368471373302474855942982638040651298489197127731269793994244683681397971930894515313010228207176024113229639122806181570953761845202287863361784261035310734175920397829165437023953430922591085010805655918772527775548002700192946141441537672275682553321417372014074713478844343631675916143872255943304949771961233842226616048964396242053267797041430802411640119680891010920634290380279255156967953244161928348664108382860544153699643659319691377778700593603048202291302651459229613455802971827243841968767243708449263675507056334050268371994493547326526563206627438083699582633516760708235495298561583433119524392297003987910675268314944224875870597119750135716880807708801638578432778181513027786831168589194611430108958921839289713359413928885648854509163725939835974207671570746071497524605986398966957462315777686048797201480357679564845898219702887616123194701320955924214488355505762723234434842642601175322306182230356585080470110118991932525717205499629266412977350428504370262289723585281626756378963020389847435594806121738739066853543845303929312988193883304118342377836147805975750584066225413362933578093194781966392974235039084805932006978991767883396869131974825886474708627997131325613717273081653340613946256855059072754586450686465652776825553429721408833837278820102890293240313242102002610635664244369661208304176869322010489934515597321174663009086712008355724205292251062850302940669270580504400681819227351425634658435481109593207340127496949000254472079736037916466970319503383284835516767605831036545270857655498002823947822313718870396521642078414038632005016875592892442489164321079620031371107462606935918955818239988365915310970042358174294600735961247432905721092909762924104106566209235037924431392689030306220340787058475213684434981400664399682817772883283068082967474851072684228563950311923967939970227828083290403918794270125640317319867054809038172901093826770327618187333823329928735425179121467416968444384160995792173492547541151695503632929460672187983817798488683627829099798430217204175362522299672743257163080332626794270088346679931237227789280490726906343593863344827373494687180880694508882406899726165871343751874071244353589993574950576391055026023488483193010977628751845555614279728428487603938721304909025418488426977514011626937613955045856899047300398762225695695285227027007070022363127827564720918907236614533831506450866015716672503044253134573076142482529934735508200948111074026427032879613545589972387692438810975970444457279722559558214831857922116838192022376660147053550332990566389961139502003559003953143148531999733956110064596295558214961621580455163249615249846254913386661556613057471073066064947612592513473986724042947052713945870057114461774359248919999779853985891554580117570754584198570746444171573528708831815566490671161372052484212406756883333463263093946744059153928124346865274150763671083329467993079601213226236297192288906112943956865890674688582258888398916501883553307523319815790355358685515578206546821833215907429103474695675663392485415223645371500388621789026343137853026622744881799998738533234152500505075994452916010384924296473792314485199676400312042619311018390010745597693245743996519682211157017225000078018520076909279952748195722352249009245510210083294350604709038217623401235278483873772731431981235331216735074162478419546325344615208289122378046922908509386280752677373364891675275108867186907485731511798719112758973717212220069790268627015397703337623539168573023532778080515008525981753295550807877886672815650966691615839112721698699388759112688648485453452898384500172007531788096127347744030045241675032393038367061707101305504380587173067566833533745378303685599937759086951306218465528579235933917419171205417969987256132453266577397569709321705621938004614828574998937523164351347470736588209810605778865416514732489817870094630138507925592226072971522620388194374843914310594095992584334465657681739689326110459870100372754352511637744161227299994101861956605142159694120635513144859719545286080974868254874524459036260473138064839379734468186624970072155471060193500238648389343756227635012792584941732643662372023278553594194930450011152493701147634634157542640955747394306944563542362081212241176373576970867776359301935638364440288936305078333228036674743943248657079895085250872741832683527199515779265271987637499790762084389463472126203607830817381428047878554978289786227472441770030163255013397053724176828153235161769069219970255699962054642437265357754725102403129943553864594831470194940156026684943031837836936554661866566254708258607489483972825155891603855349506451384744221188275629862063313569213435053541753254622942738570185142216047979181239135818570233638135445357112771171943216604661431015474198215549290475621090189572080606234908802904067854566746372417724868119007420655784822192950106596683535208679087585534490092713251073537813112328600410529188355048282568212439318097857966641441641974384650359754316704183852145907794335773149648457421486085488674529131457458931518483420505854272116027520701053028812182044257185040797177351938264441514303400003896508354760695211261435151449409699151517833258517247989474052420610045984073638435113829829335370285516415328184689878043592175819760111037188260115715212198992803575460838874094737522040639123362898280661873195323552920401422000951548088070610074538656397258970803032798551240570967529948775250348381191484476396069023998008588751011612900600807691194381030260949480659847619690480593217852139982865901636139729473334245297578429975902328892122887617453643431583753143784957460887473734258795875821990193538981422942391794151561315397930251464137986089598876754136943230404870285554197809229580446989901929045589068465978383379944925127160494133779070648657858949675759940506175576329347568082892202911154918648820159214617765449921182725498867656896225170636148321951406030844868842947490817141227669895297665284671870107291933779292824435324313828520635706158076925928260322211940276877904292408365323232151023540753423210947605321017167804788960416851071973969399186187946346189679713546786722440290516444396478293266946358491866150401165503213795823884640354533706750014682450893963508407963388339316440021557629487655451496229849457357045563984582865390103120311995586329789859964274241654564022155269311761821934040528049770013958185699504506269083218442209858065603603966505204050926529449163112247412243985455233459397360215848895956457603560112394722600290911023235818327077603181928957893191200422829722719276801057856446673340203186065797599897673630045155344121222746492117841921042993023304754593408148695733885585311878925724359962470195810494083427130065971636437516574637102498705362916929006099797979820814714713112899508518492003986404614653025099491414340358369556884216151820006672539858532035670787534474101821344997039591787397534962114723677715107506443419320670978481013906119468142996565946949980301501505043949916581936434061754712006023253305100568566199539885210969917968103065156627611400123939441274050406560022170985477796442468587486319694618955103513339164119590397189387610544264230246441278596632014847955273227434092863462009840598245338576386151933644320983391819574962950525271704159411032941605520070797004452742655032910680168291821505488657297908306573320056671104039316642894607397427613272069913773588877646840767260164503796909067376249123181569461325842146511243018088628385018727320829304932053488349080225799962089315382043458746206252362968122407755716676147083325307435180280156466152412335772666545968950153512096407409879933525112423683932555080407795389065135984869314857268748994901408530010625403698440243398573821267762945491927728192707271007595054194545037909180516361580836288870015386724394500702749898432185567647403247143923664843411160620931019601825031780683539857258391335713344930361449170866597972333881453092174031811747752032581674338945826496752752520361126273672109764543134023806587201125134514611723801638359472687522817638356655896188613216729989394014941251035646583363688776090658837696741829191920311945646978094249838609041603309637645292794234193002301740054343225854625094743545517096835436975603565019923851473718492670597233277579791173815247435316334241172984589412910750455504288587776273734066330416039180826874172606596159893360778633070199222318466648889304527152405511746120223016036619219393661579378673696158162597300582128112825576467959494028146674576045577470673902200197698318259700293819541492759081133733236058858777871610067258359623260496001605899148893422047361613271007545230048439431098999163722188623262572247230711979182304944435140335744766397083610698607144570069276396639734920292183462976443818601893766880534512777038481569085406140328036150280386094903353489323035792511739353041584113326547129056739888443593082228303303222116592985419196559797184885423887158089140369301617172570015570614836906812742295502793463522645006869343077482074666368747614762002275018155179697826673741459504387058872387338963291213957303994663054340289132774681687546695021614124655037009126591798302903887348417613972343394556935660083801609435561378553746892071454423377646719631384646526315701017132358397487466544236302779285419045015666457881859979478971251481140502377690261728979301308065657163121212079142907054215088898379545365916435512334174598794809276941751149031174605522455785458135586702153090077031955655899599746805741613338361641691140099233415564386836225866442807940336267010522666936192467472371364090542898520518835100369268187997465647052545068268393626406994422311791299733364106678173591597162898327417728872302052609804248757771006988196240372912716284558358478403404924364878183372432037161878814931836632132424242420147187986601290829544902098739959542872139066776982756308916794217401688235876539750420302448986418896369096316270120557681969929154992775142543788129467665083250351267168466448444547240410124528064217832732227760436916102880783588718437100518084017958014108352816351636038053463076389194761501869867367060501475565451912556348547440616202739383503562785615295889468170169994014332311095287212448270472060546025850066704075791114136827906978686587117792043561148929968719888032590349546258685078645156073721715399533910705457420844700489981128289942160212220926244947274540561035820926425126780398190545265944373751942813217137033612591057551698992847294695342429807232562902588836268426784470298363132949660544162538614748828347981673228810978487694132343671883348297513277555209811183566129984856870217344971594558142051676013631681044749870916364943156667001634124731526314664694470222860280711813992815888751637214266832121415092317205731891117328825980525201560900415547775952404089135009403651970848700749678332743233588694631268790098502313172066141132108607604861957063566245230487204929701679457814582009036192806782139458937433777693126987686811712481640849105253884239333690894635409235802310817255763499799694364597544489485664773280449886762357891730215026987964549842771233602523960136788902639127631673348690099465888102863102237495535995017161877940595427203256807509917230406040592447593475587819231150708603864364001669769358844410773687028457703794092834941402822129586407527063935399304447238508439688527577798355208317581070948268654551492346771164511885672238076006299878184487827005272031293884799820971943202275713635203988800756097935496850722217381909642757568466440784384976235954164378986071667348604995364292157690926961517095282542108602668881287621322828870123941112135608499848560226167435034883052115199522213094722311882454739260808544121534421043454311042835336107232244610950475490308238497623378772397985764670714850727011550335079176889428553256555785689141110539376812300764172733233555555695819795161678765161127158802381737058125843376445496393209033630888423831346474132541575834085328701621478467527366035329814219899900103996516639857816270835896248137581128520502746831434621865421002873579845306419721733111903252007346192981287229517898245111770328323475986403956270619085455073580791658971007776402290351977055165146315695428841424375579757096894223288731250154465913235682234856323088186214869175254442042503115517112520932667209352445385328575930785720519631126771596563353595646066381215699176134271050357968934692560977592291135575500449546809395941988076919375288865024897112468591619511911805736623365074921836732839574906693966899486388125465885588838303308642792235459716140863913280169686706096747793497025136967094921185182680683710393297681827934909048809926852979497855733371545681229119082889999649617367275829677225427182642232866400132724327309242950923056622134697756027497131137749640216045186933589599433451701314743167166992535535262519182296068551102552106617693913058993047044013055539478586631684376918286472343532485938877973370002374344405223057833850423369748670050160028663716354807214257274236347165982592000599527350286342941390667926697237987304373539379577587467043870950735671245544966030978961181945541702455921930096405938055229427692173509881950338542439019622355656650959811895084955834758326794413719433477706441743068760728732386031909376467452918921839273405652449125058695651761156206981250039315388458184406490819305513822068081023933630856535953832850815185286024907380888193971974192664563416144842651154131695628352519591124428382628810103084755454897369025403588236483142440595060433363721723113697973766253778983291481467685475411897102364658779329452455366084629871709766714521539359362956508416867938874745177684647019705601206291119659392716942878200104738422691208420374736338838627479266343817074600861816517701247380026891028324861454672894643770339434204648424196702561879164897251838674622230416516000185643129965411759820850056332395241632046675535001335372968491746764631941349922374424722463302202185954740646378821188234593940899689958667766370114295285312707935566323783256196678213665709220602831025653913540119066214292393816411208069617216043809938799300327913519396160545906725965724244388667309883949480405001995869954087761066913890684279935646950245990878656104815262619488029162203772854404310761915233096761345657898664927602310346708078390992627547645000231115988151525016675637395740190577034126134204163590448083907653748582777525966628543162988331420747782612095040776043338836635802430892448403488354102870614733963283464657835796697459258740113463457623216081042397622251689597347681742851273772134888431264298689167069631623873420014694898521423020835510710710502557188462778564403760534154873713405703530471604771067752932007990830085796335058913648697747150937612256284483514279338752636745707222002567691274834223794366061319862676094406210515237198485974737929740617724333077735380254302218943957667695095667279812485008486264258848457967719356146646462601496495146347149006188672601302167481074660541119266891840637883531105630441708083578019992232956434743032959791358894379380097270442582150692797998883144672532976896720924331096787787043725470404969378268535332779967817629151867127754136572668369349108729256606562281591526335044669497567922949764583960403124782609680807632457291796313570638055301817950615589346192005525020421276892047265235195908441637059762275805273353990572737729245898431134662089469356846280770879593423614342618357397284121665260195438481774502442968737870447818458084566985918167574593630071250992994559021579797126797928681418361794529381147438345911304949490625457775739657448250418936610501567223911406337904426932767178357282347840242922904037674700397134683438554640642707102611753009130847612735756388934449578014367197801389826534243776067204873056592069332816973770772050673214000573675534498089554053868887867159112407602402876493610914648563243513922828961692053847422089604660805903823099659189334258907900622370408006699792029798194409277173502701273368468208673831027079479355302208227752154460927356207151719553874896681908468028606626805266261730739559289324327665608205589264922811457207893258778236808279305050030741774353514258764320918185432669406906760079190821342039636895309452563340221307302098645862976896554724865262428461104736657509041771732052323741407565848993239270868216794264326875694735191217476911115775407999719992668288850793903934061031042132964682504077064770521769095572432685966471769863829141153779769760002581927239446920104966004285085470014809180810817266504567967186688064620584788093007116714190784971339391499399525524545209494650784349719810361428778184033220570694639515476946972767747706424864607939235195654366350830702520798246537427425699694577564626119873862943453280541508276209906622774358444862703767092488431396731265635680597853428581984460900825022815051063672691418876039788319773186265729314218073290550935385624444888087051585120556194413737032854054757221463407137369326552108693222709423907542994089944254445906867574114322524261672343521912782585438845595167978299328323642737457452544546052939896806263513733587214850808820205518659958034081488329701253781235056793050818818568505731233257555542419605427358319447976432499228822660435558523349606680905502905216337784746351934749713022329493965510415987839740167516618593605179338950392466205245511268837311120785257244245799623294450168341713595140252095179264681156829820313618827396426623321676441524695487558164084358212585044247670699693803758573003905790110515414779557179169312729095998221364115981595201458613678920666663532183944579112942949372746424648239215477975615733670895761840575322098504748583570891766352727809495354274482525113739382912378335184147182784881809377625946725543342069023837559765846744498857297100153365702593838609837888370559661656612261881245463878074036437755829259340136451738584462455407649029616220229244791778901424327249245624610572832994427679678314481934670551757083502942567326335264906514141210237861093296718863103717170461762893116167259029067712239858836596414924553081207285708410066076168543516663530341382801133819677912289974126655244951348338934636181282256499053411503179141167093830767768774232569803429140799802919107611396530776180407622194451519402604063470356799353883274378588152011080406490885175270082056238020512864218424823002632432055997998346926232665644701956357300679539057244150398164239082136235132717714586191210328112357269933087662553440894151205179902731473868182626644475280406727464085723801550389418912595893739926501687752743769741533748172422037707128664490771162603154417119414108348606899529507444772203362744266818471196563615713772424615456070479650878312900133434911136292975583609060175949453796861506817908507607566212738100117918293076118629911635574502602021275654360951138569094815424476722607340061037334261273608044855312147578890237559057711317455009411859748652962705885639173897159515988987014175869648654185324863779433780506989345553880505233124949841887573046444733144459850552473986539970734623381939800857730435695476169828265893810030602411218665685980207253371656135335099218859560107881521955992984830737114161764839950330037898824790345410532502054955693588016154598918936886572124748963613671862818854644786179243581710112551851317871774504307353645029761507292301108330802551534951869294849716900991730394769733378956502295614877878048366582834827540230192303690385819788534303828558273006721561304247679650997367389863963084595330994467366005278953510077510623540518095062072959121477879266263385428792589775958630580646504484526239133538342627050430867009467036220406339767252991365187842306583966702262580562122210733541161850293635641616655779237766395860494693244550805903617986442755741294983021046969861644931370103702775084860153961665864512853545304815598296382985981545562592486591863288176301101499737206920153869877418621655782087885028970856782970192695827695239408257958934666666883918358815549069436830703532763207934945109365399450972042836730670351441963155288753214822189325967173707812714051334747386080963694563512019018439160557338408051663829148862479351379403713197966875856259482942074632416148196268288849800968875641317790265769105550802543228031258589984582872083257358894763134926062496271832200731813542439536437705648192953995700144554383910878449144193680471065163474031170374482458505185788180686628844170793566042698003163236349120302919753700996010666193896217318762267071826314852284417279433406818103101838417534997349697901352604608389864938417085293469279158345594247787414758186260672246624811772249856862298974404384392184024560360919123698959782488064463195555559308328167346023120406670072487747599806326845273202557015621687662840583268894930505193900504950495870154003485427760246248588466667342385974454567161141984303835706397426666703855560964523903570201073652328352769206772213666358574608076159948257589026155644286649673725692080468511746267024678766860322879651197857616442650025536622079972039998656146915511996591892609987569195721982755095064759786156264742355786450113897041993509976406676557120850295842115591494729075235534992741008512949193855962594032638202524988224921444475588270029003679518705235762764423558418333071204601246299399154841958135512551467709344714433092476373215011861279838185602557163141744264421039231841248615613047098148024733881256960519677269438321490104652409981501183394145060084222913194160995009964496196330766171680279966145964908485717408237805713129439661036877272697904349031896749323216657233190372154146103647188424635680197125709771242045599277189401630807555791531803886385226329349122868944587124407187398513109807299600005402969139086326671417923649756297192502128839909708484680439071763198298386258976031273818102754934261012824458351039724617260027124726441028393060367775439840384623746557117766042747940447110253227526070881915259623881035944912100259215675509990359849028736639465333622278560198785244807812000092267255630431187021878325473868804409188331048255150339506237035345911575694871584408122253546614612133683291417713871207911325632996961058630638814550382930706507642500409597837720091354284328731106694070419993253056831695331854406218096083461319779933817165917065487955211443993463691039132585349777380538014249409345036276165813689500309512610570841234456296013280703948714675890101664115170393932146989030266726605846735059647527480561780786795393551032684912986766565426312732988529192700824708774002213743115658696907606589908547798087756486559413089027045689772974195596550109221935693238497816225875176465524209255740925717695468860519010003160801289728987052861085422973909396815077500965971737146008611522092622608527082988364373624387798127745117082236808061077077413663347955743533547250663440979289899184082181502006262900581367815452848577595273359535974840872450053882741039998701952126233169862828034388497269141695862950362027229748868984900397414716167457511413346027344974235505878072186655258735064125308324573880356085157662659100847907204770453688975071997435665063066316758761134751644189050994953044117199851499167397662294269445166214080877491355367345306518299977582014657530815794081675035725631308268975276869491317516603141962741227162095782997451259507368949976478651309830445539167618793163664040969778731171580041226555288637091406258178846923903643987679438994419596332277331510624171111117589582042138226824715855862315936615312894151062417111175895820421382268247158558623159366153128941510624171111758958204213822682471585586231593661531289432191654892821195976227665814359674319046931897070954625498480234955018692311293664029290996670086387840042890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855157928164449213543001525299613772360107729210859513145995246165942271641574763236570257188061170634876292627323600831252569965434321893745077967445291542789471272289470446481314744124221166590081005721723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055050404705924105288357400656484547245607487562476347259620195541630808699130865678696787553970081279117686691949683813515098808520958276792948785481815843390389576480289850925724608625300614888628650306571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677677518111958796316841853639123374976612377125870557536771425535452801023619128824660846856736084934133311957993354042333577358896378053183909344428049227035216223087149443606730042311797968286390517195157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464474369388729088789425992271475632620666673290809469862929534311107624328164327360863086413386486466836833403411741724336137908604788056800459754328933272140608034447503284344114611719096701762539842822668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490946103080608952105623723373395529906485456547771113235115058351872397486970763522933435497256100301121589126783284926464529265711611514653003449614413040707869371417923311666247696408763548739901747753710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798067145279663745899421031188154745480752465185317021824996705820092817034714330564906110302966007788621864395862030912621953745931915501116913315595473394117208613535884052045859273604632198270224071542061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606842134010586681368770086255041066965536224307609748692066674406842755594708259403759545439328126461519786010940922100394662393810002488578082153053964123626303568044502330247943343213441880843146928161839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333631844676895075299258677730897811322055452689323411963774158070429791729618493376516693756215146488138417266217153236227108027841813774596097865572452165349267876088009188070751445179559189320746484076199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860959163929805153754153056010835414124426635088411708895426440977027422823212873781858481377393550974933555114062446643689420453552379302295569902568889247247648285698792777177043958436924724006222094132555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656236536271790517082015310026735395882470223528163997240153464122032025797780827313551205019368428155208185549975149151101699141271160844540090762083005141646188255296346203608737167901905825189468389540468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151241339403032771295325310711861748025772234948929252198097430895212231461957666207592355635972669076798666123329105952796101834310690770203222871625208361195649481175299713274973059783552852128578547844286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040921361522517503364759125529933623450874620625221161521345334640590731527324079559395600327487909738694260663614314509347957936425282076057673668224556127797885798509050746557599952332576801978516473222357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445710748443438092473558324059572792813700931794958428020067816670302348301074054742192686054019788027670617733116985490100532526580700391933221832551762219500495602329543188072487098922493307375904553488785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696712243812173079896938312170420491124145158622120573819892602813253361650633270961268112735445764503438627183739199389437969585611671266838339375985582646154279781331791205782912378998922762772561595125842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804814970795142882874275665707581482605482420221061203768834107343704461695313565847315846499523328897408613892603743654557103135730978703051579767418648833308333468306177619964953332343405916867838864524704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553099902283601182556875723878812585829342112120643535136234233354548000376373539228441337466447546489972715324870623432473939494074367849041727254265742675895182796020334362260618434065482929109694732775810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758032127460311284924887146975923896612165410078451665187599926607299020458345627963420439715652445650039332697584161527418689052810339622772868014570270031896278770775137289513749285389160134511814790912124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310656806715935871203992140966633225119104450832165354362199377758584328122723097176497270028253352023603346945160822872847275228184687773750722988339131876836902638244934888564346061470214101593355370833759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123684275563739778101515027771884673967343974182564271586530092136733880079123112661604189172284689063826787172246977341470030337709486294246783622917217912573978588957230493800358591236399689631216138583104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421345106468294189135762409949557718833764748449361489033733873640844876651285799060056918035580217574328223720982964054139849176861425411357801923284322356622012533756997103821037145053611352158087544325887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395878299381552734158028806222896032274479197315134195894883841952929056752913582847028899729046824217811588125445002757734897566106936993830600284424883040855689756491161569382878286204590171592066183555970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213701331543690047347580052669731636628087675468684315441200544518109639633177996327073327007842426159432871983671001853052211000499358589809347272782613245222554744663365234690260799520188298486579293564334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897690479630772584358960972355626885277176950957548546741563189365444345268252226873316585833671741045351860168973900370511403872160749256572866941446343428193422010787994447931528908070441678372085914038078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067972558836997229770397817477865544513393695280467309791987546440540501535598421490176493970899336823681797861826371377477618992421396475468152180235657008465062462125800933823937589398535255324737030726876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273075462113797425254478573065620616232758456633687160410545655582196322844425800161309229256116952170585617429297116993729879855268657367981622307685949173321863761507735171533780533639947253173790467038575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686487347462195353899780087542415058674978015601593113654055207095080352550048121231237718152107298003231017591837862540565962539948544710762023852340834150142189018389630276690864606288997315830500060541661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984709134048477603725331648663327399774574170787058858498903647825050060756527667766673018142798346299786311547247190463813082702695027155243458377713288884011332285612327642475805491414533400430735136820016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261603627839124114726820908569052683742250689109919376772207776873712677015290712968226158437571496653462961540352898069849819902381588132490072828420316645458645186778718177177277928321252696832297664124549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119607926902811622936704343711583719538657786003419467130966534425355235613503926374333559024877800931675855665020261424517552023105180379792416018681653272134907447418792630463793570195725465687076964902562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584311281806211645338346145649986102799088783159992332083497034990096448289736199726084130305016138343757350335026967919910039457648503139889980405347620797995103556280094271198077141386253746894200671129290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727356629454075207868377482599376950854745853778544015186687032127032510837885755352532742246745616553017529469704928603493523766319377581531269112157125054564936628404613157549323436161143868941551917955211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589071831729289129234577442844192725052768475503870270632829799758538825993879067899636766347263679970911370005004519151507050208574470532031134283753039645068373494746515254316164069588396569604776248100769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454994540500897494312370266916002277962151601644314463215567465798696913430209173753793295373631029348259418485153134577006494373909764208589573177423145767288296790675029922315257328698330263412335263163490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628425108866896847107872600167332422156251242927213080559326221307214093686435499689878743035267688492212318344924190763747157474462521597457646635724275279522289150406427767865661151919331918178305671646530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245451974709306142275315129844530918275771513611816730358093214603225847235281182550470606215426224324551446896457269382316655525095989504109342537430859997971370042588583403044972671096299697632336077767437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603659224357676276234466653958979646879055292390270201075721891913821483162685249049584867543293124182641346627228209365327728397667557267289731938129341943057239620723292007186386746670306364601331111164254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220741884903016500503853447597101830167378268194361241656963925229474103574318517658365603412327643390095651186326079173389912627720721351617522225524182961243396282518232869686254441186238123306403453315560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426702627611859764913247682952727805703223834351506367217706637637402490304659096285960271979725537800141820199810181398125950423486624834404392113648723666292020639396288453144837489010260840361484073120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708586495987795324215832821841093916405283567907068642107803466075719798914815540054200510730096279623472724997011221778165679844919433222633415033856753082446773410455032742856115745538742140007192843017744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555247103681267051382467521172005284942952197488628489852778783562106004878127114406349908816459244518980104429357083290472201607269660461984260772247831071714390934928973795075056471053802916187491886994635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979448080471233882744403505346799952913354609413927284465139119083607622657983981564246382915999044162845276818935327913567474032273515068909877547218155749984883466946222711943435139572756093318776721574285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493572940763592895618281290011097847243283038465197437585736859123098178360303140528230081302663133041399253399217941576479853470817863611377200140857083863943770352918349740374183511622370040173188269393263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496121216946992544239867472620600571311538783883388307801653788387752115931194493595694917939405788488606239594441849728928723084955792607211329771213723886969863602368291622254647108806210944791323990154066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427353358562327918535797792266270380244569682968625491187486853054978579659891848621862374855639353215630489928348655615415406495122104661037654818060250676549134033273862941691177626381383478511836410569996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531935561300052814359945606126160832235899032489565956752757698532457440356076128860796818576197717887655619852375274472235992720206023891671879081470886706830279398976837802333757968374847167920420561188461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081494375469714291952903101938943563718359374914830742304493402959628111665238995811060009386222162265525297661065074527135894973344740728167392634862226297134715553293624445799465082319790876907445852537034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804306750603068626953212452290166750385631858585931743776949415741081057274944438400139915229529240168066745842469660556910769759698731095078451825185768980009394286371219101669807885171057114466950703127370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704416192657211004234584808532239809308197012158641732913053258987171588551684206065034055699685937159156219395459555855700934771168117983599584279819556435636530938905094196464188924341766121771175457371442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068752089651754728644348902015018720183661384172807988272958201897748612633836037110941408680441463818997551441905115201402418762897868823386652887495647401107245990553799217515564781980918495587675277828080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239662066592108127818321912746808145303142177986735336848938082668189691299983519942232127263877159757642852132151588371714648542881242312246840283905615779681998978556251027107062837939943190735797975362287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928158069315905715237948025661912687088764750695085011137025788023338180190302100297597559268182163595350706418857190059497444679741742025213094724619195027721323724702570296163168146476218464364465179953587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619542046154699022268434746176771131973748660008793544360730243366328086536847335066870740890018470306769821475313373154286221515513181409541497972467067634369769645830928679521201994140665404326668344081968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269421418842594286621469527688063208257196486713422469852641941902223624118633913028417184472482275572337996970748200243758037179218073420208053693574061876566416960773912090981349470212072519721369964234420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085823970994657027536675981330477750505053663457471551655837277310078578178715303161327684892535760784621147886035180402976569605848671756763665930874801609992795078717891310420384947894328608479705150428332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751488489933778786785978526528057054866121737921355212470239532560819067885280383242296807554471743774895014302315014696122549489533836275694486930467419802292255506508742977275807609510687982710919383714229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848289777196750543920577166893855239773609258209069343057898674235729531205148509038465249314006899617373173581622229445541614935787147750627037619249803638440016091361171372955766180892638646794027936567038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400330359036096054800471884730467828680774098983222526245316803203408443510937431949938029908124179211089542392709654258219584858667992411578844781521955749832225833567422679896009803200935486510854946767671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199958540869747731601750539025306490362044945847644088204005386057152518221779351801941471166008653294828106002191594469278346037982926881867778488378271314816066812848087479043023420037713089646478178559946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995333756672899766025424659795196326090274261515748186527819297798368110133133965162579331841940702696498895138692396126127536959206022969008742083472084083318841582683801938335897322433513641224432117497940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261142327597289482414188702595745493425472274698997687716231609932288504202807083810081409188735263331835842074074844657339783842980534710600237421998721176268333490920907386533795907492808928303010720755047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937906163784820116979627072127035848047948858065830896323128867340296384824112876595218536241125696974919905747828032629986123172479305032363770584569878577453161038667067555844068240891051181842902580329851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607999322148392715632124999083709893094632955985992872843352125242743349437902382494944578516493612703264233909454480862002835352626175298183552529788046502813539911284716128115341446038970316546773952587653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383159642062327307148371669179896744454184189037251127283530059298273937473757109927765235637036064734872478483968420374230975899887438787654284159356597358834506093612992449258746769154280459813281582587299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642377154495413717740799517750146669546557410080155793417959830131871546171383822033328726313699780809375628169857535292539023656811435865539828428324170005164199005176438351200575693343042180293152368541142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709417676045222513492987299743533382062762240633100488377452738118872258181998221942829367666600004037991487001856867455441231957351871237930599514821595486770105404782025853908333564061826222520802864866680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800155572089623840364771321429669219347242079872962986167579674608295971274857067903467039157865858111273825743251903978299544576743057529928302863418624254502249624197916398273490435941139589840434895757833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846847563664249476708485430735413284036163491347107446832985898095111020124254488464307122717488658696436722375125740766380757796859385182321580379013885132456704225278538766101351956828652339460402003567338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921630261483151823469420962791154941719466072066552844004435657532664143893427722090557518423691208034737988670796922839869375088816146073838246420008153936740018862573073695349973083672528101494304364563497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467250195918371787001546471943774402458796441934330527377861745024524970714990700051872692928345871786309174843878550639754778139797614710297480525893069221666222523537344901135398626602814192647629370976801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908206636365403568683324455662009516046337522568825585458292001930638153387365651794574370258875626473210773227646623152269937958253816250741193599257543470320751896392792921623091299025904455121720931896617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858857241665126195900032922440472840896196026492377307279303286983507199509173362220690426621137935737878963398219271111792437518683817576213472922730484110905289312739756654644015991089205635953955062268490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173552405216715566604133347587598792044559217567756328376722769011541649211224642236039540336845501134265424744898954599679203644242966524827350687996495015740462148251111674016381288237054926766797280057463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864000155847579128464012873995097762977082622634588250520781834576050530815712768164616012674561513103910717697384557873224133003000553471951166901258113520801563037304690809309792735365856491357471135090441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601154503596771014005799333688900402207538482513993086371634336600792371240645761765003641061220543568868817740625305700602301898291109153407117751712442370364363715890220116231710263565013024399121540427012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962040736111634720258986246474408196120403368752089701088063354284436925218017425121196785699110583349449991683094494698470780636754666776782538372304052848929117305480298931061328228524301397442127840108229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636302403654187824457074024589488060507416839071505803242418375586267960448940311842071561842663899300596835196088099155005408191160942615617799649455573893623350956021693845302940741535422017008850593410802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765157043277319218502844881119332011035710571944438712183523225548677264408667340454413536740399010464179288114132773295705233233998780091602670028929046700345506321135518225964545636558027046215314706032147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316003637213513550655568116276716483228796239003714331634809586892438471169048307896510059110496501599283143831201893252516676895589731051802070915612821279478576823150309965487013780142034235086218894451130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264548028499985675549452694687032750378394003665144268568208130902094905789962210081407736696556627978958759938160373929408189832602311979060514597803844941218550734723444046413633317148297819766986696551400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806272825811245559158601501843909040986418097171007546188477393491127357112710753309507903619794617087334466480524178880606773110645588414287431205536864507541312378920501641824559852917028552982349175681519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849002672215492888861292502885281352717378031820762808665819870213391861211336024618736264912859838570424605478859944208240180919736271175154047465634118048628864398751105260186007632086640320800588098124668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242730233599895133833106908036791228975922320900535339836105280848797434705051051242979946969587732900812070797287965358392324265767339214438047036170652959567299323441686930920186625715820350459222746011334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066960713544777204124017138715254147871337456602291427453682810092920558890079508483723267871865955621283765493043122746445977381115639667409274991990309678315704437927396416667510978926409311746824187884653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944042879583571003684509070345801908749999309273423323790664741074628981171010402778833821450983160613718505842790389539496134598694553433217338838044229221868482471011714851583471060997578697619681601243733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669914250974416710891804427926385025576622062566434705688881209134312965478161984539675154821081024416062444931858735121428601085815587151941939765526106247809254081424759646627019194378550718698349687692657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420054826851371916276898252726600077033683592676892711746614588644325629544170512168608373571659761027823884860670144632963682136373033174648717632014278800674249348568445726886782552555092500615469758288549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122311632876026457848920881444254178235178772946368491686378710335598802935287975131660096503450213500878614816527569342549157582544785878977900421015928011354809715815493253864902115138985775663927058200478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425568522216705720637316682093224155465652870620820268533260086658005839660906950497030225453493694184347991814854031752161531889360169898297123827273296188151354041870492734852626566640813648637887168029974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655905259414678341230133648812086451317814505464179416456723857750904521770549975833236091618246866373119959742563739243193683606633468788836648939977087099239751769429327043157163405058351989947721259861246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022335739830396642856599234623943430754355766148585186128446617314397997597768447092979277382764709356279494509375749758094022971955437014385922121605808100423974385330454346711914387122662709140126153844627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087714962816078738336233555978837136080966631521893228751052274037101841254829712856895416419492794385063945483861715452863298700743447464614650341446025619364938925571934232096238572840936220720551764698253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392515184502772448449537680476388640190634872967747990212485612731663998442736186230885517318239967881715818320630969964851472957372369464794425482501448372786430354266996443153981527716867984468577777317672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599833472410418542027208513605430735748762273840792001676346615109061471910813300876924398905054283828587174596002008845764482519031375548086017940341094418988372652319407183137053799835234437595489813215342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615794455908736627890914427598452297630543934086667826431401637571705618813450653637288873684577300189754353864153639381737629018229633304944189194065973057538512133986275646249847032791841511149121135250104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627192108247640392720608888626285258851992830133305890576527282957142619497916499589436317732474958095984149163996087240559405897409518518453701084239110782354479538977220797522617599737993180176602584167834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503592757047442658967956619338287688474667387627035779875559654940146628998920998697164854072303398883936761101330378404511307837997043311605332621995442577030710396843975279691973081280251126223600777540005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949297382686502274528229948457746734337867550280099756051009152886664658790262577689571241879315839487297388771483538424812931191683160601354302997848368635277312029030297107783027747389581346519427561606674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674391232241525774192907822570914140181569572845738336229188507948683294933053359319357209167636459558136799238696355674929865113248271394607316285501241323117372648773982965149234267413224728863284602104136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790173615156177315157500598839964014188049730699755066910129240753037495815578462768311483735161008264210568687863568408589201192682524370390352517666900923840826467526170926026971040704714815310205739799768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603482649856938263973605905623213929485507427648532942671058969945892642144119600084535333114504068653731319571484348541504151723470687159665889346879477616050652520532551887794276200067792917428629514803639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151851119113468473236553824853198785818181450105386941315804289410531085026258281571231111455512388549044534798670025707762174138029189276234523893914028052930968645560208707475029630568566687239774998591135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982430392706310460167855928753060178702221330681129914256487266497168032854943908954011598214937701703276762092987636152947610229638640039099466517428605271606511721401325095927055929483973612998179810256713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693830142722291579435039799177801649052827713029562457091027849444590050250012647562325140161203982032550275269695196707423516842119109820901473455345247385160545020344886526119484579467391032494601754606594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298605826727776084199746970641965902995956295605560002217637882818096465842429443116043410154032416183711241183341336908604073818218678592966006015260979204302690514322256814365746965542007161049260710551621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384385999886123275152903529870349532107528969061140401659802188280376805348714902083087191780477531360858414106596751960432401798589153532443423362991003390367726189914046681027614857872154303275752435932050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519912145668150684357307587654127131665423566812227372223338758776739362287460341063681565186649322813423042420400173053913958045034059680448257513405554904641633578438160588686022799179151567769918483857458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819034488781068280495959107943088810046956183587209343232330440969761237719689629821199168787098339611345262017695940034586738339782341473219138249974991406589677344743402835803153747984899676192496998518224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347894591616798123236057496837482343890555964335042927547726071932198308253807155388521773092429941314419026355802110535798866536264151014646071198559829289549075514813694409360717649426291034038171821614396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958654856178161460643447651930287173430092180010058739548345440376276460138242763405329465580888477374668362561690834309727006997481782424574194262607770979891422900350084332119239773590955945746815664694781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381314813176627603231988804979216779611049102388322750639647100769652474414609822625944767297584481013880841014521593298873538518073069810094601261678689308602437849860720828026692445109815391695973601821328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809980965719482859198767241455917159595575000602439147346499990949622807320890185317741662157073338928388639164413759397417797996190645277409657976928253653487828864697225365575452522803168847103926942994401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574125583553974077373341601561144528150171617511799963994061191100863047047957134095315827911496975506142525966187901940474528757334388929908002976987789308698733990273247229361876519329728094639215880105812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451241281129400207911460827424310952033600285057851031781296901119673208609949003674260657883323675998903174678418827376211282261504373578261282392358326023506215025388120503808761075779234110200663883596461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437332224972089532223176991483092291852524674905187716587192833914512722243910768803814676477682560519916242899466641586857003358971005817274611700131317272015264539575067017238873314438527194969975372458504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895901298479037010123634777326720390810711639303289268969858980276042853098125791957324080531453599950680281647637678616204990872205057179263264470138021032744757850959815376927943735399559906920110868457276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761161261939179889891414720360559936908838930580535936933911450316665837679068253381015494633685052702160528658989694225709635345492408795324498345015230231036833493083408235168291518964166715750476290195346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881046973124954534545785626432924575397544363110660436528940344384293413102992185638619690395362293619010163993528535010572993277183944687864902771924119694776679674321691661740183719065604639000765211961148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719516665753230926495139421142554045115377864569662346800500105576656862225655975320006948536438622303798485693682238749031954900491665783397436698609183391998723719472588452887254012846450566305472362710992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196907912412868049505017744535830567404267328578975726402516811291440172893889390600786220339806661965078580853482490794371510593186923206404967386563531281304079107222213576654821878051985853001988320719460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782595541641910011069844160611193613415728438557376822437027368021054904985965165829729445551918241516040655118397072027202084640204393072986300139055434860805727208711812587793844984904370529210374970100166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020578895049478115887563990450268575505617416055899462503460092102109352130947675934350822422873652738883742321134710601092049395617317488537802273146628841603886788153423753915600377407866832869398483480806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975482674455197750593665932950078695139834792987338878101779456081754473813559180829981249823150037350662654337764521831661729592356655050362988711935601204167938372520077159314190351927245801694493938939688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208433019621579008529471279823397076704667834310190431379390956741849317948755991990551409619689392255733193871822401654043894242976165912825960645565767896269500675457661057497034947209854964172219226415181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736561784872448961557321648257454753816143467084018257113637533942016840051144296003030823242762724402493439561055939330737827909395440108058510853811441266551615428095286811705096078289107899719529989342167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753678298686927280589881500482306979073492161899553670790703347937543360494530720796487701633503866124771679889404617208901243370958171600709412249362154964957549239133890521379284813256006540708721929520411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944083716975126383772221899903516608185037840103696419148911071627920249788407850357701405616347874226400006355817468995774598161717654247358213363439055746336700418263131436114181603329667629676001679942055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568046454636658820270576326491829158713636046873638450544974888393625563446902584799733972437826866792004894254402223869489172004665582573288023324994353981089464662938621067826158527899573711364825491949666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315030732364815754371927707826788849883018486465398211832288477459906823397462156125853826623722831969860252043378627735575155507201016059787121746506973699977488505823686182397405962823899061718458168239669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781545471333613951369357897079038129100817208674970566963962750528372743979162876486455768107697904387778853689843730036014312948664926231077274903705956214258751429326687828478807876284781862459567816866258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722416922190639131378281162017878760864388860506587083240869863946519451168883795277463535977800599642251188127560160179159022475213976910679863209283384060086102184671398118661205103771796785864715889119197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677523822065546145593974897869216323215553119290602588527663367002810850040367760202462557785265266977034006959215776156476425963474335647160218551276752648922167599801547259118353017790110214847022673250795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701668970466249702173347336807947732108619344342264216085801303502463711108941668102650367375214032824342933691937372637891689833875137555791026545295231372878571956727250352327250114908852401112212315223953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200441387083045411777990828298523910316521755322173908386337724070260851601865097547228451197539120397627596019905383829494982268416069423707468528511859666876879722986460275718450299124692064899469489774830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322067280529532217757679973297500007720903025851044324639934067451094331243587323598628587936132286240082781507656081553948158074626359271910622864529121954899127388993476898406306935015305808395651394402432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764326736974593593810668775110459390561587596349661795677581631290731439520021171624160236387809632990133247037859386552914051894854020217477434941180746937803653261313994620894555749060397697094955008026496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553483412729155634507839290955496217637809414476039267620299120979785261012616158712707535586788607013322937414800980534901978765117235013926032028283193813753046174386185487073152287896043801626021519321727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349818767309536656154094018181213814515718934852114137632397475912493597045511811135126263852182268414222905761672336221741638596959428555841526603258173569687347871528253854686617083171567897986920796685793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359840877268138815763164529904003317006143551587132104849086040863099554582932498512694150896588966201964410303356985757879719137187474794198902398557644542753175912782182067919400959794488980216551994749107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764440157702637349736079804389437323371035779462949595697528642416907667162597431170280130433527213920989591016293150314406167603304487131088893032925209532460424387158071374113333496752189467842043520120051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574763651474626863042160036737390572809741518026332536477880629778365031696247887663049465890413981453683496483767637972403013154653988084173969361425867179381914048143126221184901047710700206513634019865582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394547864261178425146172560272380476328699796611311614717459878855420378960304851193694719210877495085538628995850377779904479879768191744941429000980359750244314457216387987325933347484330457394081255124793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651409861600790510074644557432653939453916473024455409044935918995009300701806172333716798202231732619548655260653765962406939391279640892608416114880330646499405407464597314824039656863432159312994393707782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127498699659383318771950793697308356943672885650611025094535204704190595424682019898279610699732262136628167363122989056247377762923755761011654006559385237273915066906457679463920589716522864977434502284140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779236807772363376099963345491422951402634074069500035719201635541039052403529072732698238914645854980607121971683395177468457273270578300165043438522673289066041888411382508341361379961981016970527367724719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548576844040079645408653431178446986669963155071535534675331827894217490529540847002365155937191300707653206101646242846057544591362740802494426430247420387231136814035011649167388033979628128823708626314777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616510258088180164460499940588489085235408615183894043607193406712923672606944806459997807772492209029038624407445869701420590221988806846096515170948230600096465701436440766806637279687569407135156782799064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689575125205427583408433765438773575581133233224458741691304462333288530403416818532765079629533256719680304662622269392924233817614740621769438130181644683625060288786882638848622844076864987050543822925806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515548481080757453534756650691089989025790067471165361044635484862584532960111660552481236658133484434023033838766947308531146822952900928520339707297247845950326397304709692877275566741078792127067696914719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995067948381046672169613166745564983864106655385195711477979897804053131531304695355956012501223073013512282359030897413153187246065767650692731207540535622805396956670940455433100169920093401603015109670070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016695558952554622067920742767776923081152264751106824433913416500252404069330258598945633927036419440753978120082182135850455473521574804387050965377446147811346871656555888351972792131850455068355394307605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752165986849343242206433312659157488729539953386225175380682153450511244744094691104511632399585150575512312582940123674771515790267854663437832997684375181671324663954643020788768384514133131120043836272094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239536576587105078807396708810976691210513367202108849092498348141080851471979311983256014913407118169265377176694886325677385081130992939242797311269677458349060895901467971121975453286879491003849694060700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239008550333847929662370767233463629037599500875430750257963974150203988495903758576829100173441003016390174848563306422011752017788579842745795912502607278147035731188031082540722337056184039814643086670132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342440210244964263928735739824038105842003734586953107032797985022930946626806901792724178709806252382975492674271740109313390844006031771503988397175651715664250661408635197545734597473285460352577081637908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294787017236599579112547404902304217356116439548935384403866196678322738363099111005285837078249625061455188256938516357639930307559070740917791768960090942166268639945930987166518752762806121677655991791029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293973815659351333607061912518396634898789049470872644134458081024139652538971443908917775225241178022016887498243016237329016542389588802987575006283104455394872770124930831524949797471267648110417923690325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533754265145417078972656421694991277672019356518712974238974200774227060081833146868926602940980858395534529813264337429483971371578266348938881758528599643215246849202217050423643862971531703786120257828547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906998622320548802641853248629251096168796598076953897654536145457445540016522391424814892972938142790625588597012238728348902405738552464234439119934502720657717152104991279089921169924264097040941620723180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001389238727215278612420381681489646782141666758766918285458524439413730677146403734330940413644769293578325756754722460492377254530663122614055017563811599943197027883656146997453561866251992177475878966802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081539878655838537811570342660344304822550131978660476762711151914132960639612967956751485560535966427176487338775484216680732679344682737453566108015086057433991986215295787876111855924472352713169009007276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559191694639295796753009154987109014103988738347924936289310579711504620617690105468930136691256496076455191053362731791560064596482747654805723188947139841098601302864866561626662957625009817839445743520393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832159932255622579133690177937093754250417825765707059622397054241206716418742464155756617817518321100918462648717765091190334572307787317880484937765442539452471494240914793370735134878763145769851002496749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494732214389320523373497582947729369785424473319216585338317555224946584875939746120313681769249128790055178403707516106150863284334456738495665891503494240520078974138322121492467179808528463428682044702757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124051619199605965139007790963429358311903430562435671573409505616362874827820587615489988136228400631951119520178080967490670497658942820319324591324255961711416431669441618015524066188633117399506879643778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428304112686525498680326457932318450295097745201389805535819414101913198483386798555481994017166158488361181485049186467563917728633058374665125190995176278621822177837392160428438123658550359877683167988769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945119773456856654467428389581911035087502447542075011754726557934304064164481640001854896172357369876500209146312440068050665618211320293368595675472266646602468685420080392607405662982996622827886673306450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652563135377625483089594842053609872295558275245931500943341900907815467112257271079852122273755615832610302392053167927886141183298226459755765340454234610490295722395875331195796195022894605030835697403198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050068936885092159609249345461701869664702253261938819301682122648436877795239618136877735017839876014287972084836641077328764288692535871469783972618881033845033371181517114847157535728291113771363131977821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276072417108242779772273273590062666386669601352230256085097299631537578243379250716217207440633313796387517144392662381145539390043886785184247175875379030663666093268883193121032320723514090703360541657508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593369968121099035159101642125607110757656344306351170567316743528958194754952161142519311002589041345289007507758318181226707486169370511374740514479454619795301747600610679345348377394055213592998818346545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503123364935533063590832243916668061210292859293099627572450312336493553306359083224391666806121029285929309962757245031274894390964296332087307746715007773300833934315885963701244337695776945482607716097670861548166679423891035060904614604413039687136894886799835087804068064381621772406347917811916200629577770139937093439443217249722182319521253794132602753367456855860884410590851123027060655379689486119033343118293391087619618565414570968938743695706123428019773355738962407681631584433584877073360720706401263672416841255098300951381957688615124648660191044190004053873335671201528782626114531444001949050115641718014623553003346080217675891561479950371467332745815027281127211826466922555444131883985950933419623985945561184947674786532207149201414043587348389120710525816364490692039881387927289928539884606794699973386287843222510037432806665926419930608469361675677484717995553822497857465567250556748949309600038811165025990005993740173866604706262123885284817010946710138768352200253700490944667104755790008627486998607580100559897397752748532074183466193993789997610753993025114426156892048551972307840758227848383123586478168286347239705070337701551080372168639415071758912025235200309364453816100089088130502039169341159108232754929969978413544833229671875424182246552003796227904310697702416765482939497616404950028309838939426022430461690484355804747722403871786693491539288578630229892431436841730470301570109023060675037024472003326413487285601003219723656520159094929341482621229998231733207306487960120379727647315563630376092938373423468209183320342088037583199689240992749363529073564984723927517964835646038113180744527184622345859794497228431805274062500057844200483005238238751084855426648661840587880464120681035919898396098727131150641081845490455579927609435421840067176453548615105282475682962685981806029377282987924425294387085412073102529404983278917912774900315217552148825260347141601819538454176711806252183687581941540703676815615766181720477998692331464033613803346520401842615803902641825361857224684486061288736869992720274162680637666211206929034619695458113643447415987140189211660466226582661590542069763943593123662045528756034216500347360119434225614914032015794171185171542756396517256864538467095452483713059489858255974527756437837209390373760644875780538089666661399183963055434635153154818588677926291272536342628898525685446469814497461892414958636636719814006506858886086022426733798812768796940649702991545245272132575428195324917311506620858665207749095296510075340404922735654828295702569062935888169041465106971777242095544613025854381786304850806058990637380905430695026138424222705375354598590993266967332165151948172534532747333602744725852724539478578704905484758633115718366332359132347588259340641521039072871936326796375928473313161233978154985650774595742630192501361344218177865732684594980392574196969999876459824956709409559549064514319299753296990292901811334684918939731673374047376102153497902801317223379127998639147101057364580882496403779366914426022522432918220359694796522963241504625930376366432840865616023121610990271779794048244237437724217545327436903074926261725888065223326141060338165320932320266991087084758681985639904985750117619963690596992541043687532918190720041575982623454667270157369711333570414032093793451266060707990655868796161579984934109540903212436544310873161586375727374817450178665573793984866922911759920434224760064859760054978280629418739147496645660197689263616598289656557445804099142689094724970673522047011619153600945273632530666440201002320187322781976148686634898913273470144482032429311784100915283333037691119705125251189029708294297488398137149977805278164934370560432600535269810691898658868981610889926992043454781553574046529382255475792396512578169849867342182185312407343115296082141120919999406160101582191273730165017695811861903668977927569046785710181059393731438811929147494435652218962602863258663651901745365921218638768107774209158364690909165182739807531030664998062448492774756188452973294727139148997268407785897786865604872330575242285717247344366674181812327084159179147861681978003287524219464801193159379351523941740904190984125780990903889407794204672704915345000248604274553073068364722207589308219944523472145218428256209291437681438780213969363997860221263221098220773571441294126406537652642854348297069365511680672830614815535006779927342874671740836666020537292204848408702523012585717914569665795239635968627064590372072680587943981340066767014117658125223348104838686771740587973689615599621784654973073934095466043145860154049561577645616734472126427468746140830206387935980428496622472232550466095231768172458636261128483387407650758288956774589588736109519742072321262333556151933824717602181868389530067975021207690438838128356258145012500711902715651443462706481495059019699613904056079067372607241129244719947702838483531863329817619994731283314491596877750429032797703476193806295512384013842291003576769296985959054439828926666087801034405967055905207668370210159521951394544773118741072352794560844354946676079288268193567646665891613621404247856427926815625448506316685268327524656002747765241279427053419348280546267028159924539124873937558094012591977834653365573562593766808769975257460270216696492529983775381969384625470851886151047522647513648918833573818916971219583268100419576537702119211827256650889668246750486669965988504204119161533208988567238092601814281176234479558294288085813698860737275497491213068743742194301486676625969169519536885691174938231969755955794021793887372251515997140544728970839551036548666281965036848684661039274556841436359017774403875651208077145636487772844383315635724968367563148103943896809211928233741450761863056577773779414533302578207887933713552328193066778103474487881453302276711598246301467739131806469901714532318195729640171382993445866528104239029204404205030108503722889707226673204164075838352116255472935420977067186526207629467204363364327350566320411252128722589414997628046891485550759736146505117641257930283697453203604650615692381197213251056180613452134381768173276284141810216441341702491755843656811454797775195828066284424975037917477236204204245057363060911154840242699564336003530143666597511828032803953421054049191030567314210754130235793487723423907395938930043689132814854688219705348268064061334476035746590906564609800971717699575204375563545216850442243908278083480721568003121380513744755738663358066128982569525355723266307395195406369794691392739195092970992913488014867607271497851682702690507107678965765304404633626268887226274293120287517384975542143150499890745646121569554253570152014746265873588291544869367168210972638770366929876270333269267640511235659178773632477046116118752837864088038280136349041450851318295587380336571592375540437403660094312662493744735018369408835012318057025510894184693666883038062360436168998681815046281454399370843946723795281953032886060996315478054110539798317391048191798793376309918240071636953592567835866999085256828346179992044849215828682554266066694806590558837547674778900630307639773201191626441931231373328223641811934383050586585544982998689911466813117119421891601793736025759632185321048687499204734702994267871276133342376683428225657565015748972028034318032062448495723097390057150931453891843449438283973734515799805156259164322627014186206236944759302141050850281203604910993905368478056021662704636855257274132906042289956351025228475190703082532738499555533044957803309025927531635221809889882629115980337112570172176766904545680649223051574746891557171017567240354189350611288873024043144319869586521866760733038549036027746096354501952529653407030159703240985115025293058865671901125083284714968064894381300783718623924468179021621735691228872394802164846473775176818942122207103565559650797948449900827193552814791434040371387172081760903198856458746108109910593691774379471287936895032477418648580648196799561464367082487089936839513150720305653030078868598203607206699167376164147566542877193535910445211691676928163963645629783407370647882740618340543570774121613832028737879037858589327455361495644612550505547826687454455090886889469271859889494234495074838218501843413032362004668070019175045926284083850536431267686980340268115807098103458986041308417355099569441517991754323348063307326133913997978800038210913276601454961115704285802816067516233813538630524295638330950320192878164132492230047611795358249560591453000424644788062130246897865596926292576357402879940135692116755390400269966455602568297236950495909960271709738166616867800483272929905942810296816157469630606061010622671702125396674795138938137485389535175783294513642600693613777744000566993017402011366773178770446945060129226074969110615762076378933450413733651195600329078352359646532657474974352867211162980756758510838501606998969358671522596463057009139087628741649254170816909684730954886023329828880010165296280897698772319690742102700934888093445551218818833651978431853559606747635072216117872873563946565543427614068559412425912141707811630308010192587621993809895894305093968251827713033033492664885329561879526644631906349389649279747796305818237760658035402279669108180932267251426142876850855023403639597056214125151376204672244428979978554541319013720560029456706340382429917807512572448446357715258934722336845268000504905794076592611834046276469983532198933127117327105112938774627200813172632086712472478310369532505711668466933919993838341653013309247729429358470743882634240070132171320972827494796116356678261507156628250212520627638975156658513406045529010926112638166224236689927106490418862700144211287359239399825005658006432506075094589358500721807293223082461082581858746713340673344326805154756527611229009421546556183103412687017228654162269075744666374025785058198390337266853912834251138897761037015547059697842843812110416674964236193689840635613876227959545215146892881328239439636612945013878167659092925089753247166912368348275154607827280445182434537596550492568064853230999281451475345509275552779627941424557440525521882532395562508572117996353019567581177443676255097319751155651484513728542407490483808199558809151611793921910426190928485781613905148231474455310151615917841459994712239051659694410397272957411583397459390620500775807095967658989249614373434878156377442083749991461834513411785721356576510028821653437883890697229988629462268685195628832320570537894217895936784489997283808225129585737429565314870430403219543301647220458139790574528802074728588103114085879874721186328648984473405311460440048001118964742165719993115889037205900314664181261792091194088785006677801099918546190934892669185091189985328175801561496344252727420213230832626253782975374780849648620574737729805950490214555010896934806451097433300599798555320331318269175191591950065584884365516563352350794974414869955459346826667617498419319232391985849314290703397249074104335315507161857712844527045561514872082178790107580994599078190340768484559080348525612112446388323887760077256405950585761450617292910176342106201632276313357086984161133384335191595521993423910456556597310082316994799784563195983411430563705888413585723243945999371608451544322473332574743269029321113405536052609072416883753354361412870234237825270895382357658516596417328110042367022479426589489542002462779779309893450760213624171370310651327597596134899242700470471725333264227742623475663202251798424952498212765595113945681412700766231548515825735963353826717922669936333918066855094802896639701633580306357779206151292995868181602332782682875613869534898338580784048677565029162328102232126286237036471167259091116220744994447033715467171935579603406495721839913243157175868905635782011935622777763421623672475667687617220610152133894288442755463803914298293409706376846651169968454977492484216234549879019005901223071102488058804992082026734152133452619482271804045246592288442955419081544921458089045704939272983216883413429953682586746410836728468331328743219812300745130314440076835740244627809770130021421871235118844390781428645714867130316274381405338857603885294690507769112439640284427539211601124684855885908711120433136983355129831770447543952735118094562627365072134238675487816235096639875898907810584333722039754420498618992145343945700107669930233340450706235582283219793912107163390447845740649596837368359996102705598109343275457182265819162737640832649194463392541412570472789300121814099502881776632184985453085666790070376265770583827317495612091752324760127284885442229898679988266283950867894577143881580967550580114816329510134178454949532484743502461668260490860543498626070769522068457693088810199363886020569081016645051872181500574347274692400456628013524424290432379684768326499597859954187679609888240649742665229584406972977619146264897831510287400669792362033206040445354794419819989475253195717052085531617779164107727646139215711774029913555501516709796619652406222291416099722702986540871469079193291110174604012065208119033479335074093396733543810667764425162109106409782774039347240922697139986419324018336762578795166166921148570844034731109857718604143806570305811408965227990337070679277771732401960636690599023966006174759660274364772334171321125640695730430073871896976082625377840761689045650369641210172605511050631805878307177104571678917209315551005131262488507497125708827760818462973515666064138131857756923219422161698198183386159109111212964068347645414987489259676939155208899974348348251097717173347748490424157044765736574577528870313708739190721825057729931772042125966177890946278107374893967275333669497759775761401339096400599495991247742405822602276743479140436597750071174906872762693456375287627915386103348098692957428984900870413755216037594678764398436269591372899723772007314533667335269968366292608565705839038823593831189614763613317043665297644360749401649697173956600232484753127826135116274516934985914972842578011566354011257488383449578205475651348675253533930949298777856682473832247136341278156638245905023073398325360830038730248396399541840286629808766899600543606746374781759738593200109703840094329084825214860785580072030283926248148421073567689436508478291723943135377307833828620452560793714347989024775448000157389116577894911436600367935436393206776263021105215210135921546945449970588876283657933406061323911023381234789116513396064823273430276115853432570782259674566926399445065492819990540278815070629903621350504523173250136706243941061807667613786614145637857660442074924229269770349845012651492167176963310516767267848837295490056786572397844276311347324977198906007618759140896073066582151384491345615555711510845132159738291100111428738959946162393850583603232344208288145043391507378081863193720783803113641758373487519765079335205354261064839646800228318032347662678243897034382828567674099388012245584182825061658871841917739713484249557535536154283510624483282114107566096796995104825227942158706931518686822890659905445428976768340784284686635169507359290059446525171865184120454432711637452459124940510317749743271643304786104252035794032712103848084464363330137152901498842752377949834574799875281511965159434402988721491706555591849396373620235346368882181314372081349365898041885261814616685646389742839150595583703947123832173452734821361569612832630851650382152956508420824710834855636841528927797777756366598286215650221250746116759032116542096541470122942838545756721417389929799800524641816847334818021732521988211950351846705828084292711592599970153750974790079509303318805655801013980812298456546816187153857992812861037660068440830849839727976370041660306524614826604283117793289355874205593451881326476050299179833827163739598602358878513460926732319515887297292466770976350989467701402822922459093649319251931742859694152366564659951119254685886480010377793163073879444378711516343580868385509803616734117746795525054156963255517565930011098710343833359200752031771871321169429737366650481616228139743691943602197933189113714775792846048510574542832874817932872278710961589682604151910321603588677947479259298850999499049216484971385441255339167379832698374244874127454709620633713904740483607941575293633639044817954141117349362026048512012305360554368887938629144807879100525559893282527733543592470673999726922739927756533972566967152409677307351761299221420255506531429549087426170533585033317774602589152893788654307666139718694743502046969668750567663782500133665443412014978039533409484305880408087138695315898917544323055761484459929712872562076470023808833082557863754480673545385987638085847636506952673628098611990040267981130204610101944598035927435305744929624227377339552016915800533206697551301973113370391256119133054329794169919294829390557267957952817726968793291142577732050021476019969815220206152451794238984581852682797897974405416564805621008330286054730103160503201457405188876198453502969999264657956500190448278241738609540179103702546381436244525088702922663923366404351967800356654544364250362507952964892139065648414018273697145021452643164662100373809950418558874896308246574073342630025309949781559142128751970527100115710171637749883378795656865393442661195440774144399248742320604226615977147800654896433496235839622113531257289820135598481565702045748210917373786628025393070446554368897474906584779494095981224478743221866015300973454802469617267129477879519441513440173011883236744872044780623663700352425861765683808485736885690237092290882122272083417008979129256543541940782689930557315191699011807050189588596474048139046260970734195449422706775403353710296483606203275561731021591434684415539095659097465499279153763329473599602008980264079468292536127789832058536058561861189451406113222427128611166867250257033634886315857173971160328821238663749187456626042953189852087917692798532059687082732060772049087562497623985063918737880636107372115907573362989705665746883773515985230620783485667267399450197245706160417028656143126685079755716895080673861961335761307793385665294261178995576128220396278616303669765729274631760052262488130026201593446959933230130444390851414406961294909514351132404372818037803052701614745966697318233961655755091009447720112313016992708211043728483536465802279843531764876043952080736225958640787345819153105945582524031075377215743214571344778184309844749991891988572348815392190452015661719255542998753345400238110974852027005371147123897974701015854753862680281323170286201290386585144236448649286552358171372029388017529410102252028569118718607964501087652984253297163117441865075201876929274642106131317620308506790665882560616162451232983338560212251996132072858164070209062312718344848223007894040924391632745240874566781367355700397551427807392003435331321282287328689542061881883291418904239295829349293059481391941921015430324356744769924306848954952023954564550306504709712589530864100115696873272805753462888209289499803769427671523724690745276874941173761124890701919879296423247494837186391329220403340476272852904805702005887722635976788174715798214217641766434900548515322233513050200474266084260275811143081158773578536814136568366713391740316070565037908528432267821646435930151920709912343384447619748970136375189516849863063347124393571993453325119243402486722685096712244422809548620967064207146038923593401068440047536963864975135973583310937832600190925157443192037612293770890557454362847738453351375649811641233689229522888668519991591629961786720819183717347307006822812701860650275302983390146699957479446107026716111602787170650023445485265531804615279803013588943109664382224754397716230467646353180281996449375662371151160519787587083429214674980001529714109167257057969361548756157178235831117710135901253539556871274579972017592606546190059379608978461902722181450723587954842714991331503962030512411091650441966975582513218186178356942755406145597270535238267357110231808197208539486018220548268986636028695668183486685245446144084069521826332804876044469190082669676296454907545722369233274416649131955648643994588993387758700988054331863998554049323067761591828592874389605780464098420897405506832961139723922222697903646977678755173039666447415747265846547806596395648953581955700357971668912269469927151284486477227398117418148866331928994659470600892113189894296771965704861852768613423688150000417238002829767005277922765540848554333486168898497387186788618987323238004240096386406798435171625112697259246586787211070538015319495771649485062981579894694171428204216416558665990728619849384917548026958461964229477931498122383641538557038089789007613901032349717969632547196564912274558263541323414243643574594749297927856960776359148472801212182057123722912544332455660534074849518144676905895980695200349230012498661937621085005123644254782643573382132966096697316535354256247308090288177611337397206298364305054086194062218385024498547566872126006763397437315325783835487482440978097393361487310202390453380947415977664560313768110629892140901661232700390050502294761351885912410647065603129801460888994927862354781233707563735243212718006105308551717034053603307376301871136693532176984282601761121860063584896534143606709141997792464097211427449546989146355548286434011040147223008474005897193942555677557844039936570126377009233040177201570971402261897254902499639625668908485897750415713042927159289338014627628178042451243346115672917087218116986695871312610665581097155155569633481984422493772789984900169133406501392255837452536445871131537749642845154005364042185976909329790072008362962024673223965883741317529058662626944673521044260379193152110356061561327177958332423894101137830862454629514095817189416538188260985813625507028147207441010322838569770121266793214647280115968243771101640588292038122298228255056488502000903159908409669801425015995974256102202631836172557111491392144361101853384556828607031576644860576825091946215850695082849408530180664499120714286759898668841279064653948357153197916296821916428762691256721694722877436722690746310853419544061133608487163008322078153715481543546458370259485036167470707302758499672313280960162936123357408505167586704703228598724739808647326794039491393791308497363241413902943928457663835198421867634664301808689606921433831960422100947209843976665228225443683042220547014325651194268703971992934248063911831147159679288276590160658481161372294419943326376901682224343559260799088203400234350990585913929771576049472707702830957584270709136977043713575902026722712135534497330430506741037054407734595843092276937484039563820488592647043863621119935422550000256114497085052705009162892960498473983059770893141204198377018700063858078442617736127875809955159503846662074848157250182123540825433798202752568074574177955302589468194577646065374993269932888205395151847408514744363568210924250171052586349534579159028715221299536595915807697373406864938135614834686259397425293493723922991126095352789014741520946191693752339607918005888183785066885788221740893022376707892649055901783573302904986104756624088404630174420916460792765924033500521369750536665803340501312807124279897000627372915259070166674643724566787432560019555424209445336334393919567680459087133098344796212966325811637654664808900711247402815156434346310814453273397154323345449268619307448373532903424290227063234450908155379512377571610492712179818535358509941553871821944942708611496926208222831105450526017646944214984796916249383350864389979794372572585034947332112364201564544595832321025867338212082720110236171813291628134769361336231630005551854169945123703087471769347530638094914882823181146014847359176501968305714704713971680541712076085415277906148408154352770547111386619355191825554967376875375655901891589207674352614885293763210787312387572064840823737530328846402348829287586745751741196425955473254712998878441337697174478289514806062975015981041096517924873725424158606070926343451122180515157680503952320798390703844559080248976751242811186831122353594495362332805156428450911638253284682769037798940560973049659821677479429060522906427115409075963049075004578669480644240791416042498973639622383553426568824892490309401353227598292267618021399446801899603206758034293979479500581123563398697279023670197762898407331986142970899455340903726057682234474886920102976488719461875862934213170932727776916518710024989966658550838113356789617481139240080692044146256653829452233915516045948248702775240265603080241608406335831049915931308539474269073234720884119182024847075732911507212454468985268553115998511179393810802097734738174933999888973856536994038759525336217482394715478348005894603936659188928996217521047163046603844441237345091038293248389456001298364934173204224321656427582862696462987054943708647463427711852938248043935821601986070062171196591832591807574493655660319057421033069753707322301404429391360729974231482186205712797240843229742225306478470222877289889172044541364168301862059266947810650015772730346839982955110599642751983442090994298239413615583265388406852983750196100267432796083226766089824373992304583819359944552036471095908251899166291593196398638609984425245591944423740980765055611750578961464359199255642675963119627783751287465379652386652568169570032696428785072018471660573792272520952321099076112702419491396280748169651494320431930648996967523523778013360171535579415272267440438354774783461541713610807197104730886023745031213890081325624317204976886802282925502433493959917827467695941155443098503616431316394425732596746141758066342449250604023220280294698737518293127065541377829886195848109350266364520750931961525082015023951281069618830208378779175314247378006661366107125561380956875490976302248182547336957774425013633346505272962419515030700162982343399091000615550249467371288432197235339945293806722341962170161634329247937574459146657715626682851107920980138236027790852490861406132382047029603361421239678916949923423217152888329799391129466525384726864053187319793226777027601787151571127131902216836416945329045195204615033553473446978714152244708770708456141208314980110666716520746555367187872873746904987162762468053085758352280419199560732766591756957730028792070628730635622829071093172254124410289965621943930339359793127298249018850599820753028058182687345362620769884288389289635517726997755270892807119838327126416498135850566092974668194143322037636016031702386454010380419337568874559351238398276056529937969463111573623676580351575643680207979098069735892895033363102750947847813570006470316765317984374893859319928446797050501465842227782696067591977743142284898346229638095752245329234359223513044120345909610127448589140505827476775911036197187481126259602724586676557147275493941205551336228916904263820835739952061572394645174449899129702110657095944985564756710539101364046559061659117790624364595739346071857771170611184517001545450809988500405931558750951206165545631462007387394433274391565408222265516671149813613507373995489339174808637419664809327817100263955025914047775193472052693611721552919289489112851231256310527709723493867708930988562479735893275980846342321851624985305036273164555086002448011287948708902187528734539294131614662088148268086141620159155491220419860259848860991001008935521986004274340573101214273402947594356726977628542777276759795406783215499987080260583813286902818386210006100337642379198001944237044206333199893214651697433457699128223182611409070898614415408199147374743368164498243252660816669669733619695332127776912977263579843015097108158562779524101403121972539950098548370069915726381749334231984170867848596330912936697738356288707840800239223578231036122923133431387087137560726479553068785676787614086797853884183975085046835092841447196834356692453914539697267038657031729624183897923545368707062910535840958625288172928169247104639591376543397751033038618690541627854067967188564523146253468346430020306636243007728041839150504839977463906523527004766822033701569158523770139905412638347648466384117910763416394509626576134524834091389875379348887108440822515024794471987688839920035737926073657685493015534302684384838893140272196682038727684904065078641498395483862399144327100354841428571466367581410868575684974964249205885698437459468657448018493422802795823563775643882682326241877622162260709045198459326773477350182854360693935241658960117450737611406406895988292994464538186860664747288899190982296017892978047357912479632186915368703655952944433499542516058090830492735940881012512804591065050476649626758222413393315802709420923435482413754573059087156567567670109209505467111783773210475976697943635702499917247764099099618422342259389668469915441887720946530070344371831157287057320673987595782140794073633423608496383233359179022771268263032769487753200468018475770539434300795119666775243961591663082780839590538322951127233820755074415307889777628677166251881091187535197330098637717478618815476411602223903031955967898153733333258298360045188973413138579600929777458806142401045915014782067973943636291993558227602367510347827556486627121882555285317825358601035108225814502611204747092401718602564690068461731767990573490110072728768926194527588335875822194738432083457863305280755745493828952390059845682729141346432348817148584606783059482601453596876215967081249553230576378156493445652578255229382496265751170749498866876544103827053374089892104036867736560454285845169503140223236337570264179657785208175448924655709924081323665578698526453538880111889193286251925922213556676815576092763061557593066264739260898327834768021460555713159391575134197362381437944978888581196334372829232196632033578012611307701085721598982028012452701419440551082110912628261670708062742710620807375623747391179018806303915191898251718666137575727597103898114628132094118243212011578288178755591908312841658981012959939724582828850347090530282922251789724313294878973743215073413895319923645094033008944417799497855061146956152948565531122294623526306051560149924641646941653581717906597534647747475189449033886376945491013384753795701243435328321449298275732064946005703587974137284730855685002414057806994944420965645454206704067126917703420558935459214751399465865637953244989394807296345359598977325035224253669755202625966190223911374464701515637749468173440379453288595394926777638755908647972478088680068172355853131435632975431766043925383854057568997429850951712778248854066092032655982812701957135642813925406613098387251913882874323038507006601992157068887156531369864586671792836573552565862718814401443171436793748105969137093212168062424716237296617153934399533680541456986793897178488910159860309541293529874616910919252380974294455148855831849949859479590242636642554865556331493468935615034148837488463129465300565980746769773601945598152863062761262676635577359767581138421612373314597087298604713841740124888891879713327363626251131133467653762929984089037789520000853939976358474428197985767807210489634599077801542669717456754261723840220327733647639755175491665338447273368535249669156297692483436265047461988233594559385423887390136417704694539579811875271215977684425117995807169454668617498200389141367574252951992353630286409958477380806675941697155808335426239966791371918119745650950142157414450246559428230866854834547550417532809049243969757733834069200365962698238063210584211683115360806396000302983486986250141895196159770985309893415906918264474621242983607543464462434641837589126993823538014384957364332358908803400365035629450989571731821193875360604033750257331182525704669344702757566572460202434358051761798043050015766122068591071191644783678775528755576514955386462900314778433524201822322818628898360499556710094713073625117504656828874933451108004370570085720732275083196736841092108726460308626987012176044090402806979491118396436605218431492307351631588904445480567978322555962857732503063907386237033313393794864907355954685179650429666182553105264598245173537563250283739435510180592720530901051429092433527312786900151513055874053955359526490302813127589266878502683802775398087841969542444707598265277147636801344512270464696586160140500059813554266004555304125645385648993160312805596469709727717647751362379318695356428514304456301276104282649403679748029330190134439986092840586881002688832877860690700575222916378845954295112712364162904172492592870335181217772457206347444140710457987011683486538940860879346428858140532372205220333882782491606550751428498895026730473386894146657715191706700715462849334130545953261782576247455778605289070556812093921363602079484001904534822717501991998503517218198291555373940524474881608401142868298542198154173994615194467566539911086257026617289157211616708612807864422596878065405524084076980926229798908974388648718812412152858621071441713146827394151245402315271846416021045875096948375943180736202192937400119027475027176567343594247367066180398677673056064018589905357512300230660837087116869147579133638408623253843492671860661390466843378796516790070950960770044545355631362405135816161738439970087207800572797374766973300019518157166514482156340621818656955569523059973209613527960436084916464544009853402960861674533438096899823943693824949550947169541670641283942451714126019162473827086697693118069609710155725814785319462574614535039762605546512543502145241434329824924138121771320340323718671520627359281633744103154710463963111770834535015448259457608665977571739145766095877536672498405172457008259582124548521961643789313109882481700384223320632885004325420849215944237347069301246933339188876395624142540683244296139656862403164128403058782564652342818336566518958550369909432595309425060808246841425531437037390665109896765398087358749937703345895301949519517021752264520732036027546394131137116116222899004570802847540361406381477089041361896398146793609058294820541858067653745684521520114145135847400424917141834979108526755786923646084051029640568547162911479605166051298601164218923584706774478369791634369220302198889638490152417264835108736731345839534421502246261553366336148347864323356138053007496676208428757530744847676122129520464026842561574021989849634090361092184760431288829692663808182477416243214918051745760516527671485956723605854481485440213290753231193378970542137669259894146244375806251615321799734696371796455473353549249001405607436631064741766799857256986302528399444346379930518242598412579835864959062789069536518549591816028252311296488624546624741498780234896199049347281966658307147577253201586835547077836728257562399243554639377454477973382960292239539101363924842457990895204656398045121789111868368461117367495659523732158831922247696642959496940073685050284037768906265808500246717295897639915288552871279469207921220672013205280939645226322708682212314758006603178586184106934504552579097773956618012334187417941362215786050078339034591252524540485754363277089363734813762506583880204845701532917287753658510284304303738094645827944631703476961344868288054938747420783607209181966956077978078659557407096044302978609309079720730749607010815586850159480975343530527293411617148317473396610051752170023014799010869034522977048775984057286298941810215296900745556597243348361850377715055086033011150531761641696187723661381272278710986517345203857378730216612722258062394563423895118271063899938281939468089089171426867874887032369742369825435588883246084582028402348362623588364349326648017559046034282151721956396349530430084841662178271514494595409011794488525950494726556911945792036793654037611386749376191352883897654886121318115303047160619686704364428843498822552331296875029163545865426866088946046929370596495128448974048567800358527040399356260489828221525557199699352579454526174074327085989113001429067140022594327469021898299517955344274871811164211742934346618581259577501754135341180155914001252399483939017661752161192300632039269350307440800556485321736481168158330203170589764678232920238182476764490923997157484669006626848707926979745436105026659791718725654581872259956718471895396896356398273911694540082867722083973564852019605960672645551934292523068186375946771657471639851037580102664513149058946532011702593902980926721553261881121687059584164729322719691537323315514987881303473988948962542717046310852002030893497607474809695231438144859523362875963931570347642900052519090875253165740792449294631761411281605006043323678149217024471810409000252357290745094008754190944850132342773779028203768777598838891022428946586307188578363258401140040295820151572777505522049767174180652296812814453596307746839919743615077556084901483048815266226168875496803462833040684967248845831448961089841116418534724679049542984233687929502850535622738086930362906434961063890273423981644437129896752462213499807179098325385375182451431822981701498047147440520820677173482930757424460717784725245946185748904930509650979539054225306921236070170383791085714698302257724852517384591456079105588537047066293052686115149625701677756605098715221893119931908608040958932727146520031599118043637406495544985222116311079240253084120858743275083025736046735590502428762009605821782540707253588194242748229061261156506709906900009646228666919350261335698044849903060697708791796420344947066473435831304985932397059589076521205938976976179995460990255750129252950517564633281937784817982728921626883979150390284154892848405010183293430169393085976918820760983272888921135516982344564447333253072962398579235645767684446557407881847532800320620409124850379079033696967998575698548117548118386688492826248933731346365620962364360176047562884825574687983523166892032758120831192672738707762830879194416406020746280318221576402945658339747608798691752555031704962919619171215072124527733136375472863049900375024593485960032115144992840662158257436742274475501063912224218890391206885714990281250332229301019625987938312748207951457466369086901110213105305738750610287625824804729782975970378866527021744112460837370072764091503713333614971740090516021354287018659906055371259092989698875726878000679158690910845740780273990101872583402502706752349279084556458472338387936948393212193705663102735811096309442346293573358743954610171509748417603259483536217516712490048287878693443178634077789561343147653044727101587308359186544227533506094500454270943829595234500617950815499122260677053695403470872316703773580038588820185360607740785920309100130736686153320514309483297128610836602524555926973266001032976141119174374276782789747510302954650308104060484212662927492258713195804378325583814279728206104671644545396678275066337611956154718081141066372890445086071121650660339892385555376753205387993468505034921858653621561162560773785078336813948450925056970346054311689014345656230772431780451284414990211879930904828898966619644774295261486897574573204681701313930905117056129681336246565767032752997884256367261046845139557876174554261407949927885159419323455730645855363767666277904565194687523590507070290264235937689217411258335714398554727179693347166990452457385765734636323402095801122354476444172330199688759484111588591938802652082412625415775923953557139009940619257885762438343967082535985086771745203064771259716871629271981108722640716731620311995057495353350785579058055228056768709400358862145084193945110212966418030102507190041435180262583918416963342871083924470112172842730327747013437984117330124469137759748817280837808632835848060410924220865767728752209963240080429944929304986884989845824998371385891669131411594805379770420015970689347111831573389010474647987808156521926441124175366266821681770769432381466336419486790863825847134143907867852662542025507987500598344208643353203403385407169700485895423819416463202364499218696935197625148758953644751634449406416198941671134104435014824843798746391600097858007148865413513572346046623479297272831424155920800251034678954542752194241325704026306976946540161354854687985714429486803039101844108638904144811237544371285330823993732836681962313029569185695856627411377033885853664622747193167250336110407331565700765207124240797569995015171682190064511788702874635229298088187710072903397299225664211305601375775977190139941236326728084538940031909615421499319261336411225553601183662732783852674019875478187635393573394928471029582528710380997565439732567129487558224783626807452739034903745390658115194195726455858788269618859947491839526549635447571365041228605931178327747043171702175554273381131644612205777914607365779146307623015698777942799470800066693339080866312852037258042871394552756934418643828321630754249357674340668984292481754076245634843585997894799507358408972112726010980185913187269858204360215449353734228209983215127996754771510867255688821989769067943231991850034564659754689420908586518688541565005301770434777447943867270393095250807174811438806676944040880337002762289229403949546456869467365627651215744427275561854727297092316077100833032761204644001950108825543666118384017506433079878960184957256409227026453638384878282644377846764678894521861373535543656377606476678170898450543551146912314274141648367976459749610075175159580739164799319511126936601648584829390733187973916908788195618674358831373515539061314098627551521295444877104580897721910582763398947484910278339169952254377681439407418668237567124423323514823465867649964519452476330870536440687141456832606639769454801930943710086795751239891190608598079561897702861704671402026390040755211696790396797200717133559771467791845713611149407966712462922999331477634216541227783574825862753499006792111978060307885749546973284196464487248154923884504168748844032656277470952960677481195278592514810702849070915018652287534294183631406112370858732629402433909819838680897918601274620818939502098874883195920209202041991431102432886184043867214698447218058827477611885531433454775949915708112154724304881109826753085018792712236067265424722554951167783499513760704930313675989221645767417615608894882995093114276568187950445739072603866015581213816955577135842043549347895364202338974649549276685353620131752865705505880944097716682618778503565693248837006191686881325769898892153770164294154770352800561194842247298518748777495354659986473128376681023168478386420803571506610437608027590099241762684102073191041168647523492506036456386777296180495366105618145387474536473562955760076828385002653903382204235925539829328419394494205000899887248918062112870490391300294855651474954344575244822871583406545423074678494274930963470015143263124161298211097657797808646208963643472088059155364232264831264515021605196502658472066706130120493386969922060721205507484698313250445679036197937511451056109940597227061024553164341842315931353905307277364315636726458013226763772668618633479296099412432700177449539823043204002544985446412582181492056014921887888485004281841829538377471703679191289376308701042720721052793407615909556056902878841543593704129448706773764271263821528379114630861459968813851549589693494777530091090895645062887987494998791897733005539554996967223113032996223735743856778002884728964213358326697472583460615280371262743221724325293392575924924474115450585976031425395401902732717953482453447118183267533772568831319357002083161783185793469555062509874148085073837262014483584640035336912705562119589062989355562779178399088576495624037971430883909711102642258974629317668967223404012789249994400301464679220203830421619880771734664735164681098205658445677184987499742916295695277744170956312845961026901454223339536443247908988275294511632099275307499379381898314756794441245959637262578848779824592170128005575802716147579216877302876772414278390459073912739294267884385771923968052299403405334707357333451836725155426582639619999309836730795037244868646114937304957612941570707066203289181107238915527538336663817080430330556707275261677419463060608701555657445230874655839612405030148057910614581630901314898861882107938274751304764124868278016019084967844218901110183925596780158884405085393976838736014191230960600868884840958759093979887545712509890277211540144019262217279654656498959921437569114290202041111579248731265080755959728472786996827891626827869491152476745851922811086526770098192794353379135535005146898579382371388273535727171789383014221648571714102900699728235323288484621928112894081707974024421905443693038017492997032084340110873321114536842359999320908951566908596491522776672296396942242423418831803521099116402806434847354437983200003628081909768558492561175239297741658204184481090895126836470846247411739612714881019329455867381943250861265358837368559920259078153960821287907306065333544905988347470101680869637317737325829139402014992329209692706783167596814766966752080774826807111167849293584619841862617211092532216068525388159185598806277687216438183516049553852793642109031310360781624389147125433165370049295435731311918042841965032161578090425201331248560532036085914481767170549766907392764895140552152060925413291657024918171664437203666136857876733251108285903819215447665286225246359219175013034284393319549122972792697639531748622320787892026844508352041249612609478597647640505134461645779957974192093941387311276724057940541046207559701574182718191565611832096658777408146769169774837664183860817525478596851524694807752817906293992706525231293089486645014790454710761515539979963895457354995616420964604747459853772405194520424469515511057601494221445985078562898005200150144217236030394428342444870888738111756954845868810158847305082029360514301370104506990268158198945951504537485723487980716132368998892862049934134778445964826238868934495641306886939680162402256960972590583690359144783046409691845826547581534945007765160758195664124007433611728666605780640979068506843839086550136603417156612177413653524666292403852731631584292475107182073761997425700526636287342485276970912414632604391164682571938447497652741279128833276475340045879787567219728508025158776549056558922047149620525210401201669876445381749387615396217620998186695643493775204078670455027574954208283438265272799066404046308555601579354158018388708877140523005777747910133607583463708160374140335816621710523779547780310828789311389894479586116939228137724820976622315374165551870724300378446838734446101858764966248302353552906856208893670501291450337471297708298592055240518783105621652132246122880034754732559325711750916176594166482394972913352370543886272408483705528170029629809058650804794954624582240135714158490067330844573881811967445142911521434279392699655622571986439196067753038374686672221703556890842503483294766784150367836819897475626360760561739594959045378728870880119654187892476530782025541234215275554653752784851164219300210400696015444285500717437035400703359356505398651785707006582099804195744951235876447812486104147556590450055377874542573276631373882502017264896961612910104812793263745673134738711663877099845420670270029601117226376272726745210181186559105258614533881970128991196384735029017400070680631462301308053975457760287247409909750691788261928319716472128495873791803549559085450061798813211982114298258375305635097899123594054486017902486260767194835184423490587190753372944339592409185352802957201038394209623342775620874772317011752756872410122453028153879584509634857983910451921318634956903039125641139059641254019436292949491921353071715344840968420710642282289811864026763507160796935047021002318781098561356791065930660078977625531978982500663151562983354439164449258057007801061628032102201957047579865658116809332423000560664896736948762426172410119907596206943468594040616410905711553454537680923271287235399907443591953983973721101334949165692714299302802031477456050544661845753230590170786156443038197017914956765394045943560606605070173938931321346258503810731950386744835560194918228051677305768502688432549589089560814199507525651893554022636610084816146203865446477107121879516306983362021407461243273856073300741729085341371467646620823326530075778457801275507872627830161825087008428187745332078797789429648585975819284204996482962042735407338531005469939541254619473472170399527022703577938585129683664406788983746565636135444780666838466976517661499961854398962350237176711027408909193995831451468723612871384972420690809504422367855102876286804251881635840261629851807211528332237580970905745356917840193816002439654325782504544519694034884092434085789998277191512303094738055403082315560818607161583433955617281063733110606015264964148156840431946235604363017431750920771304908868560472738551730953808475014486517604975677360783315447229253433596384563021521710498738592531020397895814333663841559299255089446027807017962274521055506711913163262652799366963598923830060969816001670881344300203911771916307016377800383003711264182414601498704171480566260338497751756038495491915791417929536849597062863297174522149452643640004011685127587387943486668837572288996134299386640236405894482452912428201658004781669418478063660478483817618565155840174603728978215856590831489306511779198572317164764724189304315319990881549971377420721011833196861968494405184713480510376244887581817277233442721570874000852493919493398103083199952288542626308518145514104967489642576817203145774197605540116651437193376372188186506524854450399937660922677770747939980142258086621498719124701387469895676580981634240795135703733486839946074001483818809109122785049874225639471028589036178924869455199904917116231709297408195172163625062371420825261190713179187638003738209989415516736290310549402905372537989577370008817865887049043920910261127811112935519422778192147007436373735190083294733687322396549476329928275318351812624007118920345658855468095030263042519219879777374432637260928911109005219868755372281053055764147614824639858637189772797761937308767042649704411511412890062126113885306037367229595816117021395030074141766112848332886016736716732035880470158024784864639807999576764707923310644566260337307361589922617875267426013536007295278511447312992791452450623340290963971759232197958011191466992839606609054620079823745212245036016910411563221953297269544555151828409453955078674040937185323660387796280514312676627403643982398318817605978528134663946956055581184589398070501135751682068069489438552913508828544734828151760971542385952213273086132204129233077656558692790957004784303955681994015964223359594550228105654377995470862448559080037069501560801930721464897267316393892553815995861702205913973027090063858841495346162764260442837389125191847819850025498263035851006341034437633407334699031270355830801124354815866116467990470409954792381287897186780109815204978806050476668203662967250936939607313669337472036724300318966620499750652520175471357865734643836467637926850195846151069676536390244748995432199723190611693296228778946122656683064351895616389957450772210945127991885324449376487789040544224233470979587265217693777637079604073278970245582953869616412632465754921044812238089336380764949967196348615540609091415949767808774619122770828684460532572718019232463199946676789260303597957811827900047139409217193998740760009997069581634479233605106166460077875593954578581356191179734847242756439544469001853703038899472199830805883405836720473010593371645853777333738261881997860740674509062922554889908344358447071868346283907929470801169686394851185081164381346028123477126650093708643498081061192511699839069112411278849225010740467001002498755498035240563673715644048348352246102196750403342268090196091918367697539184488898103076931360368464907518519208998079674849520642528150398821992945016312244419290790582175500212464156438780114736353486032318176976992568862342243651161413783584860345729184564597310145801442339103436619091211751414322400433814714649570280368174781573399255278767581363359753605593381471464957028036817478157339925527876758136335975360559338147146495702803681747815733992552787675813633597536055953938401768676743047462011227916421387901627178293633202573540649829431595005547141144066372802259064990772972153184835396210592075094818702230994825467297018483782461121232263919435007317776200669540599603740376544106287192417866624208821464827827943811361974467588435956400543384035329212785957488140007374970832504832785755627877386652839778888430937242195945555354368165329371988636343681790751801961273509345804109446551725884968026121015346697273811614985607135933184212517820869764413662803131959266299800800499938017991534491839141860014917652009555057429439030632354051291327228528953318386128009002420185920683012455768851599860366708821440361799497576930101581684048963695057071941618192298699854618110664316242154343885744834338880719947667423092554142522046461326333021925412332655422517900396237001187722488012189973986745402327831011155813888762532752346656497928456091175839397247695692295816479170577534606301700752743140171314093470826207580556365138365779777856686672314338997158540512838175395172886726792433519324279446404274845572204271370383384282433585631425510375691018147458356414678953450868562901848676091677061998800659230534436395717282508884259966392897124775740130935543924733240791820455538176637235332220935125401324815902989026429742592787894547500654994692121246662066260821434932002080552240572239843830449363282819228454889328958740225793208207774992126360859118902964660983895888100292388204924622971332292970377519931361009803526705244868532263744780463843256463010008144862912199457156447900994460842936828479652744612765333244881103324202517473862223449069723675537880339959666403072143753602331036965733231523772298744269056689617796282321898718909625100096673816079948561699112561646645110175597163799499487451735865867708404716844747708499097699794470710722164628013946275459233625336185844576023868690373404023429979586621889714158804575375650785042610212069743697096921440941134689942630874378569318126994043871459489599835002482339043529602141043479871030683534297708298332077518071528480882833701459951573669234089522074675311090200040877667734520830410725541593900525760346091208140284177420377130700842437158672936059348066492560890600621400735246220346694340437762973714172956577384435940054753577833647871738588319957253806398099602645405327205628731511229781571608629573746845665423600829004305765331541271689897462285133851076706642751110612635113161609242434665697007093299521780947571129105148114698468163620994912119157375909346546661760859252499642964904995300849587607819636004710267394007407320843624420034614494703242395176785324245348099377528028052592404865762846714121867299740770308393074261740145003221049726207151701671849128134389819559697665219201908137000367278208254808444077054889497735290074093964115215928130985243276068247595225330802824831409114550349648055883363143637880869268509840227543561095303877707012120002898032517901049232507788502590832634143548516877220099829477199602305243885580448738331603586172269203006710187874260694178604070699902507500493233626929932140946580996465314285894029505075993837424671389269904330889696893171221522509329615283223140401522472006962251931218769483286742002917366443568066358210533280417672615156230212428885543250193477471628043834193928479334861222057352401287750089411533192309765082818111896355024958467106845292644845557427712134742858861286553169290497678456625964182472669277834400266072794741444083706645758512376709200048312194034837292085600229027797730864854147461858811157024028731490423374710220512254210599660703538395064823345926097124425018477808097717267392473194016550396078670123047395765332806585083484125260088946584673119157291745742241779493354979891900782062130861080386551622375812464835540650724329292911545092667131859296769309032438050050470579802957471634654618685966633481647375637582530295286292373436789494660108835291361314666383280711983717491455000642982081727450617511533164317850686055995804144705051451344346613543491323777336900047757585040469935495286508212310688552096189971243934341116809879539624817085293385576090027022794974124179740475717835891513010194831142088683249433148178023376509533242995528594436834355197273185178049465583509919430937022568193180246844883186770873093472780380591552502312040642236094709885301607583705436778374146441160534217600459326489012510109436888394937501080782355178495090823589954072647462043742888105083964558842665486927650484032831218209192252549114726640636220307934550660398838572486005108528078987509229541520536859292619877916892215922052205519853201479261471085918843186865741159637899311216099897611097963356544490273435909832894786788397496610903105796567898848146337793780972063390584010251514800188040123088613129755420721536964927058014552750216146780869136607498122516216343548510063344349103534205339346945249747695508626569362762126109157268918512773037638397957159366930679492986483866338445448631276085510051818945811041464708454015362914582274572901534105798816935405528318673603825088352304739202146070349331910672726512771799141383722670503004288951549134802923632392882422079577308657735443007871499407960630325769589926239205966013855541803419669893243670285104942836217902424447773819256545997264421416458801833242657385618786789598523634784235368090599271199955978540144835966062156329516389073004275682540019235888320300191134975232861300651097876929455311396689555834764370807033156924647705668317087358183948045388753075171478337119507687976407728846486649791823184502315381055175873407189625387985376214371724368207104688142052492393655087044891355416556266667131541921763666664454613419706588440480395862840116136033685481345505093590314165725257605525869878703051193190755363634544025154523395823365871603816085282185007141035499360846627840750612368387644621458919217791425930064973124185463655995675129585020308227841032613715113519839061241596463339823900878973879933716728872035678948696127846918029884000770240461416843570964611623794845800243691534462319297027637045810546686186489200648185788447046137629428206142107034803630844111678006148150239136901396657580309396590441591251209695297358127309790325832927479399692824383149206259029330928601033239174038383427457113513984577478320244883860219680767163316534986730347454013999215982211167111512544258537609167343276999040058449743475905564206307694693472835650649910777679589265079832348108401822448911707496651040618759184748576972103674326815148420195697220747344822087928699608362935876316538904783900487427479351515284197270786143219658284170693904968157725682805012202075109236346551769315157232381050180225855175182478223413643178816520685066139422626534469728935978057557926078321667388980661251923880001695343252262005288995610861328799507595735547495524742430832870191803056477082736701434453937593763155017509351851587985050694639052319582925230975140740525459563140074366313653185988575773788784190261411868954456504216033706478625262724708543417597795006926490269511202750263095436740580164721315926794537943694975261018446608580007831271913160212350913829704258702336416046448461284709186343151986536546609026761822474718012253559968132352238667955973692580689597530371264802448204581370182034328690863716598337757108583301036874346577411062181431765563396210063858316746748091887170773765355898662202949987382744425547924116346546794060365024746024561895259093499667359512271273205240111113918523027067614277230922294728810133192963339978185503182934432632206469801012951704557043006325015625043150836576283267412300204950639717367841889100514252530524968862567387384777966286621649736240288369309617354373373136677583583570179447145747081249069802297768156882572257089498908991206605540252060801322450482512081375674376619867964264129860594311283000540888188123313347297473121267444431186759432091066818417810265573353262138773747375534578279041511593132185182858877744177229662046913866020934969425605364506621333173259619876825885942987942670938011410541539939189608363619248741879169306463578448072156583993120379401183244802015567141428598637278598469707404755436182348158796011413662352454806720345614756939780122895658521622561696712983690085390043834510362995911887655548585010382420007282573831915399075270712724127201395819955356637355128909069762510703048920279452591556500485530466782494374123417108451112727160221094193145540157999752575970623571196509207796535145582849694641247127262752026385688988076835163458821474438221218629646612627082674226350571950473923863507541211664830262009712767100489826716132451910352783620701285444467011130523252269301508703063384519741892706340692454588091376803729575334680677935046864787458770737621925305287481361985113857578454292910766542928340713435022508828188929152445277839874721900813143807204302072454679317587784666266568465288615076884031223212187332960724426849433913948234400487947318100156723452617702576708867907794884357597613518177223303246999116657596635615488804049732012975600952659882349602233294960423551178727855292408028587766780633702288000221810335470733819373826226757192925933563709540615727780572441483111640428020011737810453773569712267028220634931269054549816718499502811568901079688029001125658917905559234547229213785287232821812125034518205954809677227766071310177860343882957331820642358723699341009810617234963824686830091332565344923468406806939017473532015044406113834755190428877540607758191617811541300399257403786443591301907846113155981228743338330985378397280207272868923202989439733948198177571392474916946466667896123429109370338793251233773971388025498350706646550164356596853145826507561070572470299837409048601724376419814227043148037384529368743600536391267265076156807813142004122411959494039297701634281240787208085216663064592305670320709816172252902696023063081292602279781774357161381029192980622509729023421402721191693803271329832008372850667961628159235828668657609990441599158720394183682247309036694969071774570121777144672683511194579923576437894693565354208606297301046730719822766077439302309468861548281095152021597052550236156478355794196881755560913857785219222596477699410230570038366747623550697882318965569824146502867863189211312240606180938604883264517308401695014208215732606429222886911152502549936021800510419326096907384748832391402415585332601152850704306609322444248252414417460744488445341855282414037622464301160849294866458299855205426715174054544202062807034332941069337272642970668910815358484014909456938246216847992970706873787740628928325451342260408837187219903835552674722094123126765963381557250244846112695927469752381449321640444689895162240069283709586273806888336291637240041875958645520463746275695830507984538153471523066411007256923629349276393671091313512704030545769699668455358471455918192837712462583521412445812027496607847718105699457043360508168509589453746307951839500347172519484435994948544685268129735901906906535989033569560310064479682631204573191011544496555112268417325152277386303081359758217229059766137627641766163476909125070161999553759643211557534396621688271084036751192999600088624632199987541809436005308741339626929982076296680154880905235587186807616985560604341753925240496799964651760002692691655169875265250677395085130408053884450609260109643688108942026856159073899850990825015494639182209700648455366366899685892286382159711076717976789750115428087230391288788699618678930719828675499197432627093410002685103259296326881852414895791244327648721801452982185749771429294366689378364382229658591114179405184942073570645283259884591225939492744455714667765151145692903139525375804633758579641581163621872276615189824122053513224224882561677424596765412540331784498838411137607350077200856972776264873652783389163614249642106308834930890332084877942864404972226828618599466893437948513348559058282069646123946497574122362831397733819087455803316751727223866473603363229422165312776358477306315342973727749231497394273391681398751716501781032613174550637765770978869597675742214937163528845687419756069536003933733202065164936970814922958343311631037274090986625747050514702272309629622876768936937738712390204651672955925396375704229682701372159784961803623480433790639703585582422108823529872394968853577050451828950991937634747320351938281114420925467393367822925849653220080015263180291408646888248451312773062679808155954764828504172711392640315538504058354882187206324982256830837811447496727888333200287176700343696901126333771406814924856099222370955185473844571790541768739279171785165931986828875641818677687684101914918079399611289070751588545524699476508217675677211646636427681998522410096521305046508340727574484966197616146084059060741022144497622366799448483777754612007723490483468047995536374920022287112718513560661682291232392180055827814185815990440624052625463677109244383173398476328514706535000797831849158240117595659005350270640384087071233412549043005892552683369109471018856806309748638940766073009576591462156505019760734488992170674595990100871084361834433277876536825877230822334434543292752645035082751036885278769677924752905435163484717783060043423068025104169270984042942326154928313761218792561598055496179934882234043222837656531886125750264078045152954197194195477977406155462426767143364705108681554032166445251623107122601230893710475506825086032404639086714436907732441343984928414678828471479332996215272656768340104003538027202527541843522537228344897065811560857105993366677451985660472200841601908600007880595268182669131384173418199055901058235929020135405146103729259840892444057996292612098298196317512145353321039055651854357550155063302303939832174241638876581418283754957382481357953537641564860019910209763533920754849348388692816112409042860516889724156259375795831898950072924596046798855441909311233298527184462335677735993334804074703720532803470697637002715728202307305769614148719664204255727504919503663230046513954181407251089307094439783121107332766875928037765071725136087557193764856367448558888257887661339184493021191882292709019500146842343636992753199546115671386857045074414321633904078029992349058144656520449623351543572010554182060440262989131818118356521480138655484650393917442276899832095994734532614851533809088184406737269357842931940850818005411125012034574453033313973804469488527709899805696000519141141422794776296903922415244615981368125575139849403015890891283903969068237159676228265437559056160300204572745615279459651918250071334871565451017527723448508700166716220881347145595773312518768056485291054073928022211200328627810564024398003807019056977396529787790988003162006689840372155196243342979928100956086160201491088191150979379290036944991206217653774823719553245806361501300980865044242529347835698514942884633840196508628261926818181331453522710221617868856397961804255727094019690419527822189723711576046001639909088872571825104688428346189131812029696413348931760054804610495092798975176311147402264219675764519848872453240032533025182483077491232525668847561695423934889778461915757944227708558205785410061634879826139855509192493376344196938647024154343282328276845684142699438372354025409393730738046343438282071965531403267158470169414833139149967410908125309984316312073108505016906329319101821105395585567039824196291695207657199927230717637308136423894014823262654705509038419616639574583687476267352525581199071918362373584368718343059092217995449969222330034287082269330565446768367767558779608375718328106825559568543168045747689684479201244439748747005737572457408749217827564247332585933827183601185506372711682381424624589045907602969214280818057785601886552690999279221547127089592401794765078445144146455171727245484769416076624783260657354138944619885837567498476780536983929576326602264723992041365216237363614666403231551854151548111858108443398551504367348070980163062524751019715046695459749141410113086616816368604210338807456519949324586116048711164862799838024812539418990136377273111338342667785325923245333448537596647162083385374122635553089374439019515415756799424532380334083072168419947899681242688846165970608333973371771443649867987671879725126150631972885540631915126103864962031374005154413457210449044670519451569227393667324976857391603105431148168922251592576687809534620488181913512012841625814721027809659799919441603443841823262314480816732189123799465974694473719947344754614472906985885420101625230641968059723722842337324511406540283755263039707842698045973210194934570025250559594698145422107028369067651113380082719704304519247809251178562729103526279169742580684026273075841902146284409178984425616298673909100537002978855069858231909288554409934577175078784925479171378543226314655666153587021169160431720984265232313966065488930853830196834019241368671420697276336719758147787236143301726125552055830024756665571711557695597207311136616476492124100074325367211171819026986473496581301013671137322293076821469823309586260175527216725842477594432158344832516677179538137449644406567381383266457517449057480046505684021118589827064600254984222932072749822069747698062260826601109618485569352118066229299403801572610103842829608898746065630467985022929902092919324617716061603848014225088691237342485864417312671847466345121490808553212758118947482517859401758447229142593819966479033908751036666615416468654700720220225459753480984235013648485749478855474592133750963767821654279141354746700628127674422229911882799813572690737854690911015568104297173057788424763853740267974152370946246394346051216392451482105079760326859866094008732341564235356676663753122763480101077045489051032405795659667413083115792797480966954347260724741069201533920909334582777447339616500935752471124170750635032088677174121934951466676387126373728461160408770630158376001115336492121902033180685003246663792217379792680466363761955836204719574558817255112000804199114613633955520113003942391597535667411367022325519019341764557314694822022252295483332977455605137307742517709774446598076075945466065931031273487155532643890833837027738220743145689445864371754121066049337745424904700149039594657459437712378972800584293962105526750395663214923767298140663500612023607935950725002611882298817024409323060665400972298243353765243779941591851493390417225014699742533537805043621410935772354900881869073902695140166972148362616723323851117638972737557228116899199803995729374603221728192845340933258441169630406238300354268874290211824298564512457952073479846273461951045524256137362994330149839372911108705299695191835336505348442428480463104765220834208593651730965844961302858336548195435981867562202941613843211632576859825629672018289067811241868687845973133871404187297007119198677012931062930969498993548139218759288048398451387407586430276561571473351835440735062553123436649600531091488130323844626520435136290262659333068120511588851043585699456499388695707061119235727571102941969289941876554368842569280638614351303106384443343133961969797335615232426664170663902403623655935749442510383568249385430663695656283813497578319090242770499094451411112412302060434223288925974914382315759079844235177845411287242594935333309857109787553868398175482521217518103082181765051555634524299484539045775626744657855175914891622511780705328811704597405975986458300800561032233253843007509811343101204508331904228654685877994401229656165638908159592239403439222600101972217657362171163599025757529000338660227492594219355961294755185136993932496927866350652388267689411676389089823146190959683386123118586714957572705756863997454271130365918183847178081808417520100655662130476326752494668205997463936880649990764134258089308204090236323835178306322176172064336320110403440994091584051468783262604775680407126154842603468338802680940447930891937342390363864402549244811573907631680266467996790175567187064136332402887050874571658713959164292536144025978402908713437744417589566558113073762968893475271737113137790003100827293871224879869141242800845027251225463527219920187624235080278447967843370236807361439928590481111125419311013509593127276611248889546891945355636218793299748845867834814486269804703990091628952883689113746167315617024100451577570016037783703395725392613540532501146574192248012182431698530353639459885750411326222400541097051949162925743792819168762049267568477748603451383969467990943530558615004279444831120630905934432470009375367100560449265560347274778079078363950451876244839269798731353528434846388813323043979277480220152961923554860004734273095078678062530767364333228241961324270565577945226606569501618926256269482380056950336491504711624285796896829089690583637582782838928955203632239309604204622878106376581117827427625323405055645853432873936828810555823020155443402566605611991608331245276376749383219523349563178625842213416657482628877447179338703290836250399594515911132550505060040551933106785402214013928930774710317833410559482918371307692456979522064140227958467058688577578468725289470075085185004530687570783974666384507360195357370737853567003625855820667372433386238350663573235272550298747371571049578276193935635016759283674230853838573512761288261732009487808731297810994013720875321879621767507234310420409830054307545430893475609999670530062600893958753980300478168171271950939341910683317924294515954385112109091722673218321181622795705954478225361268295095486221723123631665072572186345317410723976503826472612065862723390028195090885740960057687874591353731461515897681028944673460860109973678031561291557189237969413783512316274075169456949086805441787597920036554692634446181773732271670034442667760460949248120587970646584973528807924153156393243441257891779357259017863758256938063425044305458827958137410756022875844478109654276517670622237069724197918021522914548339562562284607838662926681060526376677358438248733782586428850121233292472070960759606827560580289356980680090424779414480522461408019298274453591426130067315399742203980804453750119539726194484844951991140281906600326280269709544871657792318799155265031123235536396866845302430159619734922623522743230536042233756064177773162385607180504055918235089414216126043893732003497532633969317683963974083408761489660534676500201801809501790152475738159051446684042332046251958596479602895315590775472041875168042210488273979524827374967425882212290841842673273540506297473956251860978458070132276611517332515928012500661030784565522793390661195546769846706931144543416538587299991177255340758362673072059819231864158196833440775617358760115854106288590251485970663025662727818819343204435440594264174728744463849708875389243654826954256770519550050304857396719259369183132249952382903951907875007477419288341283393151436054565549927400340005147528601176491368819754058351813010642819185427723979888911556544206132952148340397465595374693176797126059326227357889369439528140371554981256229183602897098844835199959092724761429273847611342739427076465965860996751230503243760925283745354475985587192797451354560409284463123838891929763872245094869466433164585861170878840725956634464887728389814480697593346348920920847479336641147691694830437595998302984485104669711676118031575670430748683191350151086626814811080662676444881876373411910463014864339513331694386486719125305119771222260512927206628882836514602219447081969546319782481806230642959193438031910707567289113034166693906837665143733400982917691778335023511377237807008013449375124805050073219738123851625063208104966695365173928688581397749077190782452979419561688697223167521045066713791920865389367499863148664101700444576299589453219559866395809179418510560086861372835205544642033275428459604284332904254398613235909889616104911040370538129550774681638755768131629919025081570271907649077578436021697722790417283215248311154673779867534863300970984071885291772936383789686704544938022017157424305990922776633024297441704500745899447515007657427829025938963776349353159478320022542432672518423005068820208254972129214056337255815811271047415701853893178293987877127982748865671504632246643855553484887868766413556127610485824205891865197234353363957236099480816817397403119030930451000439618069123447708555149247296678508952198610901655248983577004961920373861655837363132652345982453199510591605837900039799695177706979524695229836760743149900854856414332722003498903384042853124211234021004981624291858924222434957536080826030676240154695788064729619266845275111600959053785483163671245484867788201725205463985586500358235002021508516423663500787760715198561452562649515910555074772785379815406327168195111754102288929837822254533675665190251216823016918198394259899975941176958752150927946376619633608719250944468590221362185710407220499663863587129905305552702841046772620212744667454521545772370823644453357064522514975678705171948005008025678246078181854875838922588816417620490361129043128167483207669348522857760679348464586576690952066100878790643016816753391621152056810844678941591233741463682113883375773261402746246664515098921044063818083056080401370100890741719376629584442169122790893283198267723332127920076809166102683872384324544206867975603948267365820673451550426763088181585580393191617327544295576436516201516644668557593725940971151878369217329993841578827660226709252914746182341866367219311226984236086854520418831280199780334878756588271058702370961302747991323482258137696121704622742249610167337547880106340855148662286995691527162633501789803398273644877428231538148290013432567888322876071651101159587187145010578347629752887433927458182768600045277571772478802098965643852942388173879991874712975874116541332391556510890877525768628661680719210903432650301463542749204474931246520147323197577036120450117479398628215253549720267179089505195085909795621538912180564878996785730688499639032778132294015207305052020960765468832525175264101355065145029802134353365875559161683674942894412148048659982256111987972086693021284995016647952381706495642735155258468462892001418813857435106708068039340064939802782040845015597431112977796802358220439971891827408195202452301617599479708280586003288928867410624713286909469466843904201205774106699462157238511091569237592785586844939773606880019229349147175801631652547472728540411178250031540494164953211474507549665480231018551844742049336821498678673878924957514706902466239047396630200661578109357920463627713503946978434359174142643778031190219547522692089547968878254856457071355666985023275461239882302786890131757321917167849301636501389552913159011742248960737494602029485127985592450773793569081333869747037415739655825885737413490358278143407462554235516439689046077958386649966494450747565796993514935135973200133033720811662891676509869480729440329917612907230111404658911382427272632968517609428418793980260523956540664593300789657415766970867192092945253931552743735282800482345750914485335424049182058302117366937604973842272159134835520404257616992806428547140193685561411027658280857040342325875865694650092023084983082678432727748692779550406611100435976476867865384955027225588542249861365736317396148099893608474097176495471543340623707326586975276459213374297141242070511225644949907914419244483283937913804206362380029700282062393180756192264853973949330832519708731384581198570171002491365252271986840831840478469364290251112927517669939886203438789175172675722174421453857611002834874321905243332939928094883906152940641101879375394113430317191685263553167352985363986776163506611968224723486403409681038585046067296014761310740240074265340243680379210684461534197080808812207680711064389058863421578528258228774367547014083100311384298534935282493585040362345923926688311448077546710591069406547237346587789419248732364370240202401751759704682954025507967730984443179863541346459539022765743203518843111559754635233045235505529285063631152408117678464547141327981340659274673208354528227663430595305473430938175037787231764648909649104425587969404117052776629702325695246367177584587882202846053053054661817220965509818396754440119356702782721083355606446657522809805862870333075787382108211292102103896165231228487920328037665387201958205185618250144240962836609846332252841101574173614882341460287377498491498459046298890328492560839573991405910241206845576248034590472359536883927461900635300602528684434546600578574568725002887974078126995014359696494764149318504962555216944452855745294807232433027736555745610429660883569742530736111303108238000315853873628688492109174918033905482850546278641000131694719989488942095308644650267961007150484392620633117118608612081871573273455137001418676869219670488590103624233151677601727174223305049530615852479196288967594442134623565193122194284407143097895505598588624420173628260735051163846357111878468347158834906233425883436142747938295483412634174168826028887355478166532383215407683590968120548845481718926920620367096536056408987592845081574274786219413671699432294586933049535372296799780048719102034782473949179717197672625388495281730513600892270524308556487450412160335515149310396418638089265951903435019795036622993710706109803283472869345415135967181506297663744309949323695704953495914193527271514187376586945122363671079380115242166244941198004465572125975358046399910239327977083871847534799854360306617746854816743025350911414225363563383883543544686001108638480214792763158479351071062272212328900030400855510346076806651955216865671891813348506806937700390687013762540552466849767101445993496184224689804170186023510196499013377865083234368694437821639202188508599658131112658894829177348973611017473924599639788237708464359325646405544663545645062781650789100006035789584714117881140014704556579246847933898590443560951939559830484119070859683908269696463010331291954054835663347075482559716224095724560789952275137431729204329442145717570211196649273295045892435115422498928418293096801627909990143910006516066465476572330384646243951138306777012416199103093992894039811606167420760338291759306566044008716224229486412092768005484026354604602128643129686176048676854587332459049044581544689760012917675937178287781574634474974431747224571417824959332658959901232631654318097855782577535504957177981990246125777284944635352521703343393134364513830425898151477362367919941816883285991871572172287651994703142482487875964116310081912766602885664731096116466676711893676347212909630086923962342070886293386312556128734065346790974199382881663850602787328004850544918201993378711308294933902544408454452831107906717557815800938675360038603557680639810642357510997331840280685077099666201399383021570574904394911543830905615830011301410991395832903258695837676197074489191132631216409818434725600876621115969513338904625890504021039716887529763411565301637614017241741275415677573385156334096892443014061797497537174425664734934545792469679930110261943376364486675375610876916130436137483304794412259526124151489816998076810184818957800383257633878043531185697199517408404042921573207178938770895931557022742728265816149740801332063433840086890238893918333142004515961400898611215629243641694725431356170181179200559592854391833343694519194514317154135007420063905060716765819058242162028976968440905524544700128188685814354954542055668983878624483207521217410948736474109157860409910258555863940130915517560027976586538407568236397358347233648255335205247722960881930540821053281311304880926255044062395575903919443171415265275408089529865726307163407322439503799871488151262446063128138524107414359794085766578525169438992746556218058869206623250449370292128851274592702137674834292777741271892215540626833008286009017921875382948629150162454072477788669988900709805056925069858183739013507639436541872329303118365816863336447793290070785745106113991480911099712792943849391367015842418969109386238027257645216678140223613229046809772487782686418812287799343297670716387056951199018963230924589999021797571313451742593603251369020883958608546750477732292906284648172031950728149118009595051258134475715705546784844362377691481917998405290667715479291174266933488585670881394734484862143811115954754498528040574225069514647200842462447229932157922646721788145206482083027693611921738523678567409627910852342295609063266671048028819226371390907376844480931844498969929310603687009530872724102621367887069726985697340022803635047552368800495586973590390206919312830707106179135567674215877257598221912943186457454772051328945878273757752103071194255451752885836334459358005524008931209918825706554866392314480862374414595305590030658095292440426176752542067710335536849552465464357701017897964163130386749523961082890325772448991862299651984232782749959589340831031293267661027241080737954628188076342698617617033100934680083065183477132870542549962326032501161928273021299349341397996342615126485063473483275913631786824728944493214660618479650573040671874828415191474168416908972295616067007281977661083114106186927435733553564627254143794098134638322862433641334789788909126415318730406053172477381035370826694106544406226612937662336325906138381976319401303989855820948209539186024819909896648627135664987570149795340067644785868204910762709697757054915087961976919441390159412568326794263957901827825455689699680322317815897782256576138716770132148021155272767311173416531189220384514736990231647764759388060160755374833823285458259506291023936001654473539429828766820737121927529990736974408113423720201314234045052593169727755905856570031320224654790866575834512665456826305546193147547187391279239721184692177837620063262466814563224968776560280104550069682815286575425982348340092647101283284306430256976526446941350270621458319110491793194143493017703487026333460168710291836083741253275877631540223039562887768447232803021429872949464749395031464918041335142023938815248759373715928383266003540642895354169850619922353038292186104869182552690255749889319778472061991980501797226224763718144597964137138462079820908395882118704801556318520813430516852374158421747814580115630583117678770897709425691536078780911362843548240228283945658041952201303119772279659598388409363583559011857427044826650563438421625360498340854389040285430492689930661353029562440020282673436728719262079402973506179692541012917537626608253968221806216418124621731189673347430942208876706063054671699631418215590292435137843643506322620931206801431691638497810122710715021679247205626346870673908875675394424482708382508788265356558197441663577849241763188148362164412222323635499389429907840921650996112353251201103142338355065493889092759611053693980830238610371304756676260555830927849435785197856390534743267450560490940770859188651065545300819826445252817408774654789916151163487539306741930233427583650496415686353883449297026988302128385075011730722531947412188603060660866565477142449026181091509558307427608294858110352011070330305870925795123533892215724742478567167678835897376761772117513058693433553676490367437388170444054369873859392664944715350381525963250553002049067646244585226052139312196299705782550327045779804485895607020990215344669537068428452178214452386671046940810750616731747856971897942787887160528345042902212243983433906947676464131458180704818421658186036693764098943364938142679991971798152335108415706476165027604538632999522443033893844869869487964925415099694766465468976921648614239235682753185096540881335332360315018454309181158979530096088238018229548364665073083461587537390946753112554261080409659275271456272255273501217657824322012822173684540188340911256369605867417354418830302910422954093121391632516652716281214020039348524629267702533556780132121100074687510492729215067733282463405433051464110169458015239281064871651193748496284714520592286022164309227073291131485055146260876549103696897085781125139947748938328842659805612121831611530304191551869772206964070517065583074542955680205586064791985611372083202139733715897180100934195299240863180418622996944159001484453489862067964505307736118399136114400730593042057496786395373172912778358482156291480030842989176364034258219775859099886154229150648818548939194649244244270734606536628241104380687463464244524892172700800269889684009770499068790618994349059987912329939316865429778734053637410860411682122328032144301845079668191420237115246394822017709314272988455433627298647398360676197355206465441486062065827311631505717724208876556248722268292666020371485112146244149649995152029735696346895793491184861387323567372723628672295693070222728261893624209144683434264680026607719950221650936519124299129890949673488691609975570841538563266979992872310669681200387350435700139029251245561252590033221973074262855770905192682914207816015920684685189496026803241645023217978454935003686853112007439987867535318804473478513954317739606005536111440635364216181260212638657309469059325590639721949203805628767882874309190961540686915212318936278924987012453882907430838160748627389678774537823637094678891160341754045508916975405922739404926662391204064685581911120898761302214445697256862545295013041121719980910669115415746874858495998661990839837817126331068153364133204083616858950592515016827684752401634734415535782918949921385910911224831818717219486883865713040482947774244406010996901563835237827612909596748151072258291813299828742705498735967748422085620675206715994218091188510214643881536079623454150921340343006129978686825796029384976591871270680515270714186196057390318885128243387268376641020767175712661092745822335229051299485282816135925469906691601850275940168162449823038608801382424988306996391762309396134854599451780067107822551932420508739012679549784401569898875079123165277472128947915317312845796906128837001975189510916690850679856760516587307479984144568492492127979028812424100884088477837315919361320454826303567474927756541385599873032159054076295143637885222986698185149670834860527446526449817637532110292306259036863585679948914924880896041265110733890966344359338441249583269826824276010209896594546047736523987118017518651367339339449442676775423211910823094237289686802203474395932486237694374108666028201747655631949510872258892022152498032458392717242795866773783806580166137292977711844665025011525812407307096301804069407496556849930872630421830015704120137922456787319402582131094546109369974922261858374651973232203681278216797854825403853579958685209671195632358035567447058723268627928206036487179366605594411753901808983779028084344224796870885659527161278836340432760800058045094816137624175734203394779863032236738284257194060583547437838904464154065790999931856081243084635339679917228812637887991600338337885884554719823167938893362837773206411466170259542085088518051290084316307150433107539545541990796465090231644288344740687197189354667356494568123543049612988845376092977089319942146304822076602353982432157616254876128425412106161133133648822454132448975453566265349142408224913402066175007211269430612496634133218785546802945912491721746410381867136215145716495073219848969572768726883643110536044271571542891366815712744283321333976334300050812739567187482635046210393143243199754919580909613656257002432016658070951887305899197870679368295244048534202386527588450776292787146342219301500563804572513175940122856113554368542010818237158690133941061317832929792041099132745410547130717453300472338395654618716344570340185560471813815780898159470368494257868219263636344774282218605964247457947217015002581733330227320473865732153469489387723270055569460064750620414873316115686228526907416880934990174691276069271989385055648400243370326559752936860238742696015916450956508885490208984849887625009506966763593812316977903451178055406673492287980647697339913892073568086405247056322186738247850716446114309809549488092473731800719660589269647674380197026822410328865611136584927486696312680737684133674344484354915694758172853359440100633227523057839938753032550721678007959541067981610512870123532518904815935617217032398625299239141178571556013166744954143136232251343090938117138972440195123082103278926583628502402959049404929415327768642359797838724580593951390567955604890224296007343177928261847519339555645937150468756199757974316901535721440668758086865545248500482735713085317312441357923209935819400847803553026661789990340016450047094910138334017722946299265642334547881046056477140301707861814478111616247962553239244068009690117909228513527314795503645016130130038280678845335633911351731410242678439770712448559939264307744563271909032088393518523660330523699761313173348345268257728496057439167155395158529563330081941842265634997617320668390993072216558028540545869711890122196602406694608294227814321543243657610175020591296018436712618332914534588474962392709765816939404028638746776848598592213820703486498305225048439168577534548195511374947189521246181415239902153365851133525354141116564403339910148171603055960643734286803239100314070941113262326323998396995376192271369735001483985838849714481681517149745907959017744927744511130627284201316358437641792093329243167440055461231142916162639760706635603860065608371404383030041343474639895484594511269703337758329055336412225359275249734553483337232586257096338433420359664089728564431789587613518100942754520374008880107278848188959516723126211891250019208737338613365013734348864042522520017704620726688200704465618473896823556471471078268263004521490432410553635545255918421354196865113739788666309750081425643198474037759145878959060984574260788578632023144025764605246372483920243154704271119003189042040333817000986422864341807477777798344255598930892290697457018720204681829416752491348559960619800989484474891662876041980060259700127365693936297540932085945466756234080461501354582155086320722660389340137673057625340655516981527778559929988241946426651676877611917362227020922783360525077048070759071803436335707563828365968139953907607270681813656575919866837510546115218083781191964755409670958249560178282456727368563121850209804703624641761986827177484782224634903278108854631415173718143297928832562499371156297157373901158363108704486025103004969469142583869370651203770466308242164894433580005968687302148524928795382422861000736420364967914869424254773064472810425508729193419606670525645064096087900244040642473114135660990065146788809327913849384648065461017890562764563556445267879731766008564598590457594504529363273229140340624093438516314025260021020853250028031418098375233896395830762373673342548118934277189269303398284120364951771760100346751920815833829363212820663131089145602014822523045528829442917400514389131182798098198484322902983869628251487394458203910940653280188754077209490747861179157700171903879128063762366174401440452070229245232045405762806965793085020398121837840206720250120266752955313083494353471936341772734063602625796031365119785548566937284640420468489277157780434586776100852896073693144133464873773525015924521197659754590876950206056175781935910774036258357653600808937653281370843694390227229865322218288437400138825811162971553457567403214986097554286886579874369009497050979860937702783572233883314539804939892101714335826189674003122527997303364571061607284968264026682347704558301545855748271713724358470994861372658713025494024495738558899660535370903389251145405558124569294137888271651990004376107967257280599874820479895678559388584994834696519493089781499727763473305857071790270935682275763063930497022966339552876337991307858593142078113351114320121026019873042167062601435758411797707904580838088498088166626185358835592420063053024643462899230820307080649410730415675977100775239855868675945731744767094556842689038531128494988018144774566505096148989915176299241642878000474138508045203295305391840976899463199695591278676949319592733662054309181205566924621527407866514323526592070708678795586416860452775357502074876714333770601191294031585743107677777952135902613080828983248839483209499884568307672417592994303402094399322708275483573885074199171369400498798586194234462796084144473566520379282953170163351181530293127230254356291055458639577778022116588666112693357407294436145574905637200712825448113557834029016048517605243296981355027471470526354293526481366238869584898195167904761247474468008477258871394552736710887847508425688259839636830667647664513308234299538406371493965512602596412691663955329422216277976078749552917485688421824863746324747783244929832354402571567607928674259528494338989676434365754823075754784033503696537687365498022398780119203544049128826835941953971843647255409053142105566632073204638848382768379261055003805739537940215136413662496749353732410440434862382336249204953544285790530654527726507220346592904432022017163242358313783512521095764152741244657762616754360947097433564007690414362218068299355151091385565737341194890321845622044387715270048211012761208140782452649886361038326508480852529514952263554264606718445430426533826668610066557716951714429565559054236819339387175320386411552242884740879638726559965035453160178728429959062489756943146572532979956564427538102595666725587611303086354595086848420817023090377601073137106234293378074547508237856054947987690213905665585892860091990456026032063782729076155397038311018008449011214811927779674839102728820575597820535088346150021903483765764631105684014250421063783316509790934725949942661704520723269101718680689315989500806239975869483897052416122301717289403904669984942721339295681261610046509028456212675739414392795031958650235048110471685635783540426485721275402638812871946209203813254648116170313586767106436587660551655133113317022718232156877362195848216856465284606970661905439540140651063097333651381196333165949030392164270853542280497980267149118956364251748913441214263615547808921452836708221694025987112632114388529939169630480481789296298820112380749013052942492948016114353302390080670657213781679719856861302903012993994451249846901001989193605982791697305147594346496028833289696608150563450566093781292361334905857805509456421035309073601958446371216507319820156424220132684566877418323310247319218685156434120327170305730660785175385097069171707917252855117436278713016009522089202424050305756402153727369592667997478107072793723912355777093468284756010763012791311995391762818615943038207783982432617319663133362063793496768750895240236424692319045416738623583604828374392788665477594859028920402019395937706567321194909910433528551798714035020307605578201914838828809464964820842417669924567583122624780703905576531412632602429224362037195329185547180915964431856852057882350103091076128060445704425147997589608880281259978623877435496599049296732208449724434582435036897803651849099512142294015669174534168383090352847796430676086115997636787204955057956365166938345210212057124671890236358379083391190802068995968969901881223218552528693485736518886301604529410281797360806895495240360664889446834853573711706079943054719216487594313141269759525166102522909575375509509337185449000729076761263467652916646455803715330602055347416205556683808723310114567060821971360199116696011772653512414405109362036010017584053344689875653490024475801849902851129056036281543727967628831238165774375176624564045783704964856909042818467414341076607549841146574215334379628252377393517758770399425521318169017399018616421413543927797334708765973694817101033181863768927283763660230192059197929591791482244163940318041477900282857125177644841059315644675363309241579702126264813042808389337706723982286543417317364814245629661807931369532509112875469498015503179945166912284138446463087410279878209558773461766677933200636161412998361123878526984496762249494601622241984818828441759725089650432388388267762115386944907223140800386409667479556596033658655008345015746681003715498121545591770828552690587827462680189548409854806477673225930833646432666789519813230343847805542571189332448803371027660806642619768000401457681926141234214210908378826034880398715896746918681275950354190406896727813951321988421183256109487473527648664367133593683737190716713615344289207252730570778056160659161544235891078464655473695634397073722178185912301094436923139522030101136740734570595261330293674379321204061599708906812035078623541278054168265823537425938569664357627109735408652303333957492497719953466625694281212119266748886652563151697066072400219396266842825154475614963579333658452377240996873579532275919009797415517213348453335786814228739938519020936782740215599914204564464383816000999065053718814849381608655035722706417743866297516789666554999878895721790262309084544806465185693092556964531722410894516454267967618197288329584139351338445960416728545739914150804959446613534398450142761805422096598486710994408250815132392521360695106267337367922332214259952302229364090476645961545055948420488131144131720464692670497597490599351169204390276051574466773968708032478040634377784167250219888494354098282116000727729150507598693656847220169410461894445826185511600415494510628158872485140345190055563466615244737496076611357787483740038862938848861019502812807817927450349584057529284529838909157649132473101056333147813464026504626291567537790921372478289700319632596891251330215246561205435837622686092820307774168700459043526358174946367245517897849317506753904640416033638472405464980750039300245766107146606057194951091402482327352669122149601607089722072205462881003873076229689062152629711142892734633921437857583816799570965129751212882470762293756572134890623618601418995950002939343301174633003329729078340263825278379605300004735592754684871892997206561365337515374779219624955179692200855731479445742882259242287677732128859806537046540246199387296499359435632302131108482424950180067571893986118972621824307783178334458570361181609413976344651627256582886168782130134255890738184057342227527909440150796335069630683158584259597583441339316667997304805147104205162135621754090487773302273969806564959009456956985365843208356206159345292542418929161730522209793524657122706640054135392126209537416070259881312679566674617093237174052362963196089365298444250743022804976641640382829257137163603061762596724995717615369585248664493172010960853457234236254503854441441271638476726283333081895855936476006163524985906328874450325511377681813053346646699501547749324209856865935049010621141299141773099804599788653998555997208865272973882165087748001986686031630561230114449331935784076334183313859772732345270212652657729626488462044050323775092702644091599212652486267716599659132457154139254001538116996614014497922059852865463119881458741918733755185509581187101969241766429242389375494516315947724531101984145080087615562644078821720935112593426184468303521073794000418382893605854407065172644916885787285452650728104911722412941522346848448989734965331556939326855402116655944907515310397083246234459570196856432675680385445193586873351496819597696008201253799008400105463352336418912796054468763570371065141356837155124483618491925094994141446246321784596766719116487767444895994644315839584871818846627420278441899928803275124496669648679345894132986023303482928876260637136445807371340101726992400314099962898759328239973248787138226525474190348822177498195455707963780042780145879194411890770714358011030266245429362515054346165151986079342385623906645515459086899700987275783385647691033468638899428963619169533138310635144431946929978952150427343027450548912822404656751683738409173741484373181971188226411967029514001048449736868836048926288540745371246015784688794778131708392027701850083959940135078751064535614615484503534678749015340275140901834645675419760454833086921693902489806750922992294071550692377787826669912301589909380813378980675092299229407155069237778782666991230158990938081337898067509229922940715506923777878266699123015899093808133728505552990599347167842350786739058036553895201811147715527516138372665668705503251456831582959065357006080657269902272143379149237524221958255515527390476641515242308413093279355619405005324441453950610949163270387153037015281008875408093329479098659178396540897411919871437341136512716438240524415842887697571497711414714279508295887029927924683321337051526756439423113502628776890344646636321844459217157587924113199632987541312018325222678696789964132934113176366538896832051191636223996373640065062421869198223064419813515321973198591015636256986218174854708888378220216171014912432492165323865576908527472547859682981249480686066444493519183037483665508175542257335268514038987865030070402899334381972301961473408648283476126073019822268614411798984367558389159008469991314054138319391816564308843497882991517174297486490963838967343065171217360275453757834311352172150182695929149322787473742572457213602566263841389526262793021300099661963003232522013138218844822215385253127676763048551870068314684039926818548765384056384831921002472231916610091343950767855513837048214284915101698975339078975632339921778903880476336813748465168922635716230718406415663249241086692396760121601081445609232133742914578448806124786377388264102086180249513057338836941585087823197098151586711709517388028679580151067880449339024806890990529195328446696828825455292078708090501661485367533081336907004801338828585461654064133202506938355963174243658840647261575760099347841140840629982366482357485543533590505361262742820018784805295304476986322636627829632741637011531118234081786739876610728127325778513921138076815418944404176329463049006186478075989126428325729987352871612774183368051756379419524402321288854911774150653111681836226989531900495922925083762608050033174333856378486749582231058631889407398076144969201791751393353298858853433644997913001657128680999951557636883579690344998472342604194318599122046582749564413763677702161143127001434771612016464832132927118257132879105841357861931189374595323631023912708890139129091665271923774586864170364801203295328751612012917060959270907773561674019391174412447124601417849679728249366145899072550082434997089096809636416891569620898451925626719343047171456304432399815568869354337262302614980035283716651359121693178382309796485222062854188473486939359438432529987537651192492335099196668931068393430992917742911260879728304331663875840237022011217239456114473365412763340270584541778577485248631649999170485476948432053120929273998661075263131976433765380295221416374236023722185067791138872580576777554374253574423899796335819714032277935613974470711946114165176151512388236279056488635894726860573344797283092570943913779516563058538904168168987692580836506882500936119261078911242709881222693468531985170663717420468096376655728936417132493864433405288735279025508689950937615120464984509308482094646064177940775927273518750614934528181767517108450236520442367768151326743193251095192005876749184930277695596540981225396357711694671126060236069439457213648076464990166378437484109735730098749733872155726959760331137128831583803062490323833048619521149826235866733363594360815330962043523180699058672531667967198977573967198505633203916276929612784504325093027849365575704663665005042353807000210433790543654526769156321162307081538667932875280399181022287966754927414138146006565485087779489944785505088949148052882658768844456627293908196144006839830805240372569506411438993318116637701630751930445002156616091239778765007387433986121377676316379949916035800294253941509361182877925648901997063611511833437732287805137817006854618939770780027545047057465744096115186501688721678158080161854864108089863222334099124749225808111853269987957362030363601202486339705294671240192398688862699835431092004562279169984416988321201809559455053488532617542549536385150631189625309217665291658243159004583496939706876586542432819456476478537355251530689891097966688781002569839068711319214254198866419286668754537724431761446354156657628714055353642878518017662196471266899624319482731009397417104259055243749687333036596872146018899966928025823050002504947431957887361774398118194129480046029505427368669231007938335527797500383591562081647286299516181415118243048649558704764203871577064527587236770808180590408423523775775754008846877561116658139251193567319094020961428901109648995715039720715905042478578296419139818646456980690038836467983679810123769463228883609158544301049426148760350379903441776859995675993305022532347652546889955258062893178117218231637950877845934372878641514463873034437300982480492495540033223434378058884644265651671117254089024251656807434576029571481282240947846055854321075345638218480483756258915751706013714681964216897177605495301992469530239019961482626017062848187963579912396970015944414686775318564583127254717439445008216298283049375695975213397439120310652126169622928117872149914975372547212930687038508756506150275226420337304121616234963978809943527080416693322721835932242791116573630925466496712499296143990750000976357102050913521721026748783818004596833106999955907782554648912836743394515824781528057461034151134356381056637703548798094032652665484582486845829067556435863245918075346077580169583997580648813770434341301059688439299179317417474286712514331325517759566739120611354673648311519793542086154722283275856040177338917321114186236520276449176308259943093916713016035555066396640063769917744823839840452727764172011229122906118559512750665064983546029610296574754375906955550751018593507588378946923408088442421040443517845101844946977660224325727576337213826673283184851041913722572799003023019519881457021217165722765189190273755803239808560285417910869633038050283058254155207922154675509988166071263796669062669622288041052194375553599347863223933308807429440316363392974318457429479645304848126672429605547789372416592547542572729481830358524079897060138339019218816473115578505264328106710783042538278625507357514417809437945152087696441803929450533710695800288060095926155424042953849392236692825186545787154155054376817216194941624398023669701764585168224184823494985612261220525940694686843355828800042360426716492051983003040063908216049484182231793780018789714732654139165969414662854460720116633852755083190003281934916500791575742541572642210731921314240334532607660005408832422430395364285170101907195968996222168572420582700804488458661600852468547117664403374541716972573166435712993493887181992917594663181328648661847971944939975673768896889421874125051812865226543689028478952394531890759781837842937386927112332452240270485501136807130149912753906376567761950408247294577951614725178334058293631438937472774496789651364811407002313274619898292467466885589843355545576042775737627609120580484802719998495539526723426269717512224621696901278008109844442553591517508360950391542809560322940245012534448001359071329437426440765715671941413957919227136541009016170299103199865705258409257998434141590790940476127073830478178955109473090662575049936351422786265074676659604091872737225477947297521215673568572609788566464575410138193018478212336515699772263615169997116230814735386874455953454013866559999562536246834629631683409797550456405010277261083787851820349370533279213894340837041728605351627431809719641851581334638617864058085289932616267479202822900779806148737877411733583027613120796025607848818904686228962784390204998370368536881027711277649164807893994443904092507590483328908728324142449335236463081679818407101984769366305538954028736744903373984749075859503560607200358784504301688110214426498847297177449594105845200382301253166078708859906630371280412152890785515342213121547113947843863137802569372757622158576792891521263000669716993847263443082846306827831953212479757976403014368143734615264691989502103421817625936597845326676025066744884671246096686617300970662524501769227885205690673590084316041245928474805668946978182767794755884701037881345716318817494428998929871672786857254665536773728311244461767304087523506505439172831961983050563809001407118907712213292090837662204930496794578667884181003586373834270913535280939425518198079349785464480249642736866843355216708089658368204954333674108689934436229704144434396109886127019621236168294238935804471970209738919920823023231464235056710649911360357731956388471918197698807100580670387057250153019061535855590146412669669192362905950385486873376121913721744271446155552674522825740005803470748350308148551071539938916838373110927502058170195123131177677851844877768726804213939286034213238995818513277666936559818064557155854038012159297126776864384285371888091790995730806801022541165164298547985978012005303253225752499741035431088380198432200235756740827330608396642555936595175830516153497134438263679902877179428908266042597494911477071422970252511258606039005296024025458262483257557575612161312795812812156853840855916278057092937246612436720588868157679076930350517895756393400311125929797253577754420056996640220213834735660376916954413189061916061446825181316017660986167723206634974560465097288265951275397273336869417550848721788938864061839846003716868968509185229834465775516415629814905434676268421144524839941312303852580518486801957088922618832522355364368736458347914690356787225982557597559602168145222994919737926897880657277499602061831236191259842299974459179319190700446995540584360693267316708926126170133984267188893421249875569902430595059536766540275330755030949068933593376555732175383356648904107287803731742673096181407451562072125983147245748301211066094797879629490438133242706116552697331798122204673427121226641381929147327894366091827878882764146146976422205029114448418441381849237635277149146906974336080814504292765761587542170524939409283863732947357784234240779548820953126235340275503505710289039431336814819951535661092447742704699911672378989551639046374983966032427419931139442903905760590741555533250655482151792922547642545087189622131135166993304543120000747182980065063873898926256489054397396866794321270549392327444279957173363591063334844185146953429812808968687408323754080262605943298620562918175441222290018402100592584355705001162633413891116472241032935430679924686315539002795139232997222766212995130994097950530207390559581191512433304040788524971092537241747430138830317970184410857045135768151291536244294925037526161101183732100465189614678269724442617804346498440708181946488570155664729124940018323157474892122721505485676173310551732867555555137275257228070158444430690911684207944852719275167523884694520140584365412441900688299574590054357430805615594652422881931272032923409249033976547146518111314592519057258049351511243668916540226006275545801761174352814314894999161467189352381443368464042767295387167526081339509875962077857277892498559828348232891772081177773383466334241884922791980529683092637567318470970487223370762475836981471774211480432136309414872547814926308746678478952455561005349890788889845921184102235978273731652128019748541341986977054395388749739014574122119048053900855254751776918270607097967712659724884419682338105825994352982382672363173424267155782964601050683100461379274890656030763632598102793661123570622546093038459223095699447464899594352803595728122073590021484674876096284970187989807161708718601131703969843543710968435176649247955442027422470637716000357522942761374328810277374243763384654818232425458586522993701908884747767400268001009673197266849558645446767079878771751353980883983207327701780462499327861888076713309254338928428954733998046782679145981967469019830683989226343929035718573309596628538845031122658632570149517844368139185358392042964337583894923848122175655021035540671058277268875751378435979790444914526917905927035088146718778168140149009915546216901425697803503595872473914976161903348045649916980438948284871605733097080720504665480348755712333122224862473301639986713795127886798643810255425604253579275162413162454955297310236459199301134961429522185316982957104068514803822139888376963907581425519571199359171118755087759625477377513592338703229940139176365803706784400859562468763995140147145722468543401280785856430439394706997121975940645921442901071293191405742653347134164128664510758564588123951140117795508073216367810160373433760157315563492556593937367165619355004588107322335593024482569699655583883053413186676168998085666828277132356870681226254846298210313176077180123905872553472420474152001617666021805882461949664874606456387899631507124429153884042324507560321404776242580365260920519148291010271577459241426287104455972926999565011286066885462748757187665066969779602823041381108469308787168483579092546278034944264254586120459971996080031663034795899289456325531254253443173998536945980583602867451850810533130476475285376287457097777675413077142430023253474040930306942182911681643903916557470032165881100062420718524757974698052765170972745153025094618659937285040116814957781425963612401478096837868885112514712762231791533148704487120579377655030401664297015076738855047738328881787312124600745276123541766657688170101149428992573491012356466763962580651127133964984228245027305669370892373581646095356116434375056502996315167974534093823532899970256271802165624362551179869721624983230956587196829602546680650000467162224023966538241855057306581446063590559554964198201139696528443930157393105206283089149218063428715535370059003504708646096354109788410609656603436535444906170070789958318056145339065047705274315664176097215179194892833648128660460835307188194805344217730423604084119157616446130913675931528639923396387054072054798847957988616996218064420153535317900447652558227276706459363505728780427573485589876829668923357242880868062463248979189584169445790029592863228882938280091603246063532023822312473773678740617940901041381533057610283008848864941592255754380946063025862676989173184615639367995770538251493415304834931224348063333168840269976702447327490618973633454332782808207744026670977817820783120857263445609470855485214265848910184957350318664217482298567340632852564208874664253405339504502310275449342901916000844150398495202153256001639276693664778095841265604290645256806170955852041871281481347434451539374647549634422053892610995494428914636753895787605584248419025831181728850215885837880689893059452153928137465408877753610042351014931084607654329094608679691001884038416225009088883741124483064612377523317654542014868433353152580752667346858217764625547987715800378073715241248408692569070492890066678114027979163653743339514516141110722645617628225991247884909928487298887052980830652459935517374082411336775797272335682680337811635754998347666990823837814554391621551285638557681880448034321321029394216240813548026230882224191231192566120525501613498997753721130333183980963621662471863300454136003383305305793860790211293203288717499514527204506239580054268931734818354080848734709388738861901021362175650259591135144212702101164809309303749416729159362456878600346602240033953522514244915160604299764794242349837796113498665910271782929931246528425630398244060789798697342060395170075318757863061612647145001003208115941696043578824718476564441351338509186208978574621805394727057491475888584634266518241468387985808048248820805502019288776349020535515856240018934643324268636634117403031223423717251943374514014690928714729058901506152389562284615203146170261756675858620951547768283562545064316264374580760714178578002758760804833259675887885318095959658148160080652129817919584398592529518445846927246647707609151685174638564718762214919321562301012713105284450748107002650244641785872435677992213039965218382791418482652816251046147211630479078224202348421762350643914152982300554362570147636995887845014405130574818011867308723759652465204643509343130396665585629392515681038169466662031363943991734489671398298156274119882627235109525122182170475068625339926753779784668099954204214991134354070102205692681999404251665893392849856566734733257949343731185204896148039890749110350313946833407778669368735475491107761126947029878211256476568149156669190955293673205595772792951298209071515773009178847796337430021458036031447789062007715549047648054242705131677668935326694373590972240083159402375838831476354214044086042129957701653672965990204836305777985457706702819058718648306138252752786007587907024358743812118409743929083622398912538931673184265955965954849588145573527311910746917982834574376785884144398093699453232606572599697588242192935879145436934910439042263781767557322498731475695701341604149887297960683857414839097389448234081301095658301659462807191784479826332845553635974512187260332535781792406870010686165062027823681063429287414508137306095489089247445066227733083852681090209081324313151184953359696898903910317086437143284268249064812666240692670421336716047057426553138242434220856097935006501412683886793330241865462230747202532071789380503171991787349112267762189970847823608111600798019560682135626640924595140594191988865960527804596189879889781246044507520439119510874257625350337428534435996680254877211293856191012207429651120888429546855443925190904093459699762322513668449395939143105822005497761651193236335578447738700727516708877018336089731053330616740094074876084857287050254039652206249843878079142123292038061883104817232109300172019148512553721123091515719016127137406536835464034590901751691907737631221262572265866454964495912374961837193955151966504573149034869814045381745736975898227511377456307867235621697668252392452981590467562185285845589145301482226584053595263909853937176619710158783873278238375584724428825363726210818665740744020130772139829403432459845503488984691608935046060460297207524305222505088484098134455999907586813154752220465614576623314045263269653527929237979293739291903748696719646307180607247847473965505170974750966062602342903764684445058224722202132386388557145132347498203499660406621177777297860644341467366211106480533161430705465164829466033764356209291270324090210435102759540397065472997927210896183967315084703036220498402080566869922524659535837374960133141790035370052464560586947767468897309441369101074420202722385751420522547081908963499142194431740411237485172889543080184574091031999461128055643344226228957934051736502953133602831432970249365622011880738379659686693856304036554244937571974210249374057019369451384825698600195321516256897140183511652549600636011031202819953496704616097462082917736572997856457130696516500162277788527383407259835596739708240463152591767380422974317852831564944495450369564011093698558179851150272119159176380048296581307898594703973120653780203227603441629732969801205906682469014302949399525015898904771050802538351571584280517815264264006574584027917036556283411551999177884995168857898088140509686764825608157587168921378526143482401986700859594918343799687274938039243990012408929267645452342219220757841378533424878833535474932468597801974307389167814296105044449662857971986849317044974915506755212791116158380570696819657259481529866721333525808676789995964951596061098889306228869661326312175575758648326279685711415335026472140795023598595852764820313639865562813744761293814847740202250445085912182509562477907388965494526502037078510053115696562202984993747508613619043976299599031311900804319752458094000091455821745452662580527403998131693257001827684217223180514068200502309296617727018544600370433014323452516468664561052172069290603672027333539615770828488823728813588940453449022699453876878465724857819287558201702633487954178253554555754906825006997973950595046134205343092698190572553123033871330291285031922813569639601283853455211594356914097746015819877741238198895866727111427295831082708986392046218034537945562433971856249712714095792596192307818840453555297977742210688936733885548588107223676878485938225154035440994822529059283484780136013500915158114532921442353962987554830680155885316596656339447818622239365806973126128512002422047411433759617769910633391463758052035815470306229527721703514821238530493265705844611319656225452385286064449330918167471272369727202950026266949386760673907235744132686071478130632796252252135834514617531970735280901135431467773945347102400608951781555830757211821507995005588377445473192612925383049981743040230702238909816076153110992888652872560217949886633964206182092131604317680117781542966367350787241918340580597801941364138016285792981832086842444697476095946754659351392719202708606667009644691264257896976005037528190966153756618554580626435229492165790834984379257431971587706468682001818232048689982564563340501384966557640297083448061878669689312163513396687831362351177497941993054822898661904006471543595957922754427777943966726337297466277977535731960843472491811902101192943925903802602648417484447820051685684303466144125006122544118553603669682994806572139535133407886924532705912914982801741121071884134268787888298002107119318415476906323213303566470428019983416257261051670413116849386770027750949884410851369316956444860759317083546767369017773894297315455114592277011103608430557718241212234032928229874439864464019195609230001439499345306044257996938491772397816149451131204204868637916752530634900665239580440289843539255578484580722003320292503465974481326140173373348415220872649858367236488056433128304693053048735390596848977694106624899681646551018255627690892330654374747732515748234642076182693720200111288490837408415666378790491771579162617447253356921102796313636396193338303169096058563478651583641040952185421892539384536519000945682188235121967853491290747273345761908795277007145342964288577789197970051773733189425647467787059514167095015125436325458585059092777722357441369061070592541796579407364489401336846212597403776943629267107864806916569414494764962755479752699750611239290659055560299806182775792321198690451590594249076760144944330214475381107886168394173626824737953620485786673661943401837539950788735707695697363348906096623415203303273664416840915597267506068186919542897295549678007420888087319998422933180164226391830114079597049126719567266193876235342306778374503739921556049731619654537918413623760136660987343740561564616345985238478285233197307913701982509058532692942864012889661556236653366808679676269021933858700947062040850270178945051681786827703193427843070164519313139114857909616968441606620928373208333878676414883913529892584818453086699758841288965867024287556877312359003496164995760829237752268936555707635413408265577248890243575485397525790911342017983026115347451748939422823882771044974234435922820366214729739913674036710121597094308248753447698010669769903141940785020801000638451622035427489532856955258016698714012790945546584468531729766388592232722802392295725516217043953779868091887085119555014834500653542058958817281907159463277706136347609047316518417732001776274966861929830048478422225166252681241060317143651945672834889281095890446951076541036189885348326694340218479313476380613355515202360217636561827113154532531524831850160025503530023509981187456840139784132450412924899510635618839886059399851860662669837430682156089353640803722105692217062106540290334689571523900667996984398197199449488473637992656271379144085545126277376803369248790964745110630943048104744082597529027649301909961828672066800838124770828042534854515494482673351770991586513972074445355962906202978965148227996438228462410049492538096631715849474649687732429417148601177579254648092229392563484734484973447687678972551867684457804193010435883847874498471915754661252774210651983403688768217709856479897496641796375853276088948339937898038693590500388591500418224769262139163222115117073297407572999505921614195341795453956482580695755819141010547408583669763889748544356703808877762253423725236685862528686070111207376644417703475923902205402921183363592076828746819163573443621225846855184911737828149893317329432868786673412770941950614067843095596346611830093772355931550084081882042990111253625495158658798777933201606023025399639582088857852464068389306031488155118818510633928013806882947755338685768700628738187175509620230167890829577299370394812355322511773065141377479705343893796451947762336804445661037728242377464065317471912285508752570124855530349584254775511192310417412608960417645304738448618495987688244554949742237079627425226137859561508152707173552251406092471466287707657592328000063623661781851820146612996897320450670193879122339028019679284857642151753605032428049537412601702757403030534227164186394957860000645995239276691728895103478325073178136744237372764385742521775361860499615778451640562125120075711268692543912705480417413062908526548019648798111143734157554754999170822366196507152797220508969852051364905355472784482972071078145745145684608611157295659631757938864748424633163765649448116161921604628737029040409753672886130662513809093509849143091520136859403499036297931364403312590118696488012087866614120892897810507017559263159328947593335355585396153573748647327788469290051483756269645692713830108719298422825611441326287969308554351482195929480670805922268245906695987049805652022632188600045813384821338380107140119370503199986558912494606613140897994650450291669772328830601951849785565324355223479476176792576544582052660516799447607227055026040253806930549886106509217465565888873017888384128959995965915932279304573808414378982357797812216639154001074121336095716896366700574845895205479261619617366617966892473003181633077684291239817740029380690464820050593056721097047072358576276559715286685740580991153560586905724472242083498594270765145780433987934167957681379636208339039508329344955805953637604854622311362516792364381354247748419480435893321459881942136057929416741226159998361085501672440264935290269294762413425825638723031974350786160646176951012185410632203081716611241488676440338872975765844395220221961007374345414850891687133744267835952705613152125262073869332183059356589306210304929209535538145495116012146419843979390371896439869348784158909220909390704275782190593570943076723702438900534531209670035089619222429881608768643298293971488249604124465132808211248922418833144474926880363423918296667166282241567818396752437966596745811699149281369014502279780135976931386539455472068457777174591385361784792669537103695089637722790612812365479157088869076676890819374934061036841067386005411002627870087470594710658645143919698055970695055650501512339366658905717331336447642130706567573199190393881189382530752108828595161475068094688392457400111354702747869821686212743214976651883003196033345622355344214173681170059576634936762232906918488032373451924349124656653297182384173969198658713331341207105170736834172412344723718672494151084270496155495037955015287382248605384606767203928758686262616984382280560158757866830925122304015998975384892283600959807521594902580747171577353748066900500153498535903697672297104371592109846939120490542624633960855082491823286584393402629382685637152596238947447178336999661802011547882499133236522159566534048570112325827708188621501307157793460027439516892752435518239624083915012347392466865100222767351541533981744380629368188431870219539467457880683873304502669934820474093085095294008870695181863254835482496626070665024995646819410647040712273110042154418554912316340734019618090749872367033899749934392439916588065128366790564169573652160502822448852175736113317429473563577483084783309849295743057306045041284029711489736552333702529333285934154488313740058107262424647751553561189773427429425968401940681333381416107490916404430780527772977009382768736682692808362834677259100328412812893578761188653303799439157109917313087684148298147316743892415070812333046638666526885171522877349580865070902110271308011488070525108616418161525567481710478621940010561280013464710004896008161813633986131437595378357344634700973802239706673331788471217421662379783395050849458405648043005911201841730050224196298113764325550862599366729792121239683362625433079201974575553798577860333993611397314797358588046748266319055503171475107408265754553845260052439117163947985454385464047744527444232082011580589401104109453833092047559831301278034058767338113451784704239620884935829339947629489274926307615195947580863523050039063526975508973719632143202797580886958529773162198359442566894666349865566418285278405307103946038370553195307057814332061654837208763730542151049819639823162239461555401624481922748898899154818161610141291114223327424807105120278497238490440264296807698034403160101365988085642296075406956955713350800535659518884145626531983654599814935470353339657880494761273209004855311359086974714535368901571896984157754811777941076041901914565272888404051882795084900826453601324291522888893797519995599859682889360891127109103099730675706218659729673463984306192842955042921054669160915418280351783236841552181865567963407111243064385515415624897517639771881262098408736098299238363730302750594187706262635737848136886836829333969889277444686969662949968966027691600369860596890471841716000197184123626519979301278741913927227986980227245952294015243220840481753981240082576371360670303344776541140427436996205412514504827002105151741189088254926097747214620553667790075520087998923234653592526127377276954567121544499950148452685432597408757444502355950317588809467867062427950496812231738195319346995561510042092153608326032153069185727225992986003953925473431806464770644415440963085983320989428117389795068274955248706628273280536479247410723546119459442653797874986979596432214495014352061663273608338778957462690088960941621373442638200267657533910341892476105635988817008353964495585219224076981305252173195013237419645342897616581354073313026303028547802248519255207832323745483267963289071256274752461229292964140942485029059474155759927512425085069966347353764294073839182074190916254160972844591625614472721705908293857676713045438433599082616086284671963287516028608040353472085362193749494136655199150853689237351274850742948144519654169382291793153091803782047287223894558772648584565835836888354176105647212556438640151856876957798827517422243471111552623436972117076334504665327247663342378211958791176157833972287470845127988659924518327916414459828021443727018946266803579233337517480641049931852188455068211836085689756325118138750460942419557443263971984310789277524723566722883955273552360662259878859853963287728445468369492367606484412273536829219132455470407442166682067461265670796430120055351599047417085461637336202703865952273806423126218740626890903998167108615021958265006449778173573185052157715160847631314297100682482491391624928925561263847673862182333452283028570138155437476505784656905883948253134199813962957362501919857105808466792364911059290880550683382177183709440626999382691970682447053200579454083518610036611615609450824239865041998731623838357466645452188735902612193453160485833921266637725062085190546236237337328114258166438424988979859667954175920036913004537037196275360687183013764812127410561482448795986351085005487349029844775297575349396655307150551544103909386537416665215918335499738256689326452686208235962140239634097122426826870025339558269322438059983242690845304781419914989311071015716947495557635219458745768629630183899058242012787867557969347231850307446106034839145987949779487113913546290254862822249743894474386826616436068318124885987232687910766162305380086029215833814432845322407462355418799888174723812853596838289500620225246463573161082663603643148563553160504991541441308872154144331745253732106513961197330694878139130968733186136669619394025720049930809999534821942765587811323521877812457183423976468069730697934060813830189077853792276215484664088231264298164212394174569713566615398255554352949817223901452223591925741943146421826647768886677250217123294152289784461629105662854200714538834167814891345667445069291290631913561846915331585581350764875413218594557457701564866526167466208580107002355681687581059596769989019854727064175312884874941390708664208080627694450131967019703355181004171924251364427448521978153703577709617978036554715010064181805027540735836312100758486904203604530637430343887615238289835573728526027901096581135839900820251064150068488603778514517039936269383226188823018995912710008790754166287483223944522850239184867913815692056863543217041633586370353243530386031382451788944252008048530148042326400652099629600966417769376130820806870201308834720999916645580574702972650642485903100718469895310690174322837847571536750984970434834820599312232247519854853545545198084228145074641693251741711660329326677622781908348972275100308089752520503024664935126461278489087411830385877998569663906345052002212393452668657992044238614847572428901051143288838145837001486782283330164072761140369413621157371699856058417354456080336888906925243533810539715931504525920940128868267619578511313238397636156621285764826409723566892206504594883179858641010564381869889428992763148161311411978394851438964020161614470282221756482734200646153016170156730451861843770521270625734225871506289598548861762052296168865652158377842471494798664877070673248179908424974414130307727812217275703938985310766265694827619763328744659604559350180212323136168294691051653679961314965618814230797900281970207530720413774496674530625110784565792463800382738568602245895406143936149940484842869698064832621084643807433365583986880899884715142957010145120549668428966748661018668765129731396283214410268341658603599114389318076256443446092747502825373247224396358231441866189835337323691680869502922048143623720481234723921748226842910666117849435316725923850410537793110490815729580082189041099653740522940462019848205947195654684300768220373283990614679207880313062108074288782674565222795103975301854924501080667143565220340985209717127515883904861311294666733964099243492647162312234605681600440545721462865662561689286997468382163390433176286370809582850819096974176212074055085110018153302081718136717685434872720891726067431810386875499096428742804106528574447831399487497892443435373201883750977953460440052811978526927544248963257416298794288255060763951651083871176646737663875269750883793989032883574021122956354320874374141624949105157682271174177119322329453919740921365908600004762024328188811611636449287155599082998145435840371709565305275679006103858220050257742242925697737322966093854673369294496815432605685823408507390915045923150813226767810636325059586274551489228285654069452221056355802862241676405576952603221833562396373988080142461187550546095550941227200200166732907897800070963848283124462955965450221207433264365718697134514468968889229510802001625680799512184131609833097021782768602448714433613144592320601473497481486913207742459736433949200730885748206722411847926824053304598692754589707213154584154047723222208392080363241272176311628918816433940368693171355826800063517320974505243783052633429820515857292937290651440822520931400383344286009437177696508292941118971208737078409355275475946676077007395829963258388610673745079261804330672514053521161337678960365385798503221845083723457258939744824492032873386027992042012799506284586176929349347486450464919686353383914495693293534991399224536641881006310307109505687734454230964589543614186308762414944474198666983477134053009577978720792914623896263908846392996906393101638336383213195393793042804984875962794959779336483584800378416101863317414981336434273879803025779702183088650364181062215710292820215871814456266435519128923907464494910427359692766523114695665844581811447637737523501285931265925760750556501984335677543209175069011358786716195493655202913909437717332015580807227333191001779316519681542280883705765075988375970217541177380871379853389628968302629816280553011075577589785348238548129828105014962885887182322180488826018274616448790291728418400029367469706652600862828438830881335633580243510577635285933515444380101024499421747818965531884708737815522364407145428295483213118953754081821607486597977762279102308233648436172336602917193399261678828689800578911911569612861137304042229962444456452288117974715366357914615049438121796999117195533929154679858885690828191103147183811299678656514530596798131908004221827090056930448074830083456425150236093637525563831935174270343629268402347764138990390433623518513502639300959664448987760417437860381723420607907143711944475395228435516778885709093405909842628007555002487258306505575112593538963151718260658460012893268297421617913081168782127210392175796983370070556004792659974323649525447559862348447404096171475662882753250917375915460325080960114432704119873159696800796893604075977501803740941714699818850466289826305034062817302823197991255309183628077992511330655577725895805497219375476854503466072184115570530967474247232869920729495417686489051896687507736218429791511575851590669815433469973569518765532300615728199574087984332687865483877037048388679696344710448810366625529586283434384804626781221476425166019764227020362945087987909230689977626220233634117711820153990501730714939961155484037152282685779983851093840045282636757612605639843913529408739455742776484992414146858242913857917756232954020168247866760021021513826664110130042178006234432179195236861776961388050065925090702529001557499487526013723194269628376917390123280026029927806831063027349010110031406707790045792769827931368494516308950918290483029650019089283364988372143961807932087423287680686490992044495073598605289572116995190404083389840835633066438541288900714754386656707085018469537900325716436271571357347225105929586511098406845689715658254557256333555945765777476180201568378523640314978538098315662531858094257851058139046154652480727198329095772958055300883576439354657145791359276746643254483845455827309139861671777995943499455031747714365979668345645423457823495302203379392308962273442866717466798655682537325145377430092237212027531693856659776107823598018863075075604083677127418714589669834570275384870360304258428021277883107135113277277749920464830373404864279022583676007739008365615912219662842690363666029854323536317994514703396394961386871671776305654609188565518443445168903346245846829124143175358657498912475955608960402921553939774464288772795162230612464779308826542357480107178091527740165487104682655357030989813108310430948667539415116316766582814037008668655476438339770427571250447492214229690806227876085444048588139957127475613019026375150738783118851441005371031418316347433675117492320531768258391503423545058602263058687027792432296916175459534404574473997117121192077899158121806247094415506947273514012345502046290677833781762141918901469088070798181006734859396797266934876965238322019108208731369657998137760621433456083913079919949161884261517662011516330133652402686506039217254034345528675180825801046290582083646811073518337297519614561225253713567711887842519940235439622424775173733453533891507262882321321961008440631515479985995215888847115997837510010625972439544429056478372428271127688613087297176674503877844706050498179263263011217932857796302134172905845069384231278574470982819903689333323225245658784864990971750320221672852149988277546583065590159584351618555205489782673613579627957493305220111916108420802369961389004399328350663451816407683899879224132306415886725004798621914872760913836555345671757845474556760412913322446095514831253536112871452107430436355478982136977200927930137261704890828039390999835574082898005613032632804878407025880190853877303188187127307461366420509108749612419017691344997077457528363397832315611035648212470903595368161039384137568833771578279382941354623916270576056022717798353211081825134419902677286104968703506073372089355308640081426599165087223597269462486048366658911303958507510474494726993926452646055226651892497645308072131093520962315760848831138260364791668246800841422358877741046115569322707887932687436128379575768538184074677820984677627367244691118916546554304847971042152397792892067638966358963835664180589442147453962262317532655797252681466311769780129937110982453405229270933003996295137144383195135057317880566639610421225778725280132528384833082997288182507498851831471768420564258524847512955453433867631293546440777340500072199683801405226959470919911895518840537007723165819521053047311491449137585879146562388719464798452652848026896471317271515010401260230712122287922468881136328743346672378205581117942027216479225653704224487763296970129276913150042520225981080099979885590235689043290231478538738724020947448385394177836794323325613093817720501734309796245324951033905554193731155678109600573604690408793506212987488240528497439396469465846777436237028014143003044016617901165797602697905113693090919413004043992505664956242468380203405089480290002637622005786405521562274015538802800346895591754312762186131476052556899895094989323834728790825399842346397579120047011707656479780085662647461192149320181526856763348584378214733117677538206424894580965820041347269571623703837207793565976200522780225182252963200325369276531984459658381037550792834252785825917456435006260843441631129701955375474851856666610908213017688979176081186745294529881571076612860214031901965386239562915131391540587849663072019421858020705480546447754769556787208960159717907361724140611419772765025290138599281353137970925603612068498388821519225181321799809333597821317510704838060219422357710899459174705182470860381957578800281615561611665853316284726372858902442337220872462933270283531749284100443472630417990086941692873722278380802882663780139205329286772928042365659125645148945492893200840060968418317839059349023762050002243391242619182832918010847706957415586736411928012834964582068331157546262339166418139061988522457343683067739836101046423164641331355323522737526644533820300409551032192889761040287882571654340181783887410155412948949210975077746095597715247869128811244829284257197468820488565490956157685128610593526780265614393833585921788673566005965300985365462064254346379106298885738983183543696792192647757803797609915199776315697301911388169677703831361743164453785457007319360521970015173541007668696013054372758816070499877893650174222466174381932691928624293010619842541634604853306131224444100538119042170529502102039492849932802291875208800031824083379536386422378318266935454676378570360640399221330699778381591952595555888781915527331155001317087949016677272842630344949747135658767281439426549205263006190800059109449562185452175790848418298466938419495588120747001060376835634410332054500161516572407201252986049588947079721834259701643847598486582809808690549036772614620215398636294163771793047627218313659680968500291803114107970431138118641849141586975849866022454649276513102872758629386704002130005951781635864407787481178065225685065307135073424589446026834620834580313392145354223387544486303860708727850277777750867762992022240271074324591340040289287209026586544735621084252719222866313141801122028687658119592727128351324215088164501912089966902197373677201815546709893992735421991162731652624506949920028485236634716192101353179446018193273960721248873981575039346181702082230279563933543167655527885029351632734594726579510401149973448237742065875730346360250516156139272689820660483210855423220840720240030913751582541746042105745596153391984589002739715743753802242641556777875930793480424536014455008046344124054408972659399663300799797259212922310941947078384204183075966255394324456096358954142256613673796928542371376474952633755697716260219922673491394272360917846761965872057597033676399659157563639934250587889437668301428916417573850338881007860021862503880088175428204767842725956719604840605712100796561649269169969392085577449942497756211414133332432379515093640966413408084475286141579712425085059258050810646205124572216884820197934411532299155248204859897513010075598847969586764952488027942323124198073887359066664964915113962924488710570456434199781743710931692166476206909405665634791222087667353162014395794445762166386846601655005339479315808774710764764454783961099927234890028514579797443446604405111760455861770084338760531480088536735702115650361045487992840375321759148201882993997086526906455381591739541840830826296942142296036192656880385459991453155319530519391834550185884549349557882374650985608212984240079518041763726731295371159953298713794809681866455468851443625835036662440852558593062441470020188212204642192591723459339896192579016317752923865551976562492371628465685389344727069088244110281325841910775755054815966754311956994397841516332406889407043926608112156186190253032207139064676977326836815066112376928002489683557571372311288425827689287823109567811899669697740948934872414661497397279494126610763694029582362830348242237176331997184323999039812849393985868272446460540716992594084518183571889109435126417684691477909225283783753239560194745349090551016423380781159966344826207141587238135420324049317575753370793509694613482852746513771468342056262363219717296199917086663830438150499887260671726765724838996673949347818640599731199005296600353299413932648526328093008221083677050197128707669900247813008513052729668440606101643782307191363070494220493834196009535099939871351587925219739428061513565643134081615688849017478248578366068004039267599629086309379031115067276719418768824628307518879506897390548979889399988362663176223805421655009734384360758921424204680681022487307387780947877235273901645574306789841755860978059801159655866608180878353193002712597379133589578973340087634431188614869768378811215108771266775723101833251113919851666507968096448532556638417583116694938859216141667456755553823786044244557126333966772146224467415869012956205456527681047363682609789864963005682790737691986315601291614256930647810069891970202265386741626030496339971273667679574289555663140148811846154458200759316788356682670899194556985802409067765427444507985684535490547587810827427720219796600382020997865951969944929335431694916491705544129448209296760925147990322588900495395499572299301806217926211240711016220957855270488860538192842360852957014065767422134831332602634217705437309535701089078073022135498263628528878265586915685634662594731325851956591384689244624458344022770496706653499387235475209097706488170900011063912557187406824704713672257092171222867211191725322046914596922156122975243745550688205617369549406662733252604137044629086544615104425600763291794861451069225887944374815778912508859111341722330315674973819208639722065135201582800869824687653737532334466697837732810111452619599588666501082168815975949566602903527583321493728643587459967647652582086055524473391211712979767298140379890972865069764920322099279240402066292979560833334837097343711038313640741164847600506985201567447227783589996084255788427247353061170516020218645681801484237712858766165911990118688140951609402458068261990511296112127545741192753463822939947534991074859561410795940104716129658891591656799255444422507796929870576970584791430401182545453561117242733713999994326721277193231933913000689026267852300420447759813672847437901286717096517647825594600907601267703866659554509740468485891271332399097293379835865350809726709485316164545307908715735299550751692425027520125482063398833903447828489486253263843703940445054343631202404956819485038629028569337191554779296289884532505765976820764344629468981452443342055804499465858237505365957053622440381842993593544150681350709205774449799905166769053802096217663656068357815873203792310267605286259507765452905795272104204138524615686057656282187475538902520578508007406933729429877374630579256993775040268566158661680407615422161938897946385363383112595824418797097195495224074795953951942297685825139007695483654789933863568806182905679340765197580246742179102503322169643776004412820779904903233081231761123799725721469283312184717521295801191664227393514437669837519984530645787366407773806996529187031231945950041645141202258269724698146148818462890498727283619238127204197791615571313447996875757033935401932546128936025654403122892178220340954344388369354604089544580247901808476297034197962302160294516112476916501860059811641727438266730728952978409244016569577657255557295761302425335479095067619819197014241516659357446039596736185325510610079244346653294418180701214764603012486296399753334724745983433900868516046724022521613626334375200406632342549930842141858826098209436157432408456471082544310188309077262585702511210465516446200720391537464739321529206337979709851707477303806053628389815119695460644201711392956688531188328062643343170171702051702648528131841251634392473071713355495060515867136110105805046978358806115072292612757693952140803029828397043141726570913295082911253431769430807546865513292224276499041740474813410763681949573977464379686518304446566839831848419482441760598638213837823531373045228594983101017622494394053901864942713232427248943202272085052667040161106549298027268862995032014078355006817832661244294733793470870403693394744488364014630143076654888691999519065406311664767819404973010037519857054167252764702308591992273998423414933499839097864034390769224272933766892660493494416947156971554705990421742192588257534259299956598642676845141061238468788065445791771750402776282360633007943758407436694813190183015709126766620798933170017202053954906864094514977409774109437345210942859684717270234064506710071428745863558686782369963390799448807437608835336820312113732445157104041864292587944963777514577235117586608817493878267538776413037795190605040647630268064742690687941447448269351953938097017849673194645289143892223863280101218343141180980750479702438991935727257052706054704728147464744620822245407471416940652069695167600105591770136489713227842017003356643205551146221793313232221711932737347771577886583769699079117113172835374019357198631824447047615448184577025234412484550968128116664970906043227471833668098116783651570046801876817095688932418440736231060256627475747969763747209063548402949173472748730812019505270963758360746254547935295423417127268198133990264190257633736116569738550874413024110469983643222100126772868218094989076236868926338441751885626283212965994121375179698905209247519987894668451205783735845043148908445688161384015880396987292009854086296947132259863231317127321942891413549432335912293724230966015461649969855796276327555457798445440322304090493465934666330885736959602328575018026850212000712714207655565772640798302072919480651293602177611360939113593935308121773628431894417396213554536050024613878796067604080531693002509344182571342161361444011915228953065300777905397200339662894179465964177798355925342228777465640003439352647735178351593305571994715981212503801755954757774595152071390843361001153790490150789070567088184457411450883051229970020996961130971218937285330835942880990492700746796012809697182928394128198960521323361070521443176014995019958953589718336907828313863423685795679656341929304976981520997452887831214597368460756747663606003968791743542138503489532629582054474876924133036611832868911277831754602912791295567600741873322554290824475967304300804589663453378198753699486335053772244515901054165665887069898901375388802432758515141185845435365298749157271886535640826832722511014700909898627167722415287768986226770369839699597828165579408882537183764537402218188411874481338287947196445493757002072346962533601592218202808179726049128292420726712980024237600224648500879889885723158842214694614749102789155465212305942486102726047126981324149381499017673574896094118268050477173013164589468234540907505186166101541070179554175975982804229386271555107777996745912246616384747714601117597598280422938627155510777799674591224661638474771460111759759828042293862715551077779967459122466163847477146011178964858677219186104417530731906039973098127182191067244244194814711527834303920653681221424655022693020656758812764754343855734742632815492770562660066546711848765207267335654731669662177069833645835826830207766337778647489587312552194785990526293246984363824685738723284277789839925737597904038285297787397684663809624175477591483096429915528145165803728244231957520927726582693230597524612450564355755914053401429767508244334746624398583437614879389964144402514113002468869371952157830448693443840734559086690946448138235353204219253479168899801439178623237601755214594654274459179747606361665240186206188847558648738058308937960029471475549016794959042815618428725158529398298363206691979956738947880019958798034828312599253297599105020735073626602542431051328629403495541763991094763294485429044481026891525958952145732012266399103321680006863504862007357034858961061790277660718167706817936631804538237919125956198438857609518028943215796521205657611093989915496884031377549393540856953449908009012703840172626180182046673795994682954369719423257922064747097589525107002037741719426389346496757154272504046938718835727756344487694459508498638877616835505884970028685726928054212917958581319142283803871372827552868306454333148688092151697237876013755279811045966988291777962410970709137037883930450645012459886785895788637091048216529811520583322780817799156082638433465541976031504888419198608484062649003995878169329427061962297453127136532694441514636256973427524160873440269797879002146362696262012037753388367754969157208241546392424135057574943231795379554632385241993089406051134109851878055884092735591167161670187118155350582366098569193922700064682288358994486575226714800463165675219420196618307034521639282318251127783428328954142472172600810147875803021229475153440371272332167086572434181080477957841442651899778860114020271232948237623382689209641111630110322175485080943353504340776283415930030005339134180446423526240038073951095137011158509534732482237438035089352893521658778097600325712128354195312255082041269876035418900771365110860471819410808843111074253639171389881359753193233465157986477504684575869893919631188241144154303570400082640126777953841106665096407904987522171722641564904349596267065632899045783760113685132624683460213484557564626077735218836021662216832732675246600907786809348433879198156466120824848678050644296958460210293045372463348760259962242700993707358710745996846332376105029378740807906736268831432224002634254183494649749433787642510786294049435597088950968013376240248190955811349132979136137997670206146980435014907067331506378762402066239070271832790480285148295606115474069599725619492966830210211930502506226826388089654062984556197933891284197588113582007257435616857677236659365775185363740768701008248672732582705594735875949915271835476599156303913785716729854404027517173882658738499177463098812776933411133364070227666786105071688504509241776817981250769109509091441158337030312240850672305458124543727125939201379371298950497688964104658348507481945401185770235917246901296651148215007434229928281222799787375669920071296284554728348592496576820307884679506470219473098014949774430994977910414662850090667009042196029866331103011001113278230180588984555896639346087537285190743600228423038962151716195641806562700099995601348969285573932626572516364002040799847141233603888674683408729576146976265971507573970514521674038808385420153198494093562083494180844821651843907186454857935411988652622403271917749385275782250382269359705400549454563248668816693702136705498488652755267963759254295311527394338996216801552906883513703290248458258150712763600548356859654294106517041963038966990987130227585345904165117509748613302711360435317037171841680987314181958503156487077214947885462800392627751845665043091260341422184230421013314028569150289035417750909654228140833298247325956328247018868131890697734122400982457204778102124425786794196217970824549471516573880791213055942557982936591018592952145889198973641057489089488774613063868425977564232526863463439677983839121192848155904632572684429806903801848937387866267760146675569302143175290992680576999578973176289166009235193383288594182243444483733745857062267504976827361392921256590388559093917896293628679219569856722077114516768711517036384009901803018928779566852973917705416096145306993759159622783391711279810129843002774890935874894539811735338157684613950841856380458329867284936286928780127547239866389241352820450578035388536484709732754492568009427559651602910345775124513594193215268950901454459524169611369806470811023153333882766622987028410072488660528760375404302185784296422316353133503406804027844414752008268900378635478415653636895673116883950433545631780101661551036438448861498271395607957291390579008646612982441522813477864422645334901586371744886261087774283733758627720819683069638318058811078938957283767783011869997008943365606245718983815017674655124808934944770008373453061948200224387252360495475711739466291361825244605762600948866902565813293113506744377932320250380205435018529949807781052599853044887550724931255065100388571908248547838993266028603373935687364455746756966011919160143880775298766439451357947607144709888932776605307411631153013911049232821931105880973670474323440589088285640026797594353464274210784149061540929624083387910815657899094988157126902366200432802152895896157752220606214579882840491823383657351254312693680379872686847552369200777721381179649240036159023457700349411534068335573824873913135391914758158527625413375899842036188795513807317346224477123585367279053008355143691747085161009147544822406092245575761039860966356788289455003336043337208465567251648946232727869309895094558630983011437878258832122990671329181939765220257245584008140241309321334209506896941907787020261535758021821051232908135283195091572599255500671987968751463023457131529536331288669612988751046150859356338391507026224045056795116886946051109466276723760723750528845553323504747748998015828804575300504609169021596452383038262921063032258517321567528089135848835485487124126532742471657522015793560433819846488377660552702655267847083560102435686088326611788097703136061377909360911308723407720961810239015785329203547127196910567479470441464331213143956096751662611289444050366388193402864204850380728609879198298048731334990048455219406573465415553780146623057839211851143279665124261860447837066569424651096974621110662557267176417196320000606794615444473830095878493631232523528518998571980916000681419191861683890151812480464347190128400070704117380054024841599367102849240755930396348724030137535199115751180444162615222008808978968333324522000440429731261225161765569424603020753595893240208528924924352707396565138857291831649476344881044603214390876483265516729876219997368370945854939343383325884620594015729844642978627786282332906904492327659329244991240461338339690152475856010196827612372034305510897923175286777387820132668450988071802682039220280484921574342425680467306971771218734560857152035670621700838936982753619171973710794073999060368395206127922854971386002256544673985627696756447769925630094957092701311919298249557757637508594236914490683476345460439443713186795630258838268179289757907386757743819735208131268068528419443653155109713356812574828346979017890143182775261808833136399736028295990100005197243770152558648191061236176764114583236934795506473752503406099278972307195082778497001196031316247555100872885217381291856087677478561960638935124092507858062866821553712362464896932592034892191306713471710997703373628959597835095325235982712896491987110448156130108291858127392922110179269486428196832862469292108464389599692881655076958228987337238615783294284880756219323095740630838089146283641381169292290832336756904067876535761639617542666459380243601974719954034836508568871288552924293518679946556844513208663020748995316987888798390898954565467592320605819226177883766122253354733863709677295930239911805566228092649500449877527733462521733263893894949146540382124321807361584536114046021555259753667202239198810502846810737704377232931215975362275051572387645294363483879135289887879058215501111042335845183102276113343358047897141497715251577898482989361644918289793177903264672287494186754532691836408798282666191059531425286630926707017324059507062273866705792873388271849518797606853228061480881864659328799427797461245295409526712496904410461310739091921123969406835184469699304716866174240505192229767529852966848673483681162576635255457522440318439224623325561652251410423592327320188833636089013605047263374962058237061848468952998652674663630219587161369367867248353561099403738139969890044051538895903910328279457281511397587762747445318429305366136379516981727460520885464692320417591143500135039507534848961569249509002075560557543841702901460781818699249239391194382411002570518213882300980354585878116400455303112771792666147437748373662374602020735384034823096876778936230561678938067317856631371635387047158740172890527249125208271689304373982296588377632265870582768134735329947863858277438165477936098561315677934180002014758042455937737830360395631349135763401350303484073992757865953439127551602075308652365385274503788859712486671650039877419265374145011160495071001864930153582757306955302684228758483403210477930534852209549079257356397702757373204550799101581843679809773130351644989780684770092412465890171794998639015234524231446407331462397045474526050430187421299438212570644915073546929709320638029037759118818739015791038279468492628606493557705792753569998447487845448455800506346031019432771827220312508097750299519197688024658963981141533713506843610011310996298251092340076886268173814285820414110607895701149506894308627965260288795353976116845807304352996562712209219685525228849169734490752782340903793436643175688240831929497835431473144939914844944463428965717965533285040094675939963594990733864266562187481072632478724304062904946792025384859153980266086302820683710681925863675616167488300314934301281052995998880618862997236896416520456806077951010091774657308145469192581327312967302559205871656588042033913153974415917287194875701426222147192789110660275076128944273224291366994665927065725104193631023859817549079869943892438890089393463412138281362194718079811145030002043390157920439312553995192226090889997125630923302714291250144039818705004202596087808708135868664901772444736952194467034906502238409693051825939968039421038583216016400769477891924212148954359374400999379643728561303628943116743708946744737971676182086415931683561842400484542707621856066439597880214216431665190096072817460641376846555288918618196034882585207484555661908969318905511599162690872569882176388463745955064737773914158066740766500977834149348421618440383883109376015393889363106315487134597252904837036883415016860751585799025411531953560707703814971227446960968940953052600980817492700921933267421388744897485958260981627811239347933827705619740666378971366211011150620641783273090943864210443410015684879462446967599935247049308499270573111248239759233598986452827704154827762908516503796081505783509823027587421577959779004592060888004354874347352982814703676657845392604783416704594176917489468082537728362160668568691135194523833890891891110912798514587414076502852590672091111527992591421284355439757589985220717590994624144692846326862634021582660249829211586948010765766605491619087786452758667194236834434314341938123350021289777131425000529224971673107771001716851188822998892084729467521062242455347160799120832204726268215968866450816735096164393399244775114623696703082302094264625367491347034074245876652408826191033625198046411371161227393497964475670145458128842701067719626329369178482286279120561849828090900732388615464457885782858409709604774411265916188951776629166252716872171876251651363170897961764648430969865502038327499036901395661677245334777359428410507910768933523879355498187846781230812595819765132635425639402346170289036070816642417750144015178987133940719540680368401437775382302327416865127331446717927706754152593737093421319759704093148149199488987228678226746965193156630529145957136183974955247480194339279493656351149799084354265713102019714434595201177875945803750787462518049950522139898147845950331786257848999775100918367587992192282605503802850781001785441580731247007138124481319901891828791517297480631535418402724973198667605030469892140012207784918654167062889461437398736216971466574033954035465704207132586866333627928321215614881054507326446439898380024170684921991297480094285081669435649295783434412365261698482303194094863341021660698828462310983387014189280782073748320543074954164289632481395094558993370449182618664265415081900582707235884189828099801915103517706388164396642793470437736480269578536810367986653193903768776582660850368718103572836664336505771722786667287930908099722192218881367130934805010525726415738134064117816210480678714302389166811566310728760536945753778478065058502995269117032333037167196011235234440747526812892835586828684026325716056974500194444951701806618108190644105455246621997460551083766582885812981445152674903802269567811500703052376160976160751647435839334104077980557722934775991343313672159786610550734227837116776183199485930275857261397058658470986866795339609462918867805571711368786100785500743881857106412692050966991492894227497425451085029268848939544748228630674993942734032486837449145564735830378788605984756918370045423301286627585792709510678969053335973429361420032882467148804583531441386307976265974048930871107688512323078607934245122017154558018416921640760895771328756451994313802327207500512875563762033975330060539152081158801054294431785558933982463564583104692415828661178849010046341407609499821446541460392837510247350589440734919649540370272245345722012446368700313848339842309183240249015795186593378599282947015985795919685983868598194490544129809748419955368963699635471720618181358552592623299539916937591709242861366421855846766772062305444148858262537053208245437448229030278027065751038001710881783281865145986558325871955464585253419757769782177292361207133364124028163497001437315008855271291758919608289738898020217608210487754500133361319171319762085641491481379640663040654035429084875144609304542879788815724796980056566079959438836482028316033894667904451136553073142332760578710820792676043953535466422536781850268292288474386393039583740097385870142651086344620470517584760549904572725750315085058585681974684292904170671661413318850438469807973560177710481176836641077939679436202684819117731482408997692555128826314527801264381391375696394891108464799849976779062995454495157317870080407124802833371117026427230154423913602066185340630711308281520749753719314684009710622503719592163865824282289408364927262824559605155252350591207841467076056758736733618941117427616791555301719943675684792853267322657804559329786442566694443389254568991712253772984042896325472825553367989035077223103164222255936866224029328970790077496213095713496292896492938787597564476663310010012085380491365778048694771004653842197087555332495654302279840491862319679062531769931473584528027778205886769223247796532393559859917992633825686079312971530659553948783277738880713698149746405066251751431410646697548078882506210803693030149523602476687170177830459449398213546668120189155589510932377910663974321717152861012900733351801133111413566846800791039962245315059620716207040285515702614335810300780277816502377517200967856240169078815127492674101606302319578673330966741953326317915486900877212517307235789809252253022563226541902339914103803099343538458027068033444271651927725823425369059249275644499599318933730202415613392172868821116886256585270998729060165657108807389487583616952170620956326824609039961837889787201822687023785356834418100121493461723067675286359901128088910089647377924597956882500739850238077509591298155530669248953573727641323856684678177814057638772348760403251294676471359436659413455310631406958562634633689731065163807435534312610069096745376501440519811834923531887194079939990955389289577987504772778032708466093615488559657996970259562328028461747441648263204872412829894947810298822837746185618582323346671858688349581842191943883222041292566218213616277944900410223801402421658236604363913231229544346569498272220679082328807024151373524162312274775730325612470426854433853224701279777859978351819954302148759477816076188527083820208483499747127552820257969469966553819395937982896137784430079530185400369661661157628681207957971615356066202735762672471209934826291145872585661003020261654600684814387146083727979259614599323921101703973376987349543904745166541954737744116188091670072852497347235348009245947369144102322834363438410372077100134620579466406707530982408555035768869970078481436755104015453365221491888383202132791737495225085910409412646261587266461619176963173314166337444938488514859513586790187007958173647585040709656344453006310865134015456864546098577937682284642303310173279927121446955531396650548172764019726579062195388132535096325094744598989108785901696922581986048732516163148722533208681152503877839030921096397314087014632627748736199925160369035164018132286384101577891383454820869539491141654192122441037258823537352832966225404053959955125418804695534701692796581808422169114677949577090318147199522420048905885593746441615349093468210952738190692493401258540162129838882360671129904727853825109322126760086356788729911106064744385406313070269157932911471683574893086073417620348424225579743251001003864368816055246682773280148166978734963320996341723779237883035166054871671792874001119144726245671247002497622458224027397707027023503237712416913149130844802726400994497259572092359302306992730005224907365141977781182720305259060505366479310184870828397624359765410245471902129646244072187868542913071991156022134359810926127809924492988353214211516880443052422313351720366875910920612181715721501323049150385243127601602678071027790598783630284909951332333256554242832331269708260482841091164629355307970134715999285642688988970076744233464896500451148248944884381190520316202395612515508011429345593840225890445235491606770575264177519736090440204483367881891568970277893660449983167550333460997434539066796812379833136398445862204918269859801850628083650581758563282867239702164703792611575436878345664046590607888585936157260733764794736283941894928357605048336449401134986549120821004813255068375628197025686969954918762197639720450279004466756395119376131560064544864855250749799420850028954444995335745046836622766872082483164135994803070601611822309156175259528490028995293428737617351026742418815937159948909697922257721440139091272246178883874360805196751530314791141433573207365859049304277337984471291954446454304400959751830974182337618633781152912801517866360090164769745449589573231467955499389337513949564362601454959264673734721602188531326544686008853720772213452751031059526253071110235537885691649959116922083888770780517354383985678670150963780886864757576698253235404424542840088268747777032853826199762542581992934205912179778082778705118584523089729856387686511275072763410035994146601222794895749559203609946037804848385525959910817123628274420401784980211031762787788750303630226361609766675801060395554799787456998157973342339974244475884531393345366459175525813475504634426716109489081799689592267046440216917680510059071844735263123541644248647774387877651738534789750140252040693299113532556148136043532968312928991295356152904027591317677341277704636530852213257548630793354788299638340699937151542249438088240647332631233504613882159479516917592545098480979110892331137789539664074608345730097651170607524143628834660918003849063569268532964005516535997857913060664047455719084866250414627633572044250876603320764120027683714720258395775725483081763522817065775941532708326625539109689730585045622593689849897562270215826526528062002518441648981919690955821207898972671764613380083956648772201932046367188172395470493020927986610411846957048684700496386412595306737666603894217618938754237522401874581597228442522907977372292551018088673990839885492144913863562538863789161591888424051299819365171369259169577919988494941497711519431575582630705994857586353474963975685597038626780540072008974502527051939796981252968831191645904520975630528337309486023832962721322569007376753391116829471981277057426243752213758250320087363753204645000573891793465923557708362204145285013907946406724667360182753798544781407692125608569448105416619567526475074523902545170531094066263668247457573460704065275753577743201023913341138135775033225611439009760994695213981770284146108841360856591839329939313580819527070692709276077217177790987638546344602405169049949774757748287300933978940641473694571985048299051348428670709915093304457966391953558914780109443450982701736772409790494805928838465752690821406840936752248884246612560526950978010126057728228735993798499770457317611758694198467474290486401231996744622268636332600764110702934889723601262149845968416031874245315843520548918590453569419644606333798849315311695475836111574976677407031544805789781705045731922588154943114390257934504998955003727042361826456804158997001369770936461843182966606907313547636451203468088044854463947988105468098496701317954942866813882765844465058517977123681426745854755713822907266346031643813750146542919453599343608206282790725318865751797342457466122502744301909224296277693665315871680944424278624984074946655635268045027684357821136273406943561642515379232246664582371079321459044461110922107039760456510101286976059355657979972303939386839617991898691799159386947086324241601016103098873785439567731482972348965947671427213412840043762106602005505662023339519575586451283024177142823715776932876797845227571042372817246844546162244727036661864054672492501446712045654783572692144705387980542744365066549190036978523007037200614183725711309111681021722867212589594857460043532950331146957965649006244622695391251125286803782637520834620109193920529940673531650175837826327641004899446489071950821478410208366699644155548997311854445953123278819884351936466907561917443638748986263627650302720686092518809723608847938016252950392255210283185911952095216030879709223063182430490513612517852667830989648407626187112119385645233258801563584566325681536597414006351665385278330279933276181873164292843436635161566325528087740547669670001881483129926494975606174499455604840565169206606294419074711647405755619551834538740640464663446523332035103778447675885666660901728752098224471156450455672431109195734666267791950351111912484914064555435257725496566392678522191762385475381971083198322848394692229495373749317257755425809647949858910268635945357613551466037513914968451229674554784247177930607499992487150391737113310598418240045774257591786671219505174289611967389888904579312607783631612978256941136845078884344497866404495895781779775376331750386865692143284565907638770350854549228817745921346447903640967193788480015659908526276175097739401643740642321537883413005026201713197591248645879230068500253381354891513199847109339798843654460482728915497107603731744512609717170621549152309355807845628392179950936649904409609156994214938711242914663120546913223860633526874046418697649751346003184289825747512025844598310398201406094846870769161838308623878910614682419728320052615038511068199058351769563236569694142362610152155381725036939198820292713685444010629436726451203334424480829528507786502235886684798729233633452675826546136476448809927763316550213007449452989543396175266117490169121300581095542449122673852851223438369598397804839752464510120588267428306399960890765573443634480149048829835718981640964510119289853987608822969226435420824456841236875233258977838524384542275920567609260795846727938663976401333752981741038008397136698750179251888900509616272530290638512244815629473486671807921675743950233541879714637034135950706887960310150164644742239232867292371725653842901470659068867294069484254271590520534093390143210813138545825970434858093148550633941870543754820191702268823175109013294136171877005809113345796164220301259802204310738296686490703750445386844284408790945807138389620954492075996155366557130684404695271299487830971345078827572484489989734970396224651104987770041793712631986655042482645042713229161230932461641353303916768945148358569270216603190656899930352729669425409329858504714285408386710889273443108736345700269111924324963772982294009440207520246620664473839172044257548340145394080354627340999096406907207562290737468413119858657879885591425214708035178496735893693353500754467232461312525826870463756343964639059479070392896125976486670569071815846029936042856641652378271137607745621090317980865717319993431281796912942962045569520124331544608359576565078324467211258500776099689071429906214637225018370319985169220050813910205378983915622992500646873567979540662782950224745926656176868862932116256560500845429455903291737200982085881735374687831820644702268612764976090634339415664902642621944959997262787988742068653774840012402712025274733443616681302272047545870270464098643467573641494455604018046902564908532516727167095127900523934217027430328861413233096169647556020183862159978723609621227570421099687370007122579942951869630041295418877962872409327846179804864790769989057773388605583824911422831637486928785381481431462242839849623378557735086051101050926129323099492474189267513161881862075325740386848069649046982799912216113866566382032601913596840251564924790644398333003180789523696165184056141033843479937617818210047435190907065480640320569117166432209921547124046169424710431522220510488536638270472083522207228179230772437862146298606683003944318403189711959387588071981150483977508624928452053766099357035113846959784295954406485751505062084971228123360639541480452318303759039230419312935804702532239639115127937593601514087053514606298995194074575535488686198226932469553821021947202124884904426365539530539435330040506133599683201666987947720795258669143318990921186522605849608814962683654672349840481438109431985740368377466370936580637339294587946644516826114833345980894813230142344973630008177003029015416740179574436162018422076053577654231628456427644093755689715537872869598722457407255862889162754227400139392489093720555456160784241539561883999055824797402970741478814357270791492210435577454609349005737681596828196801977159064579660575494254181445329924798199665711964551885655656812151334909804658037684761826601373717568372741306170464438082924391653713296382616530723106068233388999951025530732744120942699413792011010466320874971541058744582611599590687724094286978759462694298805477860776458005229407570308406385160436059312555658553312311655463865541030072699344773118169078662801195532248099561712788155639351901256077112884694732263635778302596564232697384744696747938171918349844120102842351921959479411888645207796023134306321717435406924886237588135079501301954212568538960669312542793294445046041439975110593068307589866631208970917867381443106267328572913524733573733413996498162256056419741787984415602133012302960042148911478485752643862518142961913689838222749415586395787408237809038341408792976445118888023372009886401223617417643050637038107692783411890172940132946238563930853153224422276881857172889388516865007590484415709736636539394113814143300708417983117234397432128982693088281790845460835227616883923670670181937790638751868898267898592612248770725537077468090917381219556815424678175824986359084577528221087337094710053447043162645326509875418704826040850494328944967115115564045037599221831531506218941768079740040267805916373594923058021891056162459013019130734230922011877489054176347523478720509575083012458009760894490201422832151708178638297151787541023277937785407268363951803722727399072461328116672620238536295804476874489455893556129416678771151444595215072801124528978389889243980579261133951171633727247632203561341376655493609107607754288639415375091128355095389101756992734810580205244749886065694140688059815714553496102116404129920711915738223964968790061577179595751167559084819296904355934449028936964861900866118483640844547092298808201869643501024165892806728934618921288399805886754723382266287467489827600721396917908199418072364514382989430173553032251147891184679935694376925654535114088246264417878175405852046275209119455171507153223229003178378639299726457950413622430738874742958842038653796300887828497491015367140448727060522398327465443452935652807696047722150302406032996082014428740664630902436955822017514819021276959194854806500251596627667211562658270387072145811474469794369850676576882350350632790855260275245784521393118971219595602227780105217056312396344461127002125867235737090090246740694925766696530479737142762657053595744879087619929979754915470956745686626669331781602694992456378613345040128648268256454678144257343138486006682679767270827808689640327625941678840571459411480462916488128520010261056198452785431676734301941800287392809461519481854686631099079515044881336501254612214135427912283913036947262589780027331680030312219807922272339302333969902493238136301781213601131368310388677339001225252410376288392001146874739783019681516234484584417084711540563067122150252400600956684502099654423577855478800658445306335458651974851727110468692370821037423834451621446359164268326469767485119161178393419514216263434572806939369671644034523111798133136747255810302330033564709193131184154932715418721453955008962151995577648095322472817056846283525646275430576200001721499028964513843833117116585841776451061858250821047245469890855260571543347364077660598021844622302303576492869835354772286691167255092926423495359112977808670676400914176047251101842295428946972427193139578251117713736466128861099385961544636685556640632424096551152712448740813863395840329068301663750515937889447003244679444205006232380567807586140516179491567587848547537980361332045886720131374684222777393383010159278738266403520793857372733187872211600697886849105688767373546820717934420516918691207339060230403595314402484827552498849668639056151812913549133306891980509583195474524347688558773831041434453993397826437905600793257790326877238933597040892906379862359132688276912048235322685331113094927661454578911147071816782987954873977966493933404999580445111442637878055006181201942856580115116049659751470936084824478407151016568819151547630853708991777495003154677919940554302384555684329587122807033930365508052035902690222574326941773378330207785088164599774998435514703041899310927886362855595498666452151460832243270293986535471171461120978644646443256180023520004864169280901251955587967777071201415854032429272796513998214262542785238361824897440083764657199183395660336509497078523288974588149334773099486397383182019324468791919227598192870591900590754067357185234811868346434778505415782822449079858408700586120528447163358777233043808270913739688950568455535232618221110237312713688142058398385474704900053609386576177773048783078559721753881861727200525683687300867217691544126287754950323922211648722178615226209112425923774670550161255823546154420874458421496477602559572740291847164531588852588278842868558894965084270394298993544274755784884092534243675964612654381092025562998205154148019374700480357966774587410088413181187258238578544848881668277133032050914804990270633866946909935124879227100509277461414952914626105176485990692992381759902441618794970235657180951442585499576517929621056744600221413367375480798603596959468569833797726728528759250604441846435778240362377667029872832370604527442555068151809555888683589147533045701169217308190413682196197924446042649934384845273237461911371108244643350169480155025328418462873349226613456894413900247066335547078814160548567966865643266981303178362164646588208300503644548129228849644616410125023757682821894551184580595732090939462064867750938024379128960180082794047481742206332791471284209513701056194327176292868579090949321805556897906628628915473754867319869373846641958561889977082799001692464942519034737770398863014920111835283723279199650777155816340617619698407222318678270123540349943842916855650515174383773539203225611599297568796557485637139984984188981872386344774773551501353507919108180826989536012524782547043214097784693232943801472551258437608609981460219969863154847357629208099670223123077999976689261493709481313117612672502902025112501769538583175793324823747587160195989309689954294571523802778922356850487641824139102326914916557444484512460830514578741750738717674417355110130764553789788752222185205861330107591272012841581609901291829118566671573929980929179914916100046603332922577608675656663596534181854225605988431844272181094231810906310605967733278403950596066977210277736141182720643429853844246587728471851788363375281932542583005499614614837350414191861619862910670638791195176205055641054814853078236437201653999652095042389041167497643602902434195676224468514208945656803232777781828040235317172716161384745264342561703004038807168888842147579572813241630693977190486932101774849343952208897797746064132160659123542873066349856495138429915119375415682688046403440740031916487524228128990849604910887524818976629544394637536219830608530266297677622972823708841064030679839570455079864255624132956970690312606937272270497385849063548119466535336602643153554561276200224543650140928707010384502494229968246989481931106380584896383496684231546895857394178100478027431024343617063937322667141404764505532068525452777271337995989719129335109533521837623781448282123898331839226954036294419444779393386294782085653916027686547422160219745416250347948657330874869636214605079665721155856826471256401983236872218016273702740854612331531487465319393626134387278498409826789986196912202669754590120334748717152720342378485320199773941089399183239935343608383194483504071701605001971940795569291694412482684602905546024805566374925676902358565496305630549909473833868200225327275101476538201571896891764386176038466914712705020901016679314353889817992613894958205684315254271733398458496778421955422849693775382141987539836280415138532709515070677831761849268674924518788782565238807875593398741899239410646608428415951768002918996744604562347684174628436149052409961460913299078250776717299487379930049706095219029159187881565502948692499482638863968238495608685005799920812591698095762500632522742977572235324464631299191602952782838780863743794848781600798669184494495203389091181996840014360193709330547221904717861619952110929112791700197667202021639669184222413495352640541503434784937300948107500099230370915388201550820033012007604036740047502823812172353310546983710100965755488116614281741971422411114653964940881068713531679967489742793722635135810389988254516055367251021364169290032107312234300723995569142252464301262735666817822859016903399525588647085175428439793423274925339989258403923207983599325215743584252303743666138993863200080064574750880709379984627470966570809436929936107002734538156848014398180022649796165498392424721495385516649061338869947944876407062566016055171789113105157898124840674415404386343218080496035776369336965075024967546596535171500859975076400045595426370119626833504239694093247325407321746536577121897863354556824170391037818242656724415781843849453825620349781174947104658950823214082047820539992217083096379247191435705268927378829630172045984163967659793992468451202167315575940610850110840150149395848132431432648317063835229338983573286296250064539653232340901663455349761453977754354551018002272987816661057242312430623503991266927255939838704468224405690217527208905973140317194993937576065170443081784358468902322640906702558256315652710399198787449960056696531169420178903331930791287640450024529260777573554483085149912160462604079663570042929414152107851793951248929311310872340368754933321199716941558224225323452699165148427080749649824320910870913027192207360528239889033377648244024821643674489283893271787246301295213777584065676650342254844795273438929626352170692482957223372372605212148675590124375106886361686206848107532525519080870082393756679930005256400410568687321345774201100430212747964046267720796028868075453328446116396367029616763610612095640915903922675977256127708233691017979324027600947790504939059499035509762328552456920149233803895551145369453798964243907753154386610796172549357971644803446126662353804145557367642625144590571925802222930640330494317739911077459948051848434169030124710528400114530117015926417603100466879843400676366135754159381073949023384595997856649006331001925807617965927489021730881865451249156100845649219173398418493640078924253400528851274097826072818449936233443967778341643032861707465557447095887106612285979843832898882778608994982593444570625520846669336207364561329951753464990966070993431256359749029656718468035188787644371927343228496757534874380605868393873208710712341196033089306023521935023796475301514159372862118229525906701857585590486981033613106195370441077208602330006694355982298997200389420507124130963301247398988986501613446041636976412991855139856413348024401090382042098050981881637076560253542288520642504748958680899179466861171932503324823024105980558476638045521378932305723502009715574760259377207677608746814821345225316302087888239853556684084620188776333889382394005969382347555811966044053660170851554314092863357092159448116017532965834133347177302711059709051781158901708660299016051247945070243012323067026217970114151068200226813999750725832130356166794912610054201286453229800672689000948209707585410219884885295459601974730636132842969855385226523816130889665914509124886813125953536296057660319750429504118843939724705360578947986283171400396848076421190941427568120273245423319593111952395056290622611009964398948381646448745866830754857785328740819937572748521974137180942967777411722239364135603321190933440755678783811304519984514862898000608483869420621852719280187780424866808029951289703473294463170946003859512545338683557968905846517230067044888968406108630406121351552038742139284496202225754658582086698640604986554258859081455309948434938427338421786450513985427397429095857008561462561834952700228141732536765397946912752974701317006383541596544634244968352635059485344744721078056107810829649426478810025979318775639239043291785327634203752297565752743408295084547947015245260899313885783123911751269225566757288513340439769625403931174933713994495293568010603796944595685975249877267348079073267618245233552121621496802344929254288655145733756557659455570923953342814246290317278154039983415564198377180189821124760855955518999506207300714034520815503329814975070244267726436033873753973148431374070926654492295204231990073459463931199653505680733298148658411091994439462723284536771128484736224606331360285910596352371938716345986963644390685405322319315241354693248757673046338170302944798352260205181494445850496120326909233752716235513352623432072194300935881503393598974493352695787457278314039670396910017073414932531022063263016925237018012024422688492909819555117195612083815501448583657166510269086648717323819014860992469913154608200199270504730568876141893298108310235264828108102485450220875722128344134379484999727920258354341720442598469327409141782143949280179974565987369828742826826748442121371546823275112853416523703165307043258283372112371376096959399375495362232222197465961933252907404248760251381952426973910175637197534300447961782504311533150675825627353434762525391425152757047878437678852418719663462419927008025761083927497622636549001865320645499515580290839851327262732196728478302538522190479278689389538780368699318846603104363352437327154699898811186443670114028426202615047388235899747281493343257065474637022451887289061255030273791902640396577417606898976983456646470520471635921448307099584306471727507633718020714597445652514188505037163773818902969685284409258193174410055576089850292327101600898257223817394543698529654769490187384046465643730713195901140761317428220388331360297085261451234907307147624534050245423763666685575740120604059886955630114415443141696986074032207886003132790553917869674163555240250767653085632242737847149746037784064609346812991871902892759763070159840887781745192690147691030030234979458511000180886606216286801110915116104098327308808995433755118718317378655877648735885449036687907416918253831330636233820582015488544982788382174243758054923815972964061963105821516709190326318730933813850113091332770930342511221097215505610491387050426219805260247611607505971037943664771529353491718612506611636738330499564878779365697911293195878277774060107533372432790009732407256070388800871137309659634457096041175089444791191621745516970964844762046174128154536128422601551301589525862806957063924443547802390516861338549861926656762276035823498556919224890690116459866096156795541549215758128354092025393170807378146507883203526651345707065536856992811242656708448017786461497404549211843122762184522441088471507570190883495022437569885049454241057266246094583209596257287203099477654010739855806996619801953450050651450105492401886108913417306075923843946124656986160560909454177290736400939132195676836433329961999796542434802656940683698670617587413167650506027135882574433707216458819522613397054520523441280923173065051989954502858538352287378728698291727580782420982610606090150925211090898996438929786294301411140067628774992078172379474620916899838961894863077306027491026703883943352474243421236712177024610116024061118571687050824404916238943435047025081364915515510432725074794102473747819226520593355136255301812196424992488212992601774080103719884212547447216029695002774268507752175866917993801362584224173985607669916543275706123045286728070763189470589544061884213157138003398487408680941446184585423034495144852105399124893245548665930533558457827714423774338533920824127763216596753832665064306388069556915620262225946941429007998769834420914699989795683266709041413980686333251565256968787899225743279613964370265431446393337990008198575307978817613374360948392830223380327973203865364624249805511402246922647893159294491804038298364903488863869756441485560856053717722873714822823686427811365720394749690693723991561003682807514117847378256221277599591677581403853298688851365523231393843174225853562807019154400776301634764778126132438024842186566985527400764105119010954528983825634840704558080905221476972204287382202064451116558020215813722046634766333517561799050089778088560093208145417644390323524193973154721892092020247427040585791354379260097680763629875661478264433892612121345659445680104222761652418376401867345339148807900136360352843217478040168314672618806793649304686587364631148328269804920227876255454017850917749772829467569293545166609864194814583644478909603830458285369895608066566619036031004530472002422639388157206867469006192987308224849001681634892125543375444758038873615865885924859755874278385999295417099172251153402542222969223436617778192965331349674775722097843019381844505985075080564948318967922058343414789051025761749099758200123472441028507941231843760147142137829511021873589939170816868055988133546991379453783137711413549197124346581093112783326621759222758936993477049843525192107351757370200545734513058731322143846208760277518405348937132376629071120552694905300388822804204808210851928761076772814548927944032272362841247943192644192430796813703829482005869742015013235319872051992035387731421588221148597431823879098919932539341503787689959695804327251777689866125889395442013917130641886295106652689606241452084480340347411331488004313864731715844681575483653167051260174664076072809596721327294224536104266792809469773583638349822811476691695969557327702827912099792608638170176542101511158110926832874859506462623629925924969437818222916923432548536160415251420636925214774598094198892681477644390537611191746302607417041449224194980017062386681694660798924751697185000942874444662410058638035586306506360957270979734930709648890760630190792334617019745665624871288498673826785462689451209462290548275423302517321328278531651758693405411184571510483463283200810115252541311936795456126121610319742783210387954825391743140987706525700603767196838304786929100326748344206684066735150885860916629765722779969260038682733496418758332118080916861851713459115685089314940448199610725023378967798991887258268670537757435124650813798628134835066431324662709245236546983517407042651369882414330883552631945475425324845884093993784631867338133661031005811464551518773050141308156660180611322683529639711462401049831484646043952006163735425846982605212545385915053646201416593061524137743303724644103975985001568921027909378678603185176724046959915723405290038167607242477016978152148615194746270546142211256912722538159050203958305146858500360242005490945502682618509587542621097399132209502954895828917423298134315406925757058801573654535178927415271289413143182694769025888547865991968988359990438854227484694731187519748877121501915919088858132637699812159080896918233505907971487461333680397063500369555394225907345369332638969616238425410479462948379374638132461240825306902691465021517196552425678847127229752667920280384129661575021846811088693939925268794395032672870087581886104930085975019692809520482375713894543884424162175662637351803364327740173412594274558202675440278812140928688041203000227063180825931867664814904472579944670459423828111487861177124712994023435319347638977894844625604174547802052955308150254298015709039238214721457480550269684443809603801644372619530044039908184265874879532636017477343963474133302927558182000846488609818329170786212437034594042815016041477058185644132223188779392163988961273699240022516053512829372365573731931938983417538439708309035853330857183693113650370081905654504329842209938149004544540044861822140550605287168313414262789644169533398029687951753666784755096725673907734718169339975900118989111396246520616071885649119266426940160695906161044378014986669982843324652576088257101089919591111808350303650797428123070939519840254801694462620592363635107199014815677440001231307254102560560159316840532816997339070715372088090132654154084084869464851337622748284991612747470532225505791833719782998021737591424344714866343808459910139255494465966742373011912156910484733069805081712972731380662922967849316570700310830556788979123298130375103174678340112081353091466073367511876218722324789683703827950123954449539675885373844664134720247001588520176131215481437213347926567224469179562586330030699458362891038126489523388807638438188092118073979276831412308688094691717655267197134112902715814675294427625213295015430115336903892213841013378832753935920209051942093938979412893807659530870273550773042219114300432566846240722890340217115127316890533946785187382278485158224704841277392682805651726037644584400682846673735448259249691621423903388931811701138913150192228541073818145229259218514857525247618384807758382986666755676288831008601526358935863571274217772895154458312934709800847178289672734129037076071597089783899342792625573818895631940507275208732599945654560858685535826313370849340641393491374917907721822853116009498270366792789235878843160849183895336236157657683342228959270239391538681195815299606645208188618438969720018935678548949422165123610171847376046060382961644273311730402586998521537216477536320660720612329293239624078004742806780812454299279509350514397602119291130378021703950829509906994439391195500340721574148017759229971932827163039713393800349267913341650891139464247966132094725089819572375049113312916698427371148958662864933613397030362471630128321007084152026276899630681896952666694405167511329378690500341200428417394295414458444754124677185087103019497637306464566186349406566159555902220388135713617682347784631098854748031416075183130544034281127035071959901420305881492321488412935694452964317031319035779377391901656912577178069851218011520363784718232894953444655146267846820263039666301990692261062324086257493667440265813971924801331606041280430940301178183953384569734777875549650522671989203980646508809876595990402683545829084048874359012102485707190569558518229964816324570157037483350716256177878402602480795436431427740975204629600770595232159378392656058476318316453946086912913902970752932457528311220631653077945599709358801910179547846822202981379496733900870993483523659252153174780914929635957680364164531574198408294970424039023534026592213525985308033243178585774060569003951749662478311461547074710152410927099019069460555923968305614807726537399849961888020452613695722308907368225836972534673293043490796231583862612634442408631410349974036550869216050046280979394259573707752242127755962792858417731369309036459436384493982339291854895536764735608789899719778070386620927463185198508519268526245382587024957380501099381632387082022856447402189035037020515868245711255202315308780901619437053871768164482939449118658976812285822828630588986102960528325443860452415988790437047737737136850213539382265394902342171088978371005174981759702068682570272597123999047773133208906742112120082183986777870565629424693820042378134913066630287587520925647732731674636966474625706120034671564090347896314818682134598061272968256545576749859197286737975381067421738580194869393292329785455610079000547253305167081854955082957331645303896672805738782805825883386743956721320161223642719023999031850697809484729803770517200091305626967205284316649649046311031340090378152174924340671446624526247884447970326708092047966021525362297779841303529182491667754733386109757717520892570062709539841927672468102127146446516361829038678557363550700118367241542895404774834328434837475643045274450680844294328800326353481326604760172142269400349628563970257256283718828008954760238666306549747045349843766403859894645814480531950919925945149823361365390441231674071296632618704241988407865603468894409807356511171908841621313370383284752715801402333740874605509019733708360472009020165095766376037863721883200386390086318700252115943278393284792647056206906139403648830945520239437276001155644876784475408356160399848851377292303432353009793967833698300912777997949717046285314100435349333822674849658177523531271960159061728284621371401030533439202703451301949107034461745657717921913241437364969396904896573282575669132764531083445687159449900509202240475799421485141392454572532607827164713056995813723489622724101513581463393598573917624057344627157841431895806876744880080349010473159581907241464172911598289697025937777675006732038336759992089814111989857577054569008806673510534703721329348905545549720535301055732469661053806609950070275475226267638316527252791548331453619391671955103025151941717812391244827611145322188667771767341740645237899301503710421102322388477693731425534798388888374132460169484945229905107108955879321620563220851565300740795055924944597435103491904411337915663666177246177234250577135160442663034312685087965410397347392745290514055124103029836258933623583426786553204778075390909094601404380676438291147830296465182153861892014007114945518626929913247375729922061152524782916654575695663832511478672525609757827406443804607071542461773873376807193067971913031072597471709514887374746950349152024257187438661942079828728831057102815793640271463453279847349413902420822973866014373548560908029571346922653311826406796525443498999697808629347038553615700103796998646180680289328572972529014282901970405011170939604017994007727907300595740645352901428290197040501117093960401799400772790730059574064535290142829019704050111709396040179940077279073005957406453592391666388114459764187426920093782970522564055698299485145116253966586742236308393508148778211469714515626421839723245197256393926186481618297743853241064349252541686264352270431372380466259855686036939297507794006992109272687025326458806166692255729635224420485867181204509342716663189051926245014908460068805223509444346582740225829051295030497996140166077255644874614627097868897325672101929230098245476543800864374001097572366609241372318680077447626862945263917248970267674567927348695426329629330779938306069517425895653753303319825137466974625871617196767115785959129389464190051959423116255426558903604042611724998909306405095319996461071997051693828158842491614923639600111384532591716540276495476617295659031279164951736029421362818726459267767827689602966497224763374234588532554323573191763216539724350146857623916565043387680021015694435823608634845735010253174638070912058156818796838583945104236795876705668608026594829523255942029210268875291154369222894717898363306284089773039313699219114714816289438323424291014432554651237764299212082763929737715940641397405209230530964078416316554355424023706082178182299215828215654017676697661208991448060059529906543762363612026305988951007723575565165921971451678367435512908451113629555953087586708377800191996181655683100455702282789191613024036183516412231627090454293979674128235084330945220216062668426891971808149654830769221468092724377218327397092955067524792981311566988231593310969899391225434479357745606611269046429656407405419288226478547979797445592299821353002931553127176172218631970898223531161069406848815755289481620820918166724813128908104623769907013229353284450081408941518931109879654072146182757480558580243538161513918772004445850657984792025456944114779663992297905320277130234997864403442182496163201891811804326478311151594681114816472645477617634978713086688756952976260303166684121463430262440794686978285987418395031713942900135590877225577053738582054889531696018068632325879151070588932716859422071560763890785976077655084303731907717669314552391351862236311427116085445804084750002479987582300587088265491462207872672680636374537598067416479448481497389238754728459343875279286766443272564795561569831372462510454288850073348951302504367500924192903435436010856692082942618503883972921380359209785263348133849959272530132582108608715627994119122426533013518546830147588361727164882181498350287788557539659788906106832228618619529827640257722566057247446559340325286581601438651853736161141630755729703799944665114114054079427147537781111425513397283496115287533038864432816081165190097196055850403199345652798222234280729918171305432277487592302825294802655057174086199252370629681498124204263776859881953959968475068012031703913507600700194920848368879638514240583538606896803775442070642716519419088448177490953805258104482473913499622829643783561309374571147615093589594579265351844458244073484489100939557560229105606244845612560043821227900342790703931871075238085638921136403935835401058207371156598072563030772823585173136193707794908570998474013366850020841298191122359596968222596454588321433935711948347789268345889740076030693945402135727476634284866657596679093779764676816301584881677064603897065832759236308140929955039458378138514377201135323628926420377834841213595082140727120895337331687881000034208405761803890377556602679235794264582504634285826405824664704136419947470546611833543879107633145242000537808999550347417398247970896323065778806615087882093271595756544842616883205894028796721171980537283624065611890799913802883209434331124691268141432182067023539066525496563617615132401567956891035488079558258253280000374072431650591530590694165524402644222655346570827097143842841856265032262749319629589024754165345761282409353540627014400709114820954833364938657662856625027302154425979845382948191301499938168390326408029823488774147168249587848181800555206691015613702532736823984640258918801203376500920647729115868497705912814253936463325614938138098819347295892191223730295843415750510217738760027425700671307213271558502718326316567322974165569938789693238288866660475346398736332850561625487738543568830057262497407546851550544779206649515963229258022932661722962213907725474952264621797546086820993904542065712223201937656293829780886180306195284931320849673872332603947486973079385678500759409394786742549882024204154706671982406807377080366075125464173710459356950619561033855527322098109391227546654430715285653966082482186099201307482570769885348946915431971656972247661616176670651988734448966245862862515222538429015608740899543421769517541033533634037347503819645696162086050486414145849222445318556939210460917094993512309706812433674499298196274387393132097040166953757317336392406620673366066435460951047803390531981705875771238273780252473499031335004611778877727476072034257314815970711634540909184231751982744277637794025829492137246161424412299249358946143400880938914467003203465218983727289742397437971531983072961242850269656158846639448405567776686058195053148337097686851718630667649597890678887068315052510880215627001700423292565257755357147488071703303840646594213132225602881837518818002778199301674099864410627199825274556959680616423014905837129420328352608681346582068661120881999425608719239598657559906884794479895728471897115760112663523321187199746658400358021813404365355789510224096323064467036239649691027401415384026186040025210407010782659915044971893946376538974233959444780941259644679388105954017706171034931790601028584817942869277680251606346981864876158623370152516023637181787999034379595511508651454025879726423200572504444194331712013746825419070853107215208512693984662801771110264244563807915882495667434928755342215336739800701841459689064069363816415346937335804134862168236281248551962820737251711644710048433926771290470954498217712459973537949895925018192667009919231981513968720392407813173328822740618348993689159625882779434181259782237468233565569661617070377394245553860213043349364007531953398491086996333561330849820046220523794212611273864697734352984061412029335747698542837985073142302960860064583902032668329710664748592802807062228941198468523711846288178252337801817573627386563385765251145897691425173865797681334553312596108921679675992162004777773660173969815700518930556320934768057520823924709307505648653540147096925863324475352400235795142080886099352369049792716495297330731217627022775828058433099277819938043921726811176593651677463485868115239136038172399380436191370870417832458368707326879275915124213279306924936806725671640937958115437410084474318079847981845622953378315920943705859879306743149584212809177146937159988393383659676333285508452144871734987298280228722459721110033706788519570863646932674715906123201811286192207037816689825406153183076538439839566907198048513952994033311865280881232170777351327009709343772864506905524832018864054459121311179044127994901780460651193462138351820079194171186947790208647877508811872244776343972876005334911972357654068682019368086771886415436808009906851236046326960994085099039694836217157071869815680859943192755078361763106352286244358297577723971617124439000785272578744254553882651665801545049441516401692449890426834573456261734020571401179382531553966917865085328616022779776182844821286729462937149110911635104493201078007237074496349256912189049313573617672737075794898819870814803294560802701424574027992891569507497718776325901218558321168332456383246354264136630474420695339068746180487426957308252892854977557044655307253726535449091655058544905009080736081330077728805917621134078127022071577217991846919996476476550010097766017279646966552244526699337699312900316835211790528327287495447512981340250629138109549668572838779529050442889661515542282376017449137351386273975389837428783645708577787917772282941837862509262813945141402838181071249937085703496006797685633696864767208107940134332689922920321079715285432230936878389824978469977558977758416212889666118309718939561805589888734788223858629836061482819706388537663870236997190568879142001500589327815766795541265615324077751183701666268023336345078784136697950895864028584925040484933796171180328045570796932170830887117625919959435644139714952826220987117939305641225493818743814308084727553083891726934629489967863754936115462433363099267699468701922308814839034814606660954452470388376120831651420100763183375893493999620082480099860462830624324904927573357191805826053249355127411073586030225305769820499460021459863975785058321391016158208938102536640432838562215605048187456596545074877137045502581458868787094158414236369582539050044102606727943451061502477228062235096633157361251426679434140746652063534546583922261146323557839399370970262019162213473885624539830201655471462084762972652574642687233863623153135535568166360519035718952446642375866198041144802521990130259589349990701834644312706805990043256138711210450689055750679076762563050384262622513729065225654942654827321349984841605395004718249856560184731449074269196457452658113570265107162387733468833725899778643672591741155701655292484206315218737915952464483195251598063394603742186735024198039034291728820585693526786658158201195876069825239649292348914679443084786574974508366962329607901893079624458748437251749229859571678125574842331673035806137323872079009336336925742457891953867586676113412582471603070894316874964912571672763444303055435879439672798391605502135148333240544829591240121878313403045929441621292750499845016709464849534409152471837782557600293979425014893421463386758834589638702611272977948184530344423147131244078498214846735862732653628625501039736030179463212553543423298346504287829926979525076211766041627496983635949960324349579121030004621920146211722288584413301742909151997456174122142548151012748826300946974835123007217022380251636265424573166829154744421810027776127607297892368258611620666702210658425698166382179841203878410264487735566199629191877992434897623591813120793421262858085245471431809776763721364584043359927672555158766872926818986466457737181567137271273270691744607683702302787924243821403830439878125470062137965560074412906471083531304202892912152146345225675356683968136278189995449676285459172951332462312686271207307031686740866015957099166315864652238874562344964515990749792099459034313921494067984830272254572430514353045490785504685756559850314186308483486501057512449287567182899127645724607259255296433846454729452076411844381790283425846409298456812175616938935965975740429295571529150768297078020239789169692521995691674357951072811013584487803476120458651798666327827480150636490227523192057452153557288024819586565693666305469970629511442206125550456869148032744860281726828102742488640261601893418136540881702751903632798220382703820898351245577903536165344698442851334548386435254810831284998328941817291612083907139068486878921381010367965044352512042221465614364722014989420021438344201240970146623634385827269296108625255251189212907148360456679559516865330531054510197832165741762682855934691871492472425479123271529093087674353283875056316259536391996859258022570941304541646785723973762668711162282093474137383953097453856228395401248478081748766221827151570135695466014514527686148821945134110598019590863768978510290474547665743821518113451025024651282130788257311518251357320827342206955041620563142444929775785418104799619444293639466973981359366911184515777799264350643544477890786688566763655567510133020392064109944674869723800189018577123739333851891151761529179033570357835979595544489785949895424664715432770670827265189437837948064033422143377240478678694063066207205650277370025852374393455794943717575948222394848213090905392311698664096483735068307724944504687929063370538796371011704409037520385264029625703004417508984780077854740069098315941092887358718953394735828847351202477751441528641433301523760202571654663931351516958028866473153834042344370579637648669804291749897294330983715121568619296541976790875435900658851911949101426075596946536884456188099014507149283559365332865878073446563488103298867967164678135738438860393567548126731638346326081522267743361034256279904458071024372908605563941984409751355348193689894438585629536549986258860485713492088747953260910977030346501294040228602836133422350547868311753104804378870682882815000408270466690072446076608132834861647163816967844605155176165371188763515235927858975553158127353916830280196887220255186609054347841455916346645871317346752404232051378466514548485210827433728001348672450682567941253261976165988765239668887392524079984935281412709665420506976947910909196918431017573132250706433908790786086732900306398353516515980007405308268960241703702326706976447029760260469815761395292209643118412199081244329745349697140355250428613898420598735576265543534721231099641807557394304984758358977867534082777525594534690720294929013861369117193813173601646476625497435511923723190337566403995542447783944298351828774246412327916622487261166153119556515318379303744830710564919086376924643039253332818232102651629843824798894081615315260981783582054204757574239190790661089061726333635275358836728525323566999568627018308121674052801800025536899293369386788116744077729916542788044678413562009362975545691518076713312963755314816579909072931041379628475994177907248909988399465812988705098836726884172624560065468114480637174295084587982931253382289570642635558951957479210047487800990674713490817711659702787400484855846184436218804559755361397818771100160012097380658520602274673984321980195069095331623045898291761625860113602182893530594673628712855570420487403580738017522416010536449207270031358736274465470777935266484464080671832023727942014344723474168049821435321906618542992546902783902394693675658550471520114175000886374437528098633553566630531447427801085599461612399029562865316383085174797943117702616621107506672591136795657312610790687425271321020893420430686442656219088980102687881677586333919879360681779680015207386458111864332223002760660979237284918816522192627682090188547803894435603204243307256873460617370232452680436617589619974446116911030486059055319970563600863393574676825493273026102929726522199970137847456683369278196032684120538725039677338741009430233106594985975756289440887494502324471045141157592838543190436560997944177869456505908673727940501810358913300780225183670471294785839325894520337371154096525172614324582136510949286496372790675667757029078810824521987372794038199950249285273634074361722349146013133741882615777539449981758244493738170620495051672294242853747166776178806443475674224096592080380341627847256942682902292521252384858533734791367159246949973608350100908415999161378048415807766179309191594718856909961023256006367965097758829543573818629851803285928477041372436648951461450501920694469100554517531628065330522640076777089331089867475923631142492119647379838595425577854479230575068063861269020901325063079395192221338609185950651259496621115675247703172613236327036342371720466923617527296437171794845104623856042582227382057466941639979217811594135596464692984830670920142577974238009352953076421311879630325003384984642860363407249831285559398096274868244319578185903888755009025913675504375891472026058362137766642009090107059305338719095934833833029991281661449330234883242862780945037445941996227719259121297396187159202084731553469808229179455741106929562277074646829225064076988440475901917347741466498926352361347170216506656059047328036496824398368514816737296969861572310728805030865542054653459983217996813769385218793864713741529934848299188089577576066975496074257348997204999445924747765506558813098857791532212534825426618429008335815330042553324053214212483604361281922172957838444800154600298950501182389646309785607091078801026493793765650947187932258338844608895546152946266400196083891130912856890749524410992955918508708629877492462935098430541631892065189010221083687385076860449558367008844971994147118076441320231950290439872981974058817957555924943246941547994050095786346491078935958277278660074156011277589271569746691856720880461585956897392923464608651825973480987627803273578312282423971491807934995218964891498748911954466018464859793933432798169521734810473007464831253068075519706380791066795589876645300045068524334584450141943807605732159724289332940953577690289281327309503733441374448424049652672649123074576028003390297467260071906965178930568460857048624192192189552950120649938297904522189071154499699379144340897775117026140825840144415357391257526878211204779567643328875396972624473187903295250147526864259374561435487996402355502556241286564188871149563905477942768587250411279911978525278635555326054907754163728187879421667567485785614162304336382407650378801560198809577238048798808776868188531550715521356754582486210745365289042299172215641243296548596040476034010896079300019701881603401870668767349301168067625375834101944939599597517992945290138196724876429435303494038404548902069081145170358019381915900539925385499042811644320959810429725600989398297814280181586790336160128834089182426560769657275476319967224533077566356514988924033280178529096715912155922079660592005166471511308401574719857331559508149313274438609677728968456286694798136503135660944529386858762164723841947266752648279780364616646165460093843200963866510587938358408749636141970634373244074406175963950405430230842045311689261869054774551230814292867131454787249367226271401948058072089560729540266035730001659184622869442970735359279779135141545723636680561351033735941605798693509445930764592536435012949183407465682210680243295447211988604208897044877259785222935514414359586661710840576191296480249689572963361908106473429291580124923341595072790860874734729777928310221170360078554576950931364786905913019289750813682069374766244097973906085819570369479562173390922423568787195448887076554041753864894947001250532659549065911585793127048165934568764771061383451657286356567308144810722413625202977151230115216366436175554153777313531260736738451161060841513583749649991446718312384781726612783229101190230569342678897476884530592788790534903105077614255429962938754841751963997912067148771056699673222538913932234015644585015038358971663177969650337608726334162566515216857077375304022479440398754569309976118475950363021128888392344959267003790422257102806512980545469553211495375827664971867066319707916922605079089218874076177663472692934300002854445172960164718901564120699430998616936685189833401054866295948994656903536055415702937086950368322581323917400113357891228386438186621427639112016762850917015801323940797165867875199335922606774097310151174226890239632200130165011170089640856609159641996020206039985951675993361646087251610537383060830138547011469178633538023410741772497712969498238933474609781466633088906239419319707976848862203944896652185530855371967667509635988051779747261793032691283182674862057809265256529034280190882705901405466374700138330258893616017150154888689359105694404497217202113924564847498885836600119303093340504248190948084678987600382766921817190867696601829782035599207189778042923618366306679457260518896053823472875932823011951586555180178283133565830986137316525935030805823962559082865729213865472195779312243359147323752403786908253602164629481320488457398705136724638246505998731146037622534977822103010145429875113822448213673526737210704666777974242250838584648872949096005218614774771519966024655226069621270620854168787239515997826861207922328864955994712943920009967608462614452966881819111809448899195588147137993148152932958251607601071166249515565937202893034513965776120215825001792716582114749398982521641313983316292159116787863114903503708046729113467566457367760316704471187228697777493720498411552534228368936469948659928163890293333295967050233310631864547159461989211746960440747930112114166497492276966387934136055436280135652188591691916012650170347349219857791215599655450788459028002419792836146886166968729406732657944855141210293316476780504320302389291620949699409462681126884776194192988872830204532548355595645610497507526105244255809386273420635892776828442281295814647347367073622559728294372637748776839928637632345393663445058464032220274973415024875765991021519544839141489452822383268148398051997076559268898315447157695118315551061873006768568040571230783243356862781303169868434085520815414852556772088289519403587858372024544781686346084119703605994692042050223895050999054746225247328128667550756059266570238196798544369738430363475513530101422313185966598355017290912266356068396272443084046523628652842323814234990867660915808115299856731882700013109382157619132965931457997811998234263059141198338941256260215214745561859783940816914555513000175131020838255631736162154590351291061800153799212994811409282642152270031879995958336372414326471243780519752445258629866091397653631205034855196870142616427373944255387041040934011786902848317324446696438392741321758809800049498861502455683932136997226039513159990952783701454801275952792565706687603394301212911978505936574394130654178468202190033810503607149529696827193408249954082421616396553900931007144638876203134913407756275562058777480798439458119495188200713205259403344213400124368874611015102666890106725161058423245264855139823924004357219566830736578634636284713947718760514239870777535371198854467657293463584698847810339146678478547087315150429087424592394613261089291950371011825492318420721043794200626722449362643509595503375838171951054431168732796056753298291613125754356825245646500812280522636814611597532119917066036435974480828856219322673936865606254293822490061995607753330652464844307273487208879767292696814797485326374608211517122721743446121372624336324011843291889863711234758307389741059168181881668955953718239958310915895586515510793911051537159282391972723851893459502417779055151515726497570872428767944097314530204095907691738750096132648370745595341535133134490003875280310133785644191147423502245236200886553420535485956209777634859173787806212255440225925273848307765179996373823009096197593801747525783079615632336266463730838957384671116709275064415747632824210968186670214207763268375526077611108988944964673277534390149108961636184144351402764581222896050603815546531573231035915735922758911349256900935607147977688700731954102283427174875749070918716304762388723409696302534078247465097250027224145260335082791705095244089375733331231982030215416350786778265509321713781712313716114212318124408063309815360743763950265425574723877774795160370760254863489482815303352021941346466963751432715280802910028162934418264108275919524951817369371136515145376975746303550396881557703938983487154988401323876915333088608396152038792659834262724317749276862696354131068465624484349311650896687484469347103405348229548440424944548029015008712091167917658606527872481257977534747880316689003510874585681745497070497359957113398345543688948216100537152614530056399124244539962580313280228578155567533705179614335935483126071990025851110866754290799917035370060643683886576034328421346749363284798134599509524459413666885886365358016564396724558897521380576361590214842158335086871769121384576004437560818745484730537879160685430938408101949720610599381353773087430936080254374618360436914874112722209890114767287794789539517337789411265620467480077129380534584076556161636714032813645067389621785209078922246439167986043804019848760595357572978480805364654179647434163208018815226299727917536184190105725391023526100666128579386128482872115114433121748164404005618360186728632793253969282324260140007259899509705126468119851380702881169297470365138827816180181143146872793323314543151025048027376973590692969718888934545315353695151898759688924675788779434750697095948389187091999856782139078432637031657987840807613470059542315330631356291972347631112370126374371698836456993918020402360170654847410448271684991511973761915708006875431889672294915351919561931247877010488364900343071220216932716448737890748697168890556697893495574826859945388159342379901066924553808660356930934748516271997000837266625946091636911918668340876039816053457187304488378784459945641066194649282790298714485138296622770697710186797262748362345055249868433462175825351994893583892640008216042578581501014868869194413913566869688314459862119923349722584933741055324623722317841154042257919783776260572497686118088856865797980045007436559961684910508497230735345599811561675513166841957334475132922964429136515799663255383479450766103289684869876281724653418103830016943452175880854960747849007567303970474979941243512618421371502775616682736902616881508892134935073218269322806605182315763054160723036713898748377933405015841980710583153109134517143956718801250305988695063116544061961806470807361237675368395022824398752860510511351814191973795694693638681274531652810635038346828357384405514229348007993668210804493606862164600676634483031922495893155954045816949724136805749636567933079196367152569807186187473119745962143444787453875567679230213614859728630338941823745049891769740071428842397668062831729011908574032503385452223540337598944008979329603741205460354384182007632588093628697893595580850949756506799535033458370680057239672681329462140754013128286368823074537737549664487670662370586745285605262876843710312085978307077429889423331966599337067247096895252498544582098143949212079393436556802569455922608937043796808830592173549902808187239423500831667258629898918865217070485809184394517416456009022597384114577622103057688690926001961997563649835723155371164800780419034073499583084414551229428177602152104935813182396627678715737149982841408036881971422738830208745015739858523972510668956996234962835492727345082689120271475257042705061118459464718285320545427233451594086986241199063270746182667956011701275258350864738849204602785712850234784675339031318786296649552070645507689584383918676790667856947756213003776080245180827345252143205516063315040369941548606130675953365971680023592160894781404681853314710609546833691621848065587071341055193617451037101599216136199509708650137780533897593988366937873954822789683336138162870025109398023076921640166695991773931224839082644791280998578064053243409137186218853230491028901137161083086808748672381158597421815653709296744655184929287500406515807192028280529922444162735432238256495251742467157748268961216185256399893656944505583510328185664131997626697439111167780948717936965736903761431922383476655463730888517770884496832380581866104908902147878769073115712614123453649639008426994470802551462468087502320398977365460713304328417053734413903893234842503181688302691387388458847942035579891651177287920689338631682700432147008424675785294166046964037538411912376432743868418340633769086563342469199412844660048651217780432768985518402277518098790110696764581909532313211287890901497686946981263359885419545567175712676678837155763126702761525977769925616437210301084993130354371898992470093957528242987296922410711118009672641573072618623927137157828061141430020171114264825848892720722572122032771300998294999206516489224551883661421595958912823752483606217204449590248575680996915586234438165167146316331004873922932262219431953654657677812098448625420396083011277674528313406762294368841354220939496071825983260013557530996909691637349665597450373805541787929382030075698430766954390311872706744220840025986793092414366290522730548733203749931817038992564161674496493569266521534815077105717773031882845221753638550909028760052076444558521723466926597049347060455327562960679060663231026724420595594961738355220588146676672261525390990922373470014065613975006335694487509687715208483235189794212322592920100695072008942754098085726809450590641548218430923520598808493156199837134863086316081775309934313568261193911313197553117878918315599227750248461596706646640528488092119285325699549573270133662891020185295971510209873181846394428005269519090433002235567601977870530906642648447231165417685422211916748623508214055524163362856193729156026563037485196337983124937125125846685449441793989395036130563585381465349742945202428280473039319639196656867950978121194503715184948395534618570760753296976206042126445050572723736239756574400005188506438255472818396964755953980263000973297590967668112501920350862913964308563802687805424226912067084666956677938084288797590663333851918316580733312886410779699802773881216321646181972297993823279225034392320715570655636931529218829355461902365071690769166585341141620278688145206333435182444586927795980466279701274348819999836714161593004038549093477123216230853924966881367722657236650480074286645066723197281356544204314442205442795569289248165106790636054314227622982051060394683907359874274419025274298058005737842467721405075868932757823896493302953931675436558263682933422786679969086201880895596168898194833665683085048883617646031216687630865949198367526097189379850864296154278013157388422626909720754930123834769332599468506448850358448438659834930060179435497954684711880581531834838854670090003623901656750909851974382608917629705175162644632104682240045354860639954363499876179329543924509327532211671851255361710720256583335435269680085114896326771841394897101579682237123237779981704531349779534409755378224041468783103118732043028771398412667428430830099637565151994256408235324995905280936608017708154802977468046987301844281722489133366907642573498314953015491797186038684886416413668203152784150730160382876090478550704679705102972376240049732679654044375743461492630923299395310213857334039465464313803932847546016682894570398520289897056199050058566331681025424796122497994161923808081718695617683355593082034329171118611940661424593023416858928325402281122375144878383804375333860052459837715219808574847409115965605101261021357390877587448522307072786751026934059525840044387691660888998376929711576754644468668682258216315938415334021845430200445567878616535387790068479648161154614774256766434666786165714321395605805106852492930203486311187697906757373061308658049805399624983088516297448323420918709324865566316859988821807634263361803803309370806856552116308357042659878493962774257427221268652608755377034324279721316247186562181502127210015338143527640446743840817921398524717656064532716663053443606587885020021620083222433975474388465690808482297610959890936151291814324694190177542972016826029260693628677593944130399807004856247227074616381708027260932449104071616943112721693245961346699250726493583327369223637207752705679531859869893932974519234065803202897787347160231747227460805571629448861637690049880287681783446200622032710191351233577036490080845554425576826710914815596736553858259438221951358015637711971679367020622245686348546905987780346589745658447852408819268830922777054604946355615841409745355423947767342753050083936054265338583429240886791409368144232858790092230529152799915905009065192474414170910047708499889030338563394194410486439219020225662877398462669712962868737572216188171278212356334904715499470758868040594632498061324505338954523862725524564400813036863468726841379219379578507749890278243158382732350331096708993301570664195240164048025986195829466611465708789699312666194868191195168899785713826088972016502211515000045916759183141379528429240162630759069281025915047690687227211554583699847244222110127830084214948985427598928757962681408284246202734481156377615885856666062870759798453898588853973591506784666774407355889621176490263887730463122881500824148640352512607007505904268551545873081994483614251750096919881214717769429055846364755781593888066239542018937490840322751020634892328309341028237894088989531725707278146698392546761505090113385627347482282653535901008952817868923851305483370801216375706186876378595480214881006720711402705172446818076076012994222575783785152623729804437548974460375910029399148776753477242411230998381469118795725444744960420094875863210496756226171098065703754579778452875550670681333011940370283684631830050668075306247064752243618574382697783983354212993579342251352034923550310322632422449618848671977535580316521471061995841040622119083596690789796338081213639892843731074315823093529694423351893330134370824326438532789908261497650024662233601347971746464208079836954651332945377557662272524462050785169967201989999340101333507207580771040382655836481700018825204873862694727977686819841244971301436744461773836037845058867731041552138029551148294138196811165301623559891014775948075941177157011650869218541147100498530766154450326362434342050527856128683711788698624228453711227804753731921404895699108618357580954983844456601308474652765120152251640460086388254089210102461583536189885561567954555943415393774502910066121558706401665298168145491504870910453636023369626790074204524510787476711108581603883350490730198454596575431151627225013288264132732720045864750400359753884115085871236676733053671651766723592347410822055662073897145896736124428601318448099009966194185512659140312448268215050509682117223862123115265230071316586542736092478521373501526308736450420970868697527750651953873468375231671703179386470783338125470305674216067595718124481724154900677955395033949743440651101402668832339813840729952577942686050980385710038847224848237875870249233921727160672323783759668280655877905336621109097334341997978443348526532435072253360398719460987064301678895409084338318327380095549056808509279132189616199663626200962269637110459230585985793321394571812184970469239746847119409031628654826727816023346641245867553153722069865707588845615920039276376761595539143811410641071280366418273848570213166476675524075009491137683189196875945945767797550505435913958847686279204416073899438660597048755736032076189399290784732570121893863512434504025611153110615981604106293472125903381033962210769101359206418442727572563624499218841929692845048865571680814766789660936346427193755563009580265716674060696704507005597645239753093566926721347565632231052170979726788201175673384420258585856309958277223767012426195014021412415170170625748239199375731539805651844747814978850715687141423536244332730212268108547082779756822570093257014058836963664043602801865735583944918479033626350155432400879444552885841494511564094270922406588405815702746990628262912354038024579975749327018239144762628671972800674151064615784260870892100884337577739685600881081369285756508018435930996339224874822734697948078406477677577435081064813113854120266818014621696063486386935182283330213466133693279168595030799246911478332513082076691015178579716958660185792729967194005523669049880576522883405403829572329495666610618163109789226399407301157002457628374773576308183798161638119079736031587212198313819620344976981620642398507522832773373258332437288216059788610987355191377855881403729865083817511632667454759408345296967092628169980844889010443639929417133550491721853044413612755372740438019661670623338297380240490629825860951393502749589875052807206731837864730248913057905481562736693420315336593480354522123759323198928884374803732410786208605622462175566914066496560325627015246939470098514711600994089128351947568274832967227217668299349444534067907365525417174886583901039319287413336870559291380027727314775486977554119840138896045288554164615529596730625328830411855501188829841586911577081853736377506071335054326871353825913285097958561423027436039576496067859801089379556543087594553873213235007603007730107917896408379918870861963208679051158891374126204838541157848822039592359433270452459141147350780545504033581903384706481014248689197256381168631933216497629814849539646083874849543969458515257951809116266545236733517450163608333529739655892210921156911978316729184425792575755004030749046664227090664322428513245440807605030997258302179025792182169082377943883480865654516580322492664139624733960511524759583935636607443829936677311897124381434507144263490668336746267965144875760421649004657804566810897623735246630448651394648231966040726712639274053714806002028814119479141742109645063130559424100563987780307683154549550715730058201479251595904602466115178393678560161253240627524204371192506137964850891981909587770580992490842085600103886023943155706409262296585461940599098696476507408909037102041073773228330001943441313189898291146076879347947563792607660871483258647930931942606503765031220789605973721194264580743339322946456217152992869877572374421745243510593701522448697613048297775612559901751454759543095729786727400721774104428762419527057513081889666990390251341804618791396391751999610688039579457814086994355792939886140071141724989460512023152862732692324098027034403935721351903458402887798823381422660989331849667478892669887427451477269584954658077358949663204319684227293905402342069936593465517594644019356968088757365135655273782755845600317812578547257973901689044629670212624861217876626477548370653350285918705939390177804647175942432362408204797958379349852045596799025405159404945477441760839577973686737690585564791827948871367856297647036197192772736875817422061934212158392214716939705250724783165836869092120660602977814422914515406119505865265141288187110649187969794316047996512884740365408399967083236314679272132449362698570740704713058434826329318845440510586619403755873250257315665275392902152362207415301446575930722750888326706370582148843196156531041890179125548457874634053818750561404423146119784513097056545369126825579444878042588295007696823218986262381111072368744992142469150404040031332186682305915435954967189013559031469691373622407761443103122648603764791939267717493540753416257102558871122830098045539403337048732823588397650909521672656474725802054809063989279095949756542290618460679476258129147809703755742924808981654174485509672708892033514269360692215766563468441714251418841300734634211770913388497281568269755648308409133263367172477250081903833257398187374366036429341681541608528746458725565350762115073088506880345696823291535406069272424136126383496243025222734822076674328244625195343816866329833335123189264153753902689802092306902469188086616534259713703199646563655178418522520774003775501336093586141637044909219989129808172359620295384773165945159325457512762182658826965023083274877952126416176015483903845869845831937117209368199083288932591601683152378984175095542145657354244770307986890738854236551194035529997686151218503691185811806196552576296458247439549463884952305229390431920834700408595906247758692673900383856751959635718838147734081913671101305078535558976019724131868873517693888960920970811996086393237611436761070356756751954509856677260928307830333384947896302610290498277851677349656630179240458141888901686110371492187075536854421284230029436184629978447099023892090870282586775997932900240687404128958781800155126238506698352076101525810292220691850589879780761031752744058602314927111485381252502212065908659017820258780104224742644030508149340088935536994215541242794024288330163556008454806114251973600079468367674392891368037545225852503564337492304061188134789864950179120395213927258935188503227479728304555377830648563922152548181723320806672527665964316205418059448070937337627385191779318699473024590811653170846477848979352443357203806146987009232700653873512378118935558807382761431387104773213306585242921769520098652215583227076240478674720185383578343770223504250814245712843756571479689310363418089373299722019185677528387336013394417726381562202849015960447422841069146815777966019357848536075667691643346140295482150176278079402653275401698834354341953169825972572703237672327104388502145755116078107849036727341375685054751283331828168180687923483942357902830465325709099698933929319568594221510427531613778589133026238399572492462565209238098216310022009938517838786291284754647499738084609884915717838740446198137448390687340591284238313992268355061730953776007733441551971134477801136367129304953999001983705760561472107745833441235752258798197320154370849321291768820404507449491093051786970567117701141965616954874695699554579466490245988058182052267828055440063055171620109170645496657728091231282730371179344888819275752509942568057204571560030883512548354531821670031202098881756656024815643339856121033521803122203872454617649277197607561639899925558844824712539754441995752875533816075238289074957943408478409819050499547223491767808998973555428169119866029105054819004663413715557369930816878792785736669646282662826784498376781127049916168005880869983507642972740292518890639492218318736923256039915873045117744833426791251685385329353340557406954661639399223125662373328913082446605159607568186413772904955157885328899061541234378136169948046390831109473541619189442527956102391550363062024648582096751952056686309608898274241602664868431018535792010934148995913294012970080979209338728524506836770635227193756121070552995770056852165473956309340145995070906849439995261099503701149114858356584035694439244018137587295066820507129554209918508765071118127238305255094270970180836733246047964391637119624816712878168808667228632754357219976027958550212499604293420723785566103352134288354032472088407536227477076722657032216145985308480701432711332327955896270335331133019138930987426335720748101442606041221949987395209820431409400117396015001163746493739333742500935967983549598081681749426411617589002974453790246451001157325681153660550492182290718208490667306837347413540876864688036281053463660636396370508400603225944423680684070109041479140807437243253754204529454923205488540944727773308677289572844835199306240623336014894657010295372769319239800791374246128988062094042510718216870035418271782469358852896936838712339508180711265203231606942139435044164221180458659728470198747058770491745236140621664718268422765043098722130253292080624410135651901924297683194184224795323048872227619999813059343435409634087341494009836113799290104049021651980016965345105093201186528895001349855481579764869199753554001996239218303715570495661114074906989061468803162745650430929296856492049391426632560049095467246245060386702779065977825588642987245795155182788954929379136186433549495607479606299394332898956071018500741297402790275983298534453665473738254430506492187558490547253663137453707765892998875453181707580339014469761261208012192364849601319145375873842088703277363104544410317520421681702024924246854339384818323972011733672714375914035732497421907662839518726209487736422890355550709956806448138539121394944076998176571221767587769774137476930080385309241470259267309724342514738979433308220709198444296349368273455599927565430849214500589594985838897219490804800211031010774694575030279867204560296682902433004901958656561523385066010860852470512592510723689039144260448041910688569171156055467655775413133784673435728191355792152125244163426728793514579872623606847687942449245432959375932256803824124308040441517032330354680593025545980840181419388391309913137803951658668856405344250459768630684647038529304228125371288812406383719196825131550640458658212202703344525150024555697185204494271266175570977907652201631409924345624965823463274199966965919096303150772162295973794133044906912354662899976787063964427543970530720101567866765146256209664985206977071028331992535522210179071542554910668909890157143522523208824935483264058254433228993388181433246077620211927635355605540181246640118064490748656792493045753030540635899858103643050669178836044633760072521059307210192292241895322382915890934128228750510980146316239573671434576541180542227401565044111311050586337680869378330384195969453861337328924716025322293697313224937997292800599267556724797579095349634141700203866341961453441828590549528053409997763087934339975978910568604133901260650786125608232043804545448631332510663723910133243023185466526509293911805432574169027595407190841762886773529998642546058514480703245585088002374921985388998257635690469402036938827446681840139984177397803802254291492591957492773178379574501072916189699932883137541980767264918001306438990549637448406914582846426124204961678749190028707996979188534126248108795055420743526441794719404034479651091027244817919032055597758773842727381310581436032811962348249687706680871902988723417289527936418706406948463980108956431535233422900314798101668431369479196147206097308580136150705516651333914433244858694690120492477325571823058188574716991463603187793301384759759861120961707162675773157297613346857048140979691548600125124206029878855353376478465112312928998520040610540065834250345163468563030940509789836252773934123544691012936261701989971395671039397745310096305490105448365702167199187220346357563638244111617093788893854939355612500904793637171542240806103438118860330575561248673326845606941752793440949702599774350146701995027107914478321097845715562188832741071097653063416812979334593467427567072441346943145162167047337673582685317196054281712858870830159316048841492190324363058050330721966018280900940432717917990576993235443881050324067491860691578406289873447376709234225782244945434828081265677173212580402386928936112556530820450653066340561490103696865856206381088416211250724374687218924209263026533476485100648824018753110775238799051914751301701155512593650950277663865604759932677726955347806327049303948934897959809117789256537443265439374227850627165326171004913012764765858878130048084071184414269029062542006789764961699662037240749990183839249623080167971334236069975708749062665937334634933117472389156734441286767762850073286742893474298435416914069489814464185413445247285102226600079613809607527010407727596892661516744436606657917119518927091206931157006078461310486009590279729514654677233831975300392998202306775086147937831034092325166793058858094449717802012406075320584269045332099732793580656207789144551244404825526930353303513359014814445164701717409678054134220952991809060291260715683392766168926744561155320928000933552341934762481168750783337505214486412300469359127245516840949343564359202084008663972887452644764168122243197900574037675204113145935690829486365028866513866718709840191265208719382146104962917716056112413262298472918197350192326469347606735917920473460195021468502042227254990605003905271739830882393469613295460582355961688596144385517732556825720040864066715726142874215865629365346667650305399437264337771175524863334654686617471029474257074711452408406935745933058106647910587257708703941215958349720801434732021667320029592177831146547941567632358090159344983934360311394701960236806436471015526548330332290324948488740174871625554178432345983583131736856741194821648828321983039293782089006668641656356329990025891242536746598742757842445313505681163336650379813616103342876913997790939565375874699178205295126606543587480249531054620790828692382531734870934885092202989974921677075930466511581133383047832465845377999596422451105520528225985513579954331407804687382883091817168865047464734200601615944581759276487831751006154057153340802777001733934869159725448358499570311690890502347900418269611277438910111368249836511243522173294127706038130263418165235751483500779868261068935781083578681115816638025428639454882447431521714465318821226560337168643885527949083722967271505859983902007370435204519621300668261863897112457539798316748358028660902437533659703795530174286017098228525434662822605029782281922967974950706846947014111471827123771794543954247545582317637072002093952480305502486152919425838074644561247566303293621119406438535126173363837578519909303377895635070998487264756328815771858778297353705484562184061665163805211633553595615713655488304023083904849905346402275363505322131262857984748871208797423919712980651571562251453573762296496995785161894725860193048018878841407706427789821115503893404172990784288779139603190909475642774628234645049618558957186727089305050991750825906016230356085410026150659958294094188223171176685610343109409015195560359419762952715191446546570114627356476034166407335530107840661217068804877676582960344592623864758557477341228559099455126197261503356980467429465446524107479989467997846489274548144629270461024277249451728542720251707513725879735089028835651237307514021621311702640482513319750428220989513845528136268841773267008825254317243579889892752698716039884633307640274102072542860753914632056334190051780169548164179493173488781224447251861194100883513137555490494181672864244172188026388165627539857333600411059599433600445109382525788027664814425790955484257632566676861865912705148389804415975502020223084423164817145782010230876136894006217159186369664756680115058939506917948617938811069135739111929119476457163842439850676760927015601387625473877555130821614917863311075676996932639836360199843056398867930350363110146212592618232432920230504873973555103880618396303383920224450218778063418013902925080016547655990603908806917718524407509635151958193085485349436375269314283472601286321556955893475903752173339569860535581813340404683458712039407449236354697080135396702968920564153270576178507436941042162002813859740994458039484371712237808591610625472912894185014337332011394192377699272849879216795704857208482621178953745099590160573191451033015921950477998616399735136343018127076636196256421829613557147414196825197784512923995180948027615779051505299624564676859410800319655247777844310184875368377693048120859493475149575363519083664510383481178383040200872495432943598018399096116144252080810246154834377215900747465469707895682559178102153564440601396893159844515933212019827378778074605279848063188533935925532640568047587139273617127439049444206400176046596009726741995011180194421994703076386808201891521069608033731147927545046918070866330683047177127699388843497520361508386403092367707966596240746653032058855795435358985947775420846585446621311741732136381937611174526719845377107365956594981659688759535272565530522586777874361969955452700888850431275909414330236429519830928170463636710577004082355626345787874785234482399846943780739800388210355197146779367439484397950422615555306393729577597612139082829477616090698661599524434740720825487274741637905412032043763264976757883944911594852617550814823643520144900684490375525495045287112775902440268289660239913812266687287169439142423356907167219748529854906502866938531390027800622281054659491949657677340871738526222585319584765741013650016883548356236992354401223596936006051229704848086706559828336254616249888405808056838747680592416721489925466769707042797594707443992401921713587689294557714824440483700282760938444366726557959205333286363821183436202774646087176456018236920499752142614111949509141365939939598884968732539054561689863096296277455693159627111291389068753371428581683265582291531673412889027734335549344788683553410612823002184662365260252030829905573599629412128403615848769828447672166506050843093323577916341259867252410741162855560887417648349820714209069639040582853918262162289982686959759493805904885753681523517451496466142696587956201997664381005061504180068707658470453477147005963307233577907943767064211961192058242544441864130889629668960333915001324327960992277835339589184662575993194526690242146365986846158650593407148400860403033855263822463815891581183633596643738185621040582013281656985403167355638163019680564587348039675160571644904016838278201603100326068032668396046855898129134031175368012912557689000970360499259145265139775772983468530585536936351824757233378044007504755143509075612721952284629606722106216074612377151537118688504003714786281788426461390580536475028946907239289094722636256621257205691977369329031393413587569782287912428335072502728595632347802504078961201978921646978228791242833507250272859563234780250407896120197892164697822879124283350725027285956323478025040789612019789216413238743692991691397743472714978009964967297895391487270489581227501458990446238905869642949272303541293353238761892115645887644297136389781641322138439455803462655791314402914125011688519989228707998820333274588508787396201958428491699988096256663978461402160950597299728709612433045762531292681564329180373839481915146495291988536197668964987775347004098933337972715949051939180303124409381216360642720597499374300957961622047067461174085734109744287490240722240719200849118581815181242763385231140880919338699052473755179697915334836986077884734179237590002069645477898046544209616558245456575726010982927946212016035864590980012146110812974865267664937754855501638009363914403874704406807417307111491203955955647637863687252125866419965181552726826102491047161897279219963728814057729543718948300129206125582500880958648234350311584272504471441799240885831604436354263131199883815034474732739773265725829183742486825322133620191484736976267555076004784747507130263315279144246484583105426179273255959789950216364980568016721702398636422151384913678946966518959963698189528929209109158145580415830296387791786935412183004099868888870765056067578452348837144892995803139722692500263442393372937783612199894600460805192918157365071406052132436657117486518651095866553176699331817383034483252372392809606769052368514645582723843589209066695738354627801124291041420564745807139444790481665880981587834729983910310275228746947404696773821161510972471275609181821603213271154482879902209158099544671791023985775776007593706623699315285106178001622280013068950348282438059889742807809786337323753673875156399625002026889171560872056819803813215927133464986079783246988263250521724677323215850527677276908073951802063323920222893513074342659786059370251069263878950489395563219211666113551555981326905757540944016636894260092675520406533365539514595944303364729869725224613028739834973048301961869455565752979106778727754721134723081066651220266183702365900835311812752978241047417681200547328540882448388546683741423365059125994228687922948350772627145754704620061650940034891292603995543195783268320040354268718280682549652538315835325773079887414298463873930588432411167585453287548999719550230033835213264235652711070175079374880683078560332541460194332096770637493574153953300374788399099007025314629659804152645589779939487647541072485093192760329489791717413621378419810350684961640393871356109818785335064948225067534562645152529774032989275375616918174853755507337163704805113108209276849359945306955812100822853145418170553396237627676852364626589367737334280355878578128082111574306197915537124356435476888116318086833937758278931522464199549300169784479090007976647619878336146456619219757545283023899841128019862103849883015774370873841082808014473728766681903237096742894197093402433644581613180747722821337753759924689494885688725904871418146023764695995080138660434705943517498600905231831220139459184889075304017368699612543946672139967231403034936228627011018302110667511115697441309369448508843086392094696380055670063404787656103708240980486788426585055996477627529334517217948195455073849381133042385946444639016837234401990718808607747458465023324552057248971165150373546124839533550370716633546955833592208900331481109310503562524157515546073932444462024389516294507183976761698709746973277318500836328590628633813257734717679708600828636578477101424365570873713729405753606851996199014232615351912187818324038266010409932276803870251828268990501392874943375476282680559264438064463585291569837975102408599405715559620169061180606385304794627810116368837111501855642083240988162569805452419611080501075913425742311627438861264992086892643935521215084790616735964953417920335729931922987009457311999116978422688536651053937230734148336277659461082027507201354847990537719775211020802148813910728443483895833745239607913126446165738853182117046599366534312649590347241970089105720731051403100314200160783683427754926384781255572681147907979017869070658706347495144162525321346591354161159377354271127487844264010320913869535451417510456835940101622677546837090867791763832995134146804688956935286804536200975579858801075441759285242964102754439417498319758454369167154537583187985830646715342764626016617073652015024125094132891717472435772793642305284204915384313671868862378670068866990269549824223482653556886677643797575821735368172417852613962129235281465101903304020295980863199433281222029898589174133129412548255309686872331162921846782131002620265685696863338986031149068251518406535826202849203691108013004510658289976889398622302002987302026668239598343372148343594114186800944102423948059712951621528595803182583624588407389192471713075627136269742883335952005433740229716897756514385002397963122083229688685441518076875750485099198641600385192906490187818432826073803657941537508892247333091289023297839157016547098990259096337756258327711521976990127206542767363431443596338669837899069142731429877121028098135403899051819659025752871711017725535981091889718059690665346225255996108710602903850682610373659519036598094590387568023489581209837818456632847510122625581176153911397278786965663647603878330958458695212974136021230392623072758316201715327098091760294702138897544744047645354181384402323951927105008365411261449874776295766461315292730408262464670170879217673162155902352103397158595470580242283827027971494018602228872477449515019204840639089778470639368376384247027691843714011326399534905539160928436499378627081492308485158569104536572034214111838272419259960984403071513288390846139536707141210527220506102534051019402940749759574527174929539079385860638632271697588309131577548083427308450034582094375678511762382918133228500723956526732881809023821928341494144956554284260221379058861020041883391973178632547226069678634981468979548112924564919562757485899108511676602352010867035720624104191113989650805631017762544678994028211648920629930993950416269193632852505659071223682642913459750001143812662446396194029226124931396646008217838602422263402909882607071413101340225182292518114507453249611798278098090904059866888739465434533741529283527320684520374228670618018757744193084575684590083048668952181850546205836400727652064823160244792294576503502716102402360482760918929259141865443107973061585721689758130145997794166716858356701456279748137762877912019970773376009154885054854373491910724448878268507976727424749887750371695099645685066210523598133155973577096559064049995701376219792921438423190219340151337337146388569975602575260969199204167969823087835133893409721274136179671333180216106553351478401227180500056058996254410874291771059638614888712165342027420219400108982349163214334109664552364564157442547616280614994862262819794712099533265692883575707687423148256547621396657615870188608830873520634213818055080953871062643310979218340123910155873234497899286404340085664332440355206342945708350867459782220190720434918209816527415475561920532871637706698839126538932588300907859330973252798030071390325461116679061262209148495864246313746047429285121225840905884715319438431133107476804463295291014411788533608414724183078822879553889265428666448434674012601752783005323779504717394619894984126586178838997327667730925977236372511240936935715309934453343631595721100047780613195625664941902661002920527566702498156483747966409720938614287428218067177294446686422969898060104500552718204741935330365947648428619741881735991210918110517831717355723362048767977349797951642582972286108934350157998396311335671442077751224522159445888123539318317898427767907761957475125202725763459241059992691541859509460537709471536644233681603453774944782038031479945248541902415822547307801051092213830438887300974159589762439285168272417354024953352564978836174476519814621487379737335020138996317498404803141747331125357681087728205440275301579499212248228188315859903217642180857611795898305076310457939415167540135991645960889661120356360724099260713876870353530836023137161827587949437078802623545134999471005751616584083140181416096414848555695573048403239322052485420840917721499157966705053940949709130942603584424107356659675150594129765057268149531775654706723150313046360845483584572144624672088377626519460492307291085755171808704011926298599674373996670398429978562924491578367945605019382322891997842022914384619287710339811795327919640087064849999273641610192982828364419870228318235369601337295269640031432055042715716563003478017192464206518546075681103879480426458869192365485930336260644027694822097406835423424397801948531719202606336030218984998773957051431924279415742837146691717756536221538380395561258833625325561989888138394131519059407836144156978797339022026664366760566126034177238527338171700746543287622673577991734420640145957598560581198520436099074878620106330950503989497135317475818349436118333585257563921246465585146177331430099874708293493663050146531674574921491274225822088849460920942321143346282517160783182427482236806311975876268107227796387411914481207607961353984499878324587780855847079140358040322793321570138959365817735396784757753859198605907702571498519979291886207175540665044143674061959756902461075245136349660724935824938152862368659264139236327584459542351653026603370230664555840862306562445697110879197830061029764884611057424265295474176486625207870400490901790467103598496470060348647617110294936726514970098727032847990599934789281851306023690074930957379371813869516821395468129591464986234149183262075502638768248950956748676320264693455175510292818249839119646790918239352418715552522863268318942087699775967873611749834858899300898246311854478422410113101911458213306528058112412300535896490363692652436919364069404865160756328368948571924613377198958925336526525704820267206476980220983714151087480827271214552656540049463226137117556522557855785438620484397274512811246989303953851327557208738586136332845154980999121622176081942298329537528843084974815265989509596031707675498664537413763046783260728838516515898281905983662442409841239767543381995641388773390255619104043407092540587331227195150043907332570074022910892710639857026423394507230166256217803265052508088792039039830239056304093083018130172614570730839500184286195290125738124421806436611596997022276933679377048967651600229489255184171690301299072120129650133350627007142276635497411119992198196646987095666400665324210039471451781291000017803245406453689450147394974900566906224257146068056925494622647946704886636289350462532097847012868109030596278379131960109090781603725759888909156680494319319589059697362378318104294372533961007287257463297767480226244825115785530275005860141541908753722113152887672443495488939371268118235765079757375591862260954758793900685505379226352071301751998848581413739120823909552910494808863207734526534495606973773156538854783575430682309858090330634518463435242119359009917725193273291229892982399848033143071342088986768649183176648276455164850978318312757196668594096546739916866673803114287725605476721566676445897568217849958036979388003509182753585483735102380350966032255255659914155544417369194496215692433112650812479498775233971600989640432045163241566124325014550343166056753606443540198147107297747801155023230507765864292355729797955055139760232195070145877926441473921211871557593117881085673494674367757908697004868600761048553967400939668266925299485376913467099834065831062322136420749971036766488090636658182890886783654476560523996116874664350388545496579393366782999422123905754675789611320021463888751427704284851614103790853626728543299282619009124004269300184230897419472337188277076536459963443767507305972448909468437335025368601750831720395152360017879073227288852436370333004444092781290593453686631414701046593418834746892826299882363013060137669269882177988517212454145733784882303824671916659511051746324312790315608741488607081554831102132540133568685405588343101887088938761393732502340880796593820148048303164481123176201540243450258972177670052598768575291107994887617033468123201993231132192874341846612599870181746561179146118689268370252016529911989888749488292420616964965430894423463417530646262066320412705247904652222594748526298821801665103773915209569257176760513915129079083306308913138467076780713608298991899449053998432749402438897106017627516486543243504174682174047720535790729788190300647621795656051593785317469975436785042996228068593836058350652163718143758120359463898013538578900875386377999442527513971642857645585388150959986542599611112126352521835373754089383829940714767194795565653338103356092091651358796043175645214900210873745219407016607907421171463892092871847601609024923191104226715102906017895674642383409519835911424086426457110707485300762498022067363837798445988414775150716229321920310260500551509076978943194378348211223131719769687308328746838329398680193191653702663820034824649888828009953080219176380419759462730434237050498168626631463313819924499513504093368521326486221662614304563801554167029975670181079914598371430134003203497652952164385778342024804974604813565562787670014116764532765709159469878574710951707756175897195470146914052898762386344666075216918405152920370643416714344581014881245904108836676936963016122140430307962334187927807074145543096121950988033073232712251430746743792949084700011181578721760472562843687444029999034907235233647795614826072754304750733835794169520854118581414211633663318843613930460864044381203050087374740743035198125879556512101543796185401817683516395531429788921097933506442189220638279260170808596615134092310144550959805004970933341826034628222661365245786243689338287481808083116632140886018962793337969179670238926003951088492322226248791469952469448221322207162281876337541174407176440825635977749100498441131586645655216934794699385345895276480298615840226409999421000433420644939416446515860822749727905680465910580231998140418166646897107038158991782599052443794164767665313637038164955688078417197066690888187111892963554097089449350838086720874087385891678280578464638730133563290056081755657051868983518288538558189418761846431885541883532205586551491960840135051091304296438673726701769209462568404821695594224381628363176054907299398382901877071378648219596279582737284384930210765170111412097127189513677811336345225119432564060929092039892030311428693110299616289715741651353122650976566387254150218818945769606338265402520174627484331378659366835358927288944137222712232373031899762712187563590305524059334406804067165885499108922339510318522804003163077793139388788124263739945766173505780454864709713365612269105452680323351709465782235132634711977541566480012164761891538394454382707413571109880273825243581929452706387243028983887862373972699481019099564763398726779743818824078646963720613457502040438651404814540848637229480891874953336845383329185692611600136090526980748507788080971992207905493846449129981160445105124820157681342303697584597931352507649917267189783592046244135583539680204390112988082084879270599398452081514555277160455545091663910861465981010943648552995834158940501132217591891822740788585450573707541719807935765713476422566400785520271235964984181478091852475405178298598358719450900926456203221456793600320098036589140365924802970597042389340141784940898340588942082813754108453271947659401578491808798841278671288346973044453463300113407842446974676100521632523146960746179723522751888911366108472825044733387698808997882496174571432653895931989193809453735620069779566007329207375987877395334012242628246381176046655295493277601516544433987977965759642130364849538029733629734054095365660271566620956242040189725410026903088730688596758323634848608003136749337880469881081792434870555858612604433511134155068347210280388630798842486479599344269107098070530828950651392898724560947408991150499159326607612639813504186421268398792438281063901902442716735076462402457681752412977343770472115340861680417829499676506858062512747529950655953249881866111872216992147209556065475521976145504910999069756842367521533929735597122527571508766565966450271917178205293885109369447210327912997299789495953721796541482204684847107971331529242256581065964907688575121283151575700891568839077515923394970555715543961203428758061751886703983086783340810134816839437033921934197424316334687716755401028790595185546970244107483690998853159223576836050185875678557363745857714841063401334897590877749058334553977057953521359016826647738272508556557813548876359883200278577063164224046839516165716965633117711645412249718086216525530845080263561891326043596292009640323843546372129515947537029341355782056091034650314827936141065660345442082853716002311366813190919641028730492085004174370383374462810464620942776963785580934275787598784183334039966019354202671488261281948862553950438151533608881983528174947354252961305205889894745297898192765362302146492716408632029235659299419175245477614408430602237931856760648303943416218753627041474976139638429863915287083114593851766848536922452479133970185679661898100702047221233180454192307994392215089918339722129466485426691824780579878782653881338779174799929862716454333930424609112847414100761105420089712585366728363148608986343464569341024174867567648864999320167607691395117456163032737449804460907809064030467634944431558869897372150230602240876896280899677720082954009728621969369799908562863781892068734312434251912571665860848853313223426184326055836735173575594624744942409189135202074248917184402231826670207364676861018624736484927580147358881296157116453077773099187906102988862871493020467922752516710370807163943912374316792866821934446224765726040705459985968287895948181229609966449841895435505126974622222840558216017815638489324156294294102354724474406529827595650852308039881041767531095394508295668667009805968039723878307108887309916708399098666703021614657172247840852262333384257208168100733965346032149843206972663930918651492548013701038387054784958056923908090714701468031944118829167741001086760714636703460970165877479386198655725149160321261997199738034901648422675449125967393123979900748310553850686618304829064433556813925304490175567549772245865537013114885452145575276500340012894742742237558340321677426586029415028540595957341787349070980159085826530220465780692136863441823833585505804406907890487694695230168242268953030195038490457409477237858413080942448126386762545261790718566784949159447575258904329859715562539168706640500338691147025275287746323076394773662205021243171119766975540707333112675955811430766435083776613839374188211987281402430195925772339924977456535991737370482345525690174683861816059068502523687172292558204547178143199185807494916821191010614101754667530762028915463213429187226015691453233924467835360929239259563179924773642655885414299302894571429764367323222629236024015550305643202837051864402703207009413308930740789714593411354663062636587285718897700556917963920940895404949675776691668312826151980538685795163887456933961269736698722204498574265207857339345005521824959736483872781039461205445156379796120302916594765746993415432710140747457728926544229966008021914307516320121147122336288689110031419826976208116102372004620991321164326070691988680286409722667809023807403593542144991574619796835571481367714201028436827004103443187994214361381197705387057025157767500874535392877472019654504906215944723770565106196759999085694877759391491159420150509913677419640531912235392749755102752262125932903159292020632274315631639883559894769491278028259845083583679986203533520206854605592167865528357649815669532315858857238729888822191559448037870908916485672990721373860536043712143961691038569517616028475707074122088557445480386155492999601110900895293056150928346650288039831552918890865902817664933855036021130100426140461218562027290863585170570520775006033082951809061933503365733692688723114598640046622373484736298028779881021471019245854937487774531159628979254055017807474919647784067465527903931955658138966925439286116812702860780164924717579476900407138384187102292173351898940764080897143188308922163936596875379870142040037849130127501003618935528646480423801407266877894994702425251395683293667201267277468876032284869428730134997355463449841082903990246143112485288482555246814876273994271498908989640658846538277748820154989400559486508510846581978619330248608338007255035370575267261626271208957483857078107167903963214061147985758927316520665138741418399014152408069427164153124841465750736716210143728566150672804848209459012141153970570484622153904550532054514086490834816933675066285207085044761687047642470629251984218234056711931759773850712138435661612005412914870910999681331855034567552502739480560945533332426165004974273699236895955712032345816444506183980944636812010841892621331466567215994708198176866591488326823185460165541728834534167044930916637484656897676342312018983264383910341875841362419674579946492022219798345930565636927568493597776710931030414113073125395642486385014555007579436042665449474702259689851026633743830181532607046361041203506982910077402475233657584243492598067819610676612549893669474579320383480118918046239934402048605474005397291988706489083532738462542597815237701653934090663961614181369936262272422063733819843067752648038741771906134560708695128829421341889432614115598374198430965061807992482485995574739758659791783500162512479117682056611245687897954672289441161207246221821503611187196038675940463408153405209319548994528013639239204558207050232815917711079086385994326625268337083516221862790696351346100018927287897223967334211224885525379496233480501745645714169688636010053871749288214974692896253474032490659110794774699550166290271429846508839179574390119154423166333872790505489315733714008430333877117939845502881051522538785585885276786724654682252601394142126380025151105253620202850883368116711791314535182745826907936214338287363671478550254061831507426381713513107673935765006518722579662135584845251998140046504966442936944626432535342270481087358438651531657478369349438175618439389101920993392079359173023513361343336174093788943324363676621020575206404986003394762611773065979007173384350861190466728309191914054876182490354096036111717587384282953107129788741300678157290071872028525347373683052683882088519006528889920671141417561482180485903016126993630220042457303654506308344452127181404811064626550218334918087281343170005938945464777807178007554115944795663687523130280968563849766467416423979403809780240068223930439751487761855101468074924443130493684240279796638069701072185944469466756952631588382852626134002780565139541647267978472018739287343174319563427146861286870318680268051307783311333649705142434586194339937603831348919536165221985717340060262681642333152627532561526998660446742821000163078713356756417605706103653972440343499640755239144597000424882780700901824785204769730606818272868950111230402025965464639168826534406245138943800868582630992637073830478363038980860109948994125751256140153446384423708749095624413019599875638910465209667545877660086590395215269307249475934637655249995739813687046823835782221350227515627717439223995541345490143078065888871451328133707614850257685232363829331474280596688096462099842247620743942690027942917237589747893279856242472965908532159472053323694904340279662663074027313164322304712428965781608109046022568044881972470679934948937439150755051735578827367466301133651280628067638738944351073404778542844945810324021530268892670928927343216222886653080791725525366482531922248604671904011881497966918972383904899214499063783422472582974487571387163937660383531958221258389950053175670095529364850788840429000362324607985108094470411877669656985270022423654214840823074249659128990965088853630872543273215141598918162875678113070516256851055815126713593448321780267835089604725800542617103328951883638910324473716748320591787336509628297455969434624092556528166566428133690259307587404400234673137376777924867261026258403688081693860941830435421605123289943113775339106511731742579190387744275557746660304066200990406304260514920298704318460132738950909981527030643369446904100445712022354511710113287564039593702423317102983934900820727390364959796732460701174416574343254996117806917646759647468797915155727815162473060583345263648512898167784698088189911321003939555111869683602326765781946083927775887735609407559829177542808611454330139500455246551242910049113728859660686718953557118903733300649089756833516500494824375020133685157284996369674642591495360373941154960982344314351093202218097093597803295497595988950811043501360621642003040542535251820091558762332175442175880859419299401661600036343910153400940398613816141852965918958274686221760040075402240523491448741154144506035042563623296960365972082364925594214765207713745747951220023253307577273544066672546063855660020024685704460037275403923296087432532813924489275962636999746081980307612158694436812543464760058234517098658868757896434602270548007083790041330514172192659415761568791150191340297485850517148608173156097398981871178896399754385938514812712285659202786935286076096100145004686282143308100288003423799080316038850406082976294182308278380860352272498102367705906046463477309524024902511871798642433919025304589573203908585078719522550177703765216266421852819817405073400266637251528093405208116710112696986779372259856933495194326932012590242307651827771352718844725327780205511448358644478230115471184418352293251149325726988617491226032840207277788433002018243512889526264348504018011766921894003013846230392559573128981537243816953077315894785564602548901233598445260305842110783664177049843804227277561814636149708220529789404684196421051959529763442794493800876237527458736540436860323925681203968153978062031844117517340635496464494688643129005659923971039802605527191344412176493157670125023282158682913399170943472186019906149947270419372232448113657773647843342022599969627985529882348358134519821814256759243498863133157643554985220161874700944848624572901415455918948887077304374958672079248383857434010982500628961660799710944183699874784439567679292388862416024436902715465276002249393490369054716744829657708307392421001528327233796093569239903388244656012980079191764303142021942373993964374442508813987203110473304468399440629881969793719757735325419364999703329803095057301944905176813411652445359329905152911986147095703537452655787424518568889601351304465467027075880994609033018356953660132791718794449541015603436922864802222470447675869609032209684225636134056348368297174343949134503501545627121130706912819682638673322131840444414977037384509444617548305453689936068205803889877247411952389292421637467845624985427985031449329953315855430027667154026296265166958091460788101747143069917441998658473290401655356658576263080502414955884775334898523646722389341636565324794364510059025225863213646412584998467961618435523403523247211105212266360915736027130213294482089766141037807091936558026221817849571220758511904228780008745928677362763323009690437803137089525207666717572718299861439365551183716692237254194667980821666681110395660439337503728075545148480681660436746789432640453711566586375053151208127132754920530682220005256929850143088587918383385888272261667756834554600420387321665037563085408359999738344203187925351510988383385390032909658740548739885297296837997229366012923123071602055097339309360503459039551443505307799861679247161443270747624508513019789738699270993325789524645547506763668264645271525522543338805354836273916262392529667664587548946734475772733560138382737290053938966565922305985710484827743980497205838211155382009892096613694689317719911147471703733748269810596270612913139960608821877214852557889824960571511974099550713992866920154565838343101426030808586884932719229841589509264357183140924710470518451287586998841092873590287431203934376279851641103244122629263110011096914955445030945335769214098033156765480642125772776756252536621018085063681829579287160839823402147203536259820636455200852312805800326716866834481511046373704849973483990721027211903580088432422211643344450800225977952817971722699732374386451794698445764806394894918334385251804287869326327529024478904759379404285984527499222779721000238911215489383823913828729899317311947617390611504478279287691102376475502522571732194818147370630130884178898195981629995410833902444106927067375959569971195359309384961102865740765063676944908930185586498703728972723433457224927891532609223247702287726296424917698080302782362172393798854005036257155488753610089011456864982824376781505124828205504920676147252714652189663004968857959976775225939740603051102898580396262188197128217051926322308951746815864772494006634762523998541731960261610369241957159776019716949023993287274397465880436565936496880168528639775155224759997649418595026804050064096984351130737971104411979180057464654930780215212529810087314060469473565906468924181483912636000073624710556481982589380887457645362774299376813587654191797357229612700089296847136964936836789635251823038913103992633758596525796164964499089095524355086589025530278599077553259012730600235531124137228833954640486577783316157682986151786509241374742372088701308805439522592788530239430921659564909840770609594261296282479677881113353326295287479754098788355667879004291954515767441486784044823639223350956600727547939140169710723185824412798923388200237794063975753657251625013351636726443591597747506119257130162300909373451004745276180163807096773700943768059667142294135896008247553832459748039320607960449050176920705851236726198458956830937968062543402509574621659518879755057796549195504949286712332513375567387160573563800289429902488512188012405686792361892475560482487495532826387314646416420598853851477433433172591297317119740004264987222438106142110327499241363713375474324062966725181565791386437025620243039647904890050442985262446575662362188208540949423685057327273776228365529386421319461785260626049990625479688474585304413059373947277930775350781935576273441069215589407275736285969449663889092158513270610171061497976205385708528120957527632949857667771947593521524216768778681734370556742374024365096351799715330205714311146401358640282902451517326107671692022525006337624310741617874762431101802901331809722311238240044665270255791343338648233847824083641509142630321466554736617596256169665943312066598512767046145043556505676323192723803451402535421280961853640658606595686500900542984050046093548530620626770476584564323035557962139704012841450715513295891545516692865827838940339152992238823329025388857260584924330742050480774965818966106091810585454197932480203796556828039992614596920546380587713649031487744048091127428165482419174572111024497423161561692475479084730751663266098195237956764638767882534315088220817956674771470680163510596475683188983249712046092085569971337574144650469347830224327100384214768793221424857135656462834010324241282632765420816089448070169154954190788990858389973870706701541666533841958350716971451934192037445743820510407777297327360839324163745628589224133765386367495504954305663770843450836517700464664638153286744482262904960184686050368834407760844823970025677621323572137726913923930959252379422056676983704392607890348267373475452833285765991776101256955535019262055179939802157103124143114530230698589870103035894212885231515064441420652849534936220244215603285094454454628741407401845085733373435077630594261225019252553251299186342147658214038307979527387376105273026392418224264154215090646009883184415256430726001468614601161949130240366938247501714189422592020806707745491575953845423781388608702178664247860286824553825706070078528273322265105633445664908743615822952264506909608316956172605265253491502070413802190340057017883118312374199817868723882510105974751202349065416840157335014317837335248193861982871799710861170481956079258642819561977024967004211000953800473880392004724546787309062927968600542682022838886684029083133520768865052779186562901289213124031511478404650007571261779711587696003625917889958455320352877641847839786316650707375096690883613167391476683106804830017611360594125583902618497547666962172853403585921903452376715116431337260067105594143593321358059343196515463231783380908185782331957168023225636454354657396538915851269617268356652954529933665361650739802987340183886461244163651746666698938924827378264542631427203865011755309707615587334543102676089168151624212648705807750635927882007357177805690888160798433456597061009242403609841782625417202152788307191579766742885145058773813376144840008391264395689171356932276133528160479732561164800243647813394194939199814446345033897730483079017221897876114152675849137827671364048145222417009763802459275416672698590142034111588045151837936470769448992165195823326382816833363255130234263516944400844577342648919320741277155095643226103868910385700958521921628484184898827326865547042366752750752984312290873054198395044089420214166780821968098279767077492898497124238809335414495108294256297327826692300410116180647868542163393012745589223242478674916076157695411688302134542171596584609084801971964948722854229249133226957718991065219268235209734285293627988609211679170762948584749614997835983430872007004771021856897441261723109103558622624994683902497802482310610773890804303172905984770452243032100330495756965955759098089718773551327482963398864571877846910640355644896125273514486823105300277818843106768143634883686881519793591948058645183785865973102712078058781768283476422045804174854652725579259321275422093550670915217460741863450104795444847280432287590427853279892586453224298523386332572078549434410071304918160075095719817838095600028747582755714595912142379824103442011990429800083484667984779173667633916755981233073604499817833000271462079471539626074240190517782696828793073342737263554559682051321475779688516552157856382150610037574421068786981759087972310547187859794509341635317309713427557368480465493684608589327951938780548353518384579551278889710753852648125918197952271446731488978306681441294809043876475417203288367931539487319278428206140837821111238551859257372026423446466169852063384534060085526687169998825468531836845011643354224246766319745613460084963085605745373590303320585846047421171983158007289300135611575620717423148933047964474680649638129316429235235811390296699494680014506883857295049880031742947556236767437649942436129590188781636342231949340725849731738971847387427493550985064726969684412652067805021942042876107362888938588503873245685564388165788462809886618203203578230333800993059130072333413234509602597374605200435709986002981455095784628320015135735925460273515967564416365301122647127864032448240077379969176466506023873396656356793403983565680722196540488511932248820542798091297110077004500227754612066171669155913980976565982271696317371323802330818946438128134866452495995445735996027340374953198103413735458599614954983609176126285395307873845707594632930371488225193038171751154383500267089958265452638110372525488774392601354060252214549198169957987371645351325509905208796779944078225308077581699560271112775854486844027605293945142888002909538028485411012261577841491581407749998414962922401988913083178596669153882290099469474502478449025713673569726397928304032860634546819859014808677414089210890401057657503110419221614941874314587847613671477391830535314383226695453832992239404561336060178214118865092922079294966409121600359051153880564921627054464191236518908206532775891997389222939012002682322223697736723300393821723674653052650743914068309474732126032088400989901480267801994826858553514806570539140057693454713673203875772451306975960605679539003726584611384511323064583372505805316793447259943055217500853177863633981947217743849839416646214485505188770661689027887474197775072785946167848196488792383924297012302195264384876917116929419136764539897530221318944274689864451195233611358086995256573849951322723448589323113867978311951784387713506482307870482998034471550701418820531041426682294816008160950246823597889332394676950155947575022359260204247226384941003113670440974536586103080120593089275276107285263942575292843621863776425354278189930648006656963672751616971819907226019375711689259479744761248762888217986501367475075006383234798839649774004884123575666865716142158311084736091393450002732005130798128157022256169065526833030836656381413470070819422166484822104159343491908204056408595224038800378073492616503002317179993148259291180037747446595015659399813862386928690626523820612336236745964072098350770110829907902806903410917509635731456182319044477049548661871606922803035013735952241233169641834879908074808040868998221727551316195878096775216539898309620348940936838565394211961230810211034710517424164346551719207792771385295060267518642439692655367233447841006814559511490367828388175705353800389460027690705631270232301414130663168017467973350972541462609599578815941072780659665422853016083098094827980877799541513306341851977872303012663922539995594139496211004195460782520674425080328818050339389218756524445169955413764778416716373075584797233865939263522401822608031692767084682690712884061919749117656286999690849707308233756477976874846675305269192985079280366818214376796073050873808083014464297598254170078643973049610834186196966195963220184035916356341184358185982051413631915309125174406624049390924513588519076270688936627099055946468937668006920468283630462501640210274379178544802485128618216125121145700035734674069253679036890950259239891548171622541825245208060039060040615540589290773206873095800617499719203647120978841924466670920444974987482408865905266935889487752575164013543674237920145307220235357683454468120686595139327263559276996599573777441103790910715683586584656220858621071395493545391225673280629527519007549409048963943888064254557072622115936312439491645972564910184257540822004722888846634512803044831901784007401167647739561543647139523558199976935901084177521973362030832625761659684119366145853311420753211952927669717042067051859842499762834604123163908122790890056023914727625472304465613738919348291198454930609446294509615911536755252862610591271212204144684177497818630501112974003941119350818908357333290551144074304444675853303908198677458587064667531058733204448664381954737084809840190145711080151111444662950746065233051734594525772575893078637007195767928495422023913726568259931838496357371745540503873578054083223542866825098340742461917212410659284052811166200923282960301721363849285104773585298392087098926316984358857422063744579956105414437052488223358026756746099254402277684009359318177750785767334532073118530837973695738202460474500960452405560064156835540468641810641559159869257448903034714608636868420714152951953996888639944162985012621982654789950631292147960564718499931339244495297288337833552253066560811391115575999790713828924183735740905193241180832753210575834434078628766429488113359530078115142595782796409283781276316746885253232980285679247320453209385421015807147401809479461160486277678673437757511437592333049254994572062768423364394693270173361084440187565356931607880312701567743292110954603746698646305896432996195799083916388510735836553973586858039475629404022863520963472170394504703852571085313362447545420010525967121783578746333594165923235625703933128018819799348769808508853873790156788859249599338041045070956681978068909791304753127014469119908171380579382353672715797874399564789154906407693819236783667232181905821363990349731439811967421740486606919650658688315134834018768134679042643955738590065483758071528181289510741440960450170439654853590538278043481358307724451600378609737374314721794026495307729429552473216428585864193133904622555731428767902253344787868856379770932207047543824471370721081728072621619220345167663856985421460029371066131784467434949460342745909707794025711988737531399123813260009563206368236285830789874153227446212759179354631214921585631006889095807780605937282837406604517338147569406689687907446437289032404571746893162279915260767008749579463655298108006056320535932346149132211508186917115500655666554774549787559290607422761924901312867775801342108401628830872921226157765095221015080446637440329782265047958483949290880913783491105270189158666597815395224336302038194307797221007492952919014175775251699297714793500137189964488911520647362966761218218393084899260246004189915466997385219675672930964342169889806341929533111660152026890675526392510810172592947411597057246702083623791445765730763105504694796613415062949874761664184570782385557437047474057201870953392723123250003365765441821501626602351718472672153312107509640158510189813774914265452998666920870889036949102304930463034175089835146799025697287651150445102675835608349627733345414395387961968611228627183777026264999954378975661863845224244739492492150548510122167075552405102103873300284593613184584427867338231426176973563642708421202831884367381928347131950871731221910120316721141109395899922884674801741656760993787819687707634475970187870115363507042680620343222196248189679109056279926872063157344359507897852923069671951104333055667838495384096125277958389105487968484862086797174930084521443594253462001124108426656675868978082776276840134698294192958020330574004749139789710591226422104073255789131404774670952163373109546710714788243474697322536208971843414016895152093293728957961799009745313228076318182899433189695689530472370399538905839657483550150819470100336494607541568093909482754499811810031151431124371620602850821167716052901503038399817787498619635004890805220896906827949155038157223974665114420407121328005606536244601968573857325813809450794347406603605435911681038547455413901005210856826964174364592697573011123142761569164064382930414419125809700150147626045084302994739777044340602558483155183709862104371824449093244999094123969680727355749909747543929025579847970934821903280850591023318505659588569341036975217879661677104230494235235108630072812871321479327804020664614262300785614084032598348925571208511898538223851362097287919518774650641861010501100015239214019881155010333190671539149661273638135349062018988011860626488814169435292751302012074448506939497156569637005281044364579654008558044162484257185448372086643338665752522858109482892172578391581914769136460326844762022558337884307066268201365625670604291660967399373963337255981754023690188353530079901593967249287745723100178133888506294267768452361064262085472070806053673762684766876846210436566255254577155820968489551256042709483869900453706023638867136791042491149199630147564672600279406939362920852680415939165569428310137017215002461341255538803212017480246619940571602598114205384973309909585864771311219005778516821354656769254369586839553959226979119815105678624278738635596963515965257801008877751613948594765302893365917624022970657836985360711004953475675722840793387469639698205275488541386380912804655679578673802477962455807493572388749181720103008919889932379533927562492951430639175417565236205655375337478403547514349918016962421277305751753172714089928417997105437997664693048399857656970388916180268894828664983964738224030523683857879176549873616284716015227511055535642270930341290634121405037470653876110440576312776776879558283969360687974929924730557570145071286487760372167136663996479516812181508956359322145080853486264524413804231937636533552748353332155834128888664778013962249460243584302230591757415527544778471665151580601596831434699386022411670339610331434441421523781212705290041529683283581427457205480763417399768540321142787027099465821456696142049358600517832030749599849994536775963901544332983729598770215879840453042417236885395654311324912800166886143213359018145988153451156496930872268799815440163790362584744940276762231405838302463232783555897049122876375516099352286387594826470923454896604043955282969349632732961945392634125404435830649127279699414425771537866021215962838480080776486006844211951284281111860656338162758796685046790939303024381941471345044461099623814170804588938597963438244761200943147501391451102903534584642339866533775034032887511784456217019070082687537123489425484526795290596728991141621687172072527895413036625313121616871840029084914010882474192903310039585332809030568981619595841464035008818383544776616176408343356576282916036527855053342920173444239999129821560656392330968312326061134984745904753481757247935228998935009434950753963734828911547110172984407907116384882298841792185428317498575601644356222646122594640283086477663873594598842450470990867877167500913930038211751981118425649944996192501939380472533739945933377312525246306404342992510063627726440425221293353639838887125586502821483935195378291219232513295504794270774798175730690981398175836426749156756380340241635030089974588466445595105263773038875334873440217725854816570326003356204904177355790973475984394759958454297654636741210753515070138512126171017094388163868180032534456078011389315457232587631687591414183933656822296246600914620551459783379115646479266635436278233025485821978207099747310916035110647009748740007315222876647396291277862184468355500202043071914200728462790183186397870257027722687823910369724454864110588891669111059220294449329436270354133098805268800879346170956304846028827660119070894073002820066435986694309912883866952379298666281788984272697048886044737676094202615377177917909677512787197471044080915599067919077234172080808599042860045454567514227713847378234110053118244306323887152844086268756605069723478477362196202376584411033721590438118946982931306928611598564531398931399489998334044009242283791251755521746218912876051394689884726771874665047852706643625748319169084915371258805414540363267478695396491037240057461302202931995031019877506028802379750025521574996446424533498859159093695439580845280450049366398305637822541056262416832173011323746636508183215513904980193919962514820348523360352029798922437731111500916585701032600353644447517742469891589357347056587514976256326803969581696949039759946106397634323054227213087624668573467046062234937841991983801309939280236522741919860542642497117922820503705375874271366672714855309460807796290809358385465468349840363555216845703430350063410235028534877663530471250688440872326675905655793347845911332126078901928698099359636775783128957269704288379935513039269512405891998449060463192776299056460394768756527761889878075082021154853642537919707547290711263442813605992811917357099215255551980276056037180905189020718577350555232713913962501594272539302371864450176617835950053674245283533462966004008468072728533180835272486343316020649687387392161609559277707472091863836191285755719394844572279339098413065940599965126384799973332898272447135236300117319458797298546955749664148606783193641212157264534076580706689602531854014782487479728063120191667380722377639208723247542101321740219317052468831195661303656707030521912378617793925690762722384770505239270622228374942381430610344037798238210887741439631390151070820312754566079546433713534599280628719694697255592487623405608599760254233805356029198699095607613736827707044286670464122474056996749209859838361282936506774498024522167809570099379281101073932308678935464775565148775074794665008756926950491325561264280600598839499515516257640827798160572755744396120181474978004513217821297863743751099747673376313134440669322169897906481415224596057960363749293853905804580982603556819528939522166957415642204303664372299146967604386441942130136759001693242269349130492467027077824818455231134611034534892733150600012302853833423036382471550255513687456321669366560444146424555698182319274119450827968870469417670296601950745024985165298061868054638134752514384332789919960927108581220089357662225697993598699221499254647176821012765199595978247005014221747545861942960392394590928828418146877484191361418987382812648355343241016964934655262953455634617083351095016806940228675056776344571474132177751673062077821877064922444475208280009834255704577849191916884176771786886303321268954919764573940753700988371400487025429260329638779287543770695604373399901002948526381500326289972855113010369858193267448850522284219180545540822774752760746538989050643747981698347177749076103760062828906194576396781299288020027596729449861547706520473219541890296708583780605695026885991520228616831779318138111337008466482823164294019403501667489299392408705756479425131999586127833097352653843359384167524753096842469778191862434377111559925282827313295136978782140742545163126864523275780821743915421468894359097731815658022057964044194212253701479918927885379033777432873409551174137835201919791527965001393868848556937474821612927167295727856384738632469385840529246749040224134389518832380107931460183429162163319657370015979427390045000638416513145176559085970026470032213022198522497413915779529879290963497289851176018113744692209425310313138344961355993181788354416471450387855471665976982467247974403116606061989122504156909044764662457128363820616674275647027759689746278418105147670135804259038575306203657293784016491669482713592856927354306769178867000492202732316264040702550279562093496216227338619486811060844935895601787085883133844172887638909315374072400072802532562764284026486565019686979744304259225849580474179227925340055252474495023408392656172390930942300609366303234802021086788680896591816847927368330143271469568445704936542127385236419762748941760376029752016153593894487622023573913546834272594628295090576514319420959551607261274135359833191841235784196421342887256687389708438311410465856003768822032463086565154107992964690465777065237950534596024614940206156054484306437872994525822626360919700634234569581210810188042948513682867398521325345198519868065279201617538965618411825224252968934634983238786265738322488214671822123921614521633252756700170428939905246548258778512412518561257886894555316654975464304753503190355902321438128581792753398401246082389071705460583596058677199021834652830571868277510762506653709452988830211962730293185889270847570148568998529665057338471038620599638943209413359577964476992214153786551124648537943925407362192752468482382849973125718645765551508695824151349798157017437827336637993430650906064980929838630333539425021822566381273209743546622445887643499407355388635877067206336811113229422983654052688215612702459628857235482642183145461433191254583311812559791473648401291468622198673758189771951882327852080933278280528503438813801952845546505139324690269115602676843585443935076285667261266508394535898309320803700107893243658291550801322381298871464809135644029247125244100245252544508023246157822063586871671105569328543801624683461967492375522775131051001267760576438799157199485970651760213891464063173502233846434583948354350279819027287973032028508468840198759498703781461796686462875466703998963042483342254904924467013293924725832362315311997123989446217658842719338254666216103821400699023027742644385714175745879439789795948158049729059777726218748279191542139015671040424987960383839873080715504253039320113817262336691434188476626755032586344926729416355440616416058126006897850489024654095367384485080441994812315226437778358928010770528723579813191764225440790262977522329943162440568228240489795858620420959030167530770098412550414395173705772057555508175512601790181200735133417723724762208120008604407951239514265989643403764245060829599666156088903857106846402914127173765715134887944642689107694108953101190999299956309309050352227772332629147014017864451463531187383784955438825008569273087839474528749201768864476353118738378495543882500856927308783947452874920176886447635311873837849554388250085692730878394745287492017688644731178310411019916006314988189299906101527781687084216213818395570791840511980675977695998753137757726887891088645916544689831334742354792980519109215146830716323855351038727187544676708295297490534595376525931925165945147933685063816797347866368832707895439596677298327096680062790539599982945777316823832607388018065410251461721628867883587066190936772979664222559336908245867103212145301576140656384883204620465511573100331062717763663272535510511401137294797424234179965953734894214214002365844081133883197617525505890092454531377560588422476286523876062724699030212670470780945124147162949557027040189986666320179842300550700844075332796256999177187654265257033125495139708649447191452729448830509460184152955625147404095257980099014633837977690212939408531024885615673506063386349236844895075282334010075202582830620711371905942678155214109218605705420961030713293725553682257947355874625677765164533109298228760283792259302513185165813377060520921086575617430123342890846992234973515116314217452542671397892480500251722320908212457411077611635359168604652376411852083104556005139095894987309707087231114254702312167332038108548092017873914879344888372685456892148778303900165477417622812605807283554153313690079313963000637697020076253505072612334415101114280709368194022369899913082474246540127019401132229999320483328746713553834945796358368992886232904397225844938171077259058039497162595066369160424288128254838697159665305547425435455973433201650174716942614086413803804665953223880609959689304939813989144177810804401776804126311873070380328407813651523786595055100874035838497378172321001662305272199478799074360574231409928334586615303026591088028489438826271928605926885462526118115065543143918604738638320149520141992401651017397674092260432548429456592585817768997716520267498641989074933642588243030082299140884230370334920003210947642357493708251538835961285540285715119996841213095132976010606223844678533043036052833245947715175211091321846929689013599203990675174666377175408931626352691592231667585283815133095733518294423401948575999288757158961137352500733529944686451772778107293555066200111662786406845834742122015354618427456277813956310035038009018522203997262759054682726991437536006586551263453165342239940332569876199032700182932290453802164698053155309882953376189673095344571303771285992545818022726137465569058225957869209898046116740093917323357544514241815594279041648405012175275111622248413764879395289487689110620834678757632368819950650817234936818500492013953969311504508406318331697956500115163300837827110749772860464151933114977718620058172118357176588916463557018448873306567412167110459918528506122196801107322548295187740766699796023038472007253327600594678695267905143195257354771411115730628379487172387990101107371970337951113879024422857661195134709382405516867298698709458855280989655509050058394797768163621359958964546693677411679523655933019625431714598281637637734830415853528871062820092867345131786705790558624228776977038033586718966440076045210507780109026374014363278004628628932431216984895696926812699655700961162978104880833322640115844498657886919891551164987759500820116547107949547616272535974431406989501434791552148701805244068880531824450548615105575082458334830601530515271410340134615871762049327376822811793638223772636769508996060057645760743490838086724953303401193647364221640318773501742628383091816033713053081947005481456663342292943943791296136117974299795978982220183820433937515139008187956757808498819671169957798148004686111102029985597696284193886876123274515246277330804465733695463654938404008197776097066391323765425391868682035668542766193268439028859199678814724835023195058877475641591064189912406912530941631256195410954353088146423434083316097049504493098116735398312937355393411873200886708671067629280266231313666098383643075615682433710032476128660874213918935675213059506263362049826465500820665018774633318404810965372693993549925084609322236389181879005872492386107832157797902600355622266439172544446062893294594542958310015673005507543724742621184651637120770245996827747589021270774608232810877746564376220508922117628625949233373223067991761502464359913563816206074085843974251331593898633831027241143850753208053897338011591250879562340729139453038627070681780146819477240289396172216441758486302045164887958376109298506760537167764010412278781795500182331972605746176118837794684547320398918381170197786622080801810164834714314032925450314249522008211143307446640136242253192598750915751217391324329653494012095392865347084631588215049551680144287064948483156384372726304816947957920355668445778638297228895353441185206100695450417704454744925970866988636099344700619938864727344992791272223165852836232925364825934210735524995285484423127322046747107806424366995842385286374322732442018283439734000322418590192380305900587222928961055149938830614135006493691047390212915439774945360510806487208013119049022311070723077062428339195289372209114877839087904495963152229896827082205304896560163959455860755352222215957383495960928649204136611204987681652094163269125894048452822290360702772755091042347607151026084703720499533073566165201608031588356387962243120890070941921734504778787740940714687067922594259052275181809492822953318214890404208439333772858902536650842632772581439486019593764875492447115208596616658830859553361607170585204247977505790595212049489913462737333935179735374909554018050208624252947155610087991541470696535457299922407093258038425538974677635148089518769883646358942549428422073120364510050271607803983361317000227633573220580504720999012877768935337598574166458520076392168780485736753929495033840982293979706583142555539282959192296980687772279663972939077790821785173247610873556418967084941823230292691324944913403757697788000085212068994885195011870424308197047767765647705166600738206498848571710483227234571192591806527116704896922909858075153627517095505284290392243650048248807448131857436465669844521805366646754837987356791642201329619035170864147973371577541061516174240444957995803155611157910308731347209903530189499946582192992196477105688228298614101420194639054232858443817124083633226562432512383859477635673012067644108501475398144634285931049496869363826400464162596469514903196111048544775919170658439270676024003114521271764708333200941756887387594777063240998092068463053477433241945220021763000466228202380827780419779493389391889852244085506866690987261509993432755942195136148946032754854002824746381855743038672248481457120412894022001415268847709624612221149992288764391919108994000764500426736360335956446442708189785274177077451339584095760446211432765598925712124640704976060688947521778888467536577313088848317041308470830281177925946670120877184128659419901877875096320028110237551436356123048655461532988282999046174517748581477601231334341731387710905577093670657365502031757900430672293031445024199197742809676221242519928632740258370400752972817435480410639345063732675068434688183887483323541121663418804241233034034909675779416537790841258687982886103235278857332155338151988305880458531534690431308980963694066418137041548593149666711598130899440825457153552300652508228496172872396746508251900453245582357486877200667479497121636028208523543027838653611711245321486487942413213317008523154337277460768066376699618895122880491089111765955157364984738860695247166847523751446415213365489246727612258539361484165143858186917384167543482781317663142911693785564618171660966340291272053653025444763830653355045114641522470865121213129009990019681516959215243039102294969643906355219906513943216303653453974715157350144591560970031479537382507222864326791180222854544505100668683826497290748132584808710208874950514269642937392581367718416906545215610876157378020535279580044684913613691746825371728035367843503618901245777758338646770048718755154181150371412945491142726968772088619529031100065214806047938943042612112504746362225675393476819222219200635168766825821506827988016073570611080555786168670494748640420270006144009779441876147854976458239562498054449551257091064027083239081446009251177787652063803937135711764476329221621412656483739471074513229050737205542332620863523012111923009932821647536436923790632503356825313554330347896291533044923115380919957555329449870528019033511674075276366559814722061218043857300307297879217356850001256233180674259887240109968969813852397306191955928336948611903239492535944158365958161383912185411951519926550704372224511063367126689625672758667738823879079133645093865117220139628594478654429621832667845170020278188419240093649036627235744372874485633108728789584584823525082015627422079239220339204508281946226152918446070619758228521338779696323678640133130410995564537477406457775768490351379167325321826500440150064624163640463117827796605357566760371613744202669161721891429916392304849738254289422199854547868948256705457712083060696640151754701139843828993193363522888572981154828691359603242851163621922207667981900638840484271526086590715537049718593352260571181041504579347353963276399887232560636896084103154413642148782611928541838499574304427686838514591491891874240066190283144798592264459633479953102863027801831150089300076576280887077688855667113610618616899624996387993702911361950062155095910026639429805842317789649650662756529783441514973388255236336446520362201321628032135004936195975070269172783237013837157643230288810132963328739382457387462450968950822383308441761924084760510272468601914474303915108037774819238710529112795905517498822939075512744080364169328292125537800884919287028546754254666973573970536536245400722239895620130676048113391563497277605671449640906404511480948248685117962164044280689719576297535622361816888500272856943365288001318441212141123898385195278511948146790166528406883821869586830661295903977459905614870361228980984113820061585914247128622986004171890645301008203279408858038576089051226987600864246064826948504861862965172218487518355652881466312752376870674667526917244167297354569567331667718492843943138599577385048506109731380578292094499444632394306068759581190038602619049210983987196993364746331140662945111471520556948040279873582430918597382639771340411416016623775269357722361477563479055527521664824146099814862813287663118752410741743298743627538504577774254205757662739315698404385677291438378359018235173687708804803437428632366590745228853952283577868134721953766050084686198962633005033093604099782229148151475257718379528138489156804919218123836041227135829611649724710802612545920595248651142278339115649754666274486718521875618162947119647138066877715360854178694183861466074853653955258090169662377800006558368188471976982444587322984453088699029933788779526571972808991597939419343675227186634378290793682444032062463960186699049723190315024362504081305535338306531610923789527333914369792593690728697404262340424758703379170022149258343524101571864539834784545175892241236136735291362601712155441084930332164423007596971105885469586957117263203798513719294014487119501537158791633212538307938969441274689227398610118372085142869319715028646909873284817207387381520159116379451230101019666620364454129562919035548105191253438713160015241247855045224548041708580097441643608403759638018838607489535266269503532816480968167944880176159399293563064314571114835166747565462775942167253782296133795200482904228816599956705076073487042908590849968490952949104632685176365224631701348799893768877984209294851296278523015988301533612683429917766146392549477051930205003105560549367763391632839538955788699776971431354461013249618901917057012018206670211657766541460513685343451173302843741097526751835575924718515188909168989486576041645332124170280811484675907730132725479460941550972867896718796180122044335029687962196440483278863799604098388253629382303958396983739496101712358218421774397427036469112581075159452663554646751436788687978229022955994771576430671265259718556151103574766104209641784124768301584033979360112118781120082317450371407570040927108374354010891993459498375670612740971769921395411095210125083981365495620451502436684311339897385873611306512474524232154257150917098311414008602648905393707127744124406690768316708542405730036117869052432320544268235686500327030306501507748047387002402672924144800205153067732701911145489873963492924892062897129047830449268538002831487535810599705614838069273730096866109888637890295573247377321839296823726596409999947667955760530718216186939459927781644525369696581224500935645899443219172791686763985578925399696609882487227058690249200178490271214863539553280594682884699335785668968529914380341052833693838980810654163125074949460944740888646908365216571068529029379011400101710418758204392619824337261561113568584173076286520631003127497144699781910388199260901664617975406910297256584746904507192524494658335276417463995178861690567326593163341245854517825808244900718850178514288717667208311599555929267262117825611904459506934896175722832507114752044127677657505086893670980336668678679866809585451635645045670009828213046712442375802553358494967834550276310756161856761102420062290862217868011243459156477566136273107961732523468140907001105009794586345724419026620057736717904612327442085379760972626868770094642272586850071636459572360638163384749434997520654319048826875825350515691074271345868417945695582717709802752816862020313195443597491646865492287630804666214313185341739865035226451902580545172423793197133547989443130184302401189808568284287635611511359254505175900660902931753419723703731662676310455267705728410826619539539676802350046763923223819889539040992691678591566892197646205371386957697999908884131768915113743462702375576135602359532129295133933068804106622580955975301522759071143072612099804061120495954470252902245829810326046036661079078461456247718072122094537822437960892084783698815339985784383584762331111455294499316358956545170743494100864563756823652452255289027971719998672996381621378347132538829807661287146255347835297146301393797884322985295845439519676803864770811999621581708094439895803825070711358270798334780985661030080924836334010664378517170500867285605725665824900630381665925027603594014207243253350329071534064372099104955441721929617285189318787667540913587710997530683942283296170848065834349711181400922782530261593481394755173603558408942664474933095846199862068129248429990069049530956019916735927003422770580777725794298919248350750002625357538268748323634227672480871144139303257644516263630141577372991358552647618310615475055054350039788791534532770215960445663570306770661001920179321401714796971673846973333970705605859892283092531295264942795361836760792879940177086017608475303934791124788612396945329823362750327417646243217820505863121003280810253530905228112133576906734827893771929083668640350282799470624862476886704402085953853472413704692825937227528959641559749916775787268700961437933909121938699113630197318971094560373016111097666244244001817806505557246233985925686553861168261270433407009518008868971398949213194807654561609544651226431496693496974361698396168741124092692508791649510122518675248363561605712348638468927964566676498484647671650465612669908654854037052810502823254158231964824582861497900418034575969586571657893599120269240475446862562656707144162771143207057262320457058642548648538642871832592358827210050178192591032186210252542906106419649321973848229246721450880276773631002510614658987528184567259205007900609926331793502930263391497547899805591598387407228201211160318474460731309264223605720140683187407414368473566930281385968449636781635546690457525318548265991161791886475069922132683880788802178150798752627095916528280767673143687407626055402771583328466679056225244150316045686489418112599997950353070728399541880040621837690405286046378220683553744365548569477836150626359899363478702790903099746277218424110017648215901270567118208766878227576467699428541130542428469796771293655637190811243475249918894104423899887655814909816313382834439867883056142206994865643705634568169510209714342381265370529023114891741626975984689067549381513688231255317855349374611505045803566781944318476851348291726795304651549598075641168998237936862654522544768231938216555988168975654498984722336080402362152126378985700273204797098350733847558808852656004601113636641069535797344908686214328577769297713883866875491736835535914853057824571910998302983139513757052525620958095401789769541394615172026176496607952106330548645811890332327753556080420928807954813104430831425411756469379644937008805178843906465059869952993456228849781367900568424690668982348037672283914141463938344197050525552745661524307031168939958640952184680068901136191300908934268278288375705639519533012518018235004929310697272580570319664319775643414186491957095194411520225796015794217433299871249539848164321588401682318015676822058890334434057690623837262060541947083026988680883194001517792506775717517459372238471772205082093070415931173622020003881306078884009111773966418883673332044652964644593441976859642812624451256257788632315383190956542867923083451240276168883596525102882925470174588508778546743233541314358139890052342270388006077143178342526680299665251595805267396825662975785411273245999963482719371057021772767908830058490736336401316479936837878094275476160827790635398026354770894899217773445189729100846164905691264458400492070830852606455660554188794101768916027728337257152926339124809056000282337920177526406893511804497791997323780203805484515346421441121574092611717531775253425231265652789565479949524999661341866856113717265753576161246756393636346585290219883593583139219249139341864245413593442816603840579430340585830595161258412086641797040450055709015103142797901457995856719745613645353724475732597176241622166560981547765107924332845973035022141801910437784872406174681283719961462839166425348030966724024117848379051186988338391790267930764956491327966578197716956457475933313313426260774897136719700587905164110575608680390392686582634870634540551576313986167638107741445122594128550754494215952948573989863056847155351487711933227943103860066287606970726922388392110104220541823141878387002847488883890566750633122209205148078706136108428374406008904461466797371582627202911168422932474824789178968587778059776094181864431634002885026453644551355067121340118869078555749941020501202058436935943833843142118798496695796671231829694191171815804943525795240601837585099793437113088026402154288164434430672028630306124498537156718090967836741275202011134541349983917111725353851702142430673210003144137288710554407895824702376490475232030970596062076120274233173017656903200367749269422733032275776275170079415069130235233822952293804237429919553110013757008735740489604930149100131051482856386998429294173647557855294153337949392024402317194271602902312715943693646130477801570469751026061543356023532272713255237816494055253651889464983903451788574439635435801343497602714738438551198478108928668229457725753597842954543499095269077618698050126097324257566739651664186094335038414961838737035093807038010169536630461609240729436221133735537225631799245208681827167064196100450690001783517268153921786584748124069882994394469284753921204769670400891751698004473501340113780055210563049882543493206799641734183811320822606619087198336021714825656239371072770800442603025786437546914140646737998813330627498043404884443393728585142092907140693132785150534696812734523204636356663009170263359763238861424438018824049100851015825229325655672793009966171516757110370227909005772432264519348539581533676201804307906634693859522827634852807373926695415340681286594346995691180472437660893831562192438656410313134058911508072193286739168832381494477607199208103547538842345389673265484968440806351067157523712030750328876853691661238860177353540400910880395892751210025497166937079787186642922014014558824562342414467031323035012810324420163216305765377138709905272596849408782981186152588849252721860328952218240262829832327008176345561299714577465837854724296746182466438490297865300776315937919644254783948828268065501763316234010146327094725972018823335388133530254565390463483105173008497042615373676406203301379064787387371214645255533658355828253129869085396002636689072550568271410004173522898482171759994026807464914188870306381471153296467895593180865122302663699720471131747863490527766941427342272327958087000259828052580137853878320031180872150984623227074316277615294128040427317387669976955481915380842773570932813737605617669370728806121195580689008159939826487645120033217856486984320906376025629999288897307612477412283832696161107516489152282506445462683064172271803383431737658197124639514478783200093513333186552223389556602516470810190022446747793987501087746162698894095028131074856975128637090065771914143770296754856231438325159503852517313664426550285981057641837070482406073207871177055295453096981835197292941154182519583530833634749559978987631994251041743808773856423077173325405197636112390635219894917439052550024775592393944610777614131867655092406892223028644317156237562055325359475888341884110318326056616085707801241213297274916600004899274741402158343701248157419129887709471169331110411304646457319878710695701135487660168472395555808872908971746912203692511897246805917112574573943911456518061060805637865308957847735391188780952243969780018458236443954482446565562789229023722984608325547054940682218788034731789918341605402685996748721800813207788553382430527889525289709770802608507881752684419747475030089442427002773032472938196957991276667626902535976229524623326878831389484003936817044687218510139571324767540822323043782281750498121221849238110607200441017372402920022571947628031499451547833447030334645316373131527491626927728719658075797656249029624121342739474949499605804582887192221824373601628086164468294217844866433081941654909805035061939353734418444988481855950496502632226450862252087098394179516137292615631666411637908625996619584832695382064061026825170404948988385791924216865098291704758395293260119443105729997009488200064628250641429808857846119843850931743499331587540568461844308724816903828496944549149121128389917442698035544256672059237594015085287584120562381867054311890166818097178919022122935188742790921955155180888689031344770845777714549283578452961724874657333204316660641302224078094099240861486196616461791573178124113520858151699182455410544125676216433441070173512032368369224702394752231986468094665767008441477627112781820370673947730272527129920311438451352019946347089810581466817328707877561024420480747530842041044301634872633267883450445024484231091775516736707605284105175214522934932480284264838848469002099445286264641842034722165709568643477981110366220426052840320341215341862403961367926539763057239176780823941973879373969931185790454468787315002799164768258851740784400056127034280313124159400625600806031689679607752678055851584447737573204098686615089568326179598719347191082425622188268900233410539718917603630564713421885935991661004043119568998668547095296307607868634751808876682139900467692737094847486632625785263229965264902904755726556426281710673612277932681885116213824241463851419800618482560202162079647746012249996696722868524506028513800617648263418596708376361601771787875847872113524257127483452764923176264625743670922662113077335552056833860543070541587402449290035756111655557169985793131000681933285380018287774723250914115819850576954509512870720057652266342717714995753519942375852010832755725591013419830661178092084032701596302419735914966068109019295387886496291209154791318409276234623131144410252780158536443513026311959243846145507833436871321090511487271230958757797122207183607136023614162793363027620066151301431755842436447252712844828608334767494112067999001847319319046961301417860432255267100830950296615161233914007232481274069433748481319458570184419485195460907139625406959265565362319238294985722128612645094639194954110726922190617568177212932823950981632942369731247240843462067641516583724295223693017432684138741020941322315904311230900855917808980986398114724234312597727307258749654507988460850364940355636064213602463672502975825882142397090696389475158521960100567087576174342220068818401867828964079713421198798942420054262322639109160808328221720623832181566009563766131150703525394313704384764067125707365986370470574729955770563329249287066767157842639748416481898746442062732629180918634569514082111262111830778423188055048390230182385596198689725866375383685485188089002756723914879675747587144770449639059666476388405551398320851105180869467334421469643889365198742929450079635793367763065835479134409437498487491781105259529349460886960396179237563635270568286632335693875478284960491495594355811233762962794911089627284563066959031292373894987390646454823452653011245970936916636819842940197570396110501809396370767769574613416736594918684071597994097749212951447536435570510404907182268047753468921921922396655988926401383385425649428775082404565581803397987528075009321325165955626489684326472095084572694267619620324652425361138081285541080986138899323175276100059368274818919305726879270527066816509473844112413522522462164058966977377662669472230604792593765890405451089087271966929602615646056922347083077659724942225173449004958810325871173498512933407482889628228684514065870595822088546356622237969268457727080062428624708391000127132274669329107759578411605552325394275509600607608370533448080696135747986610034569429050487428865415852057182474934302926645020129015228508576137455210972739110882540490195467902253732559437010933022233435336792479155486508905610315092010532977003311490993319144158254039376710385615125897084131515152832179811625094407838446359926982485147799826238367154228185069666716266201761609705670948611250935942092576725027370408358338931609750567830354428400003970020286423333532380030836727576947167063207271563288145135402665452805370561633756575655615604568397358211272334930266571373761578088814841695460695189245089776145827730564471156036723401373751239113342221350995201035617764307709080447304826899917797646876003448036444148641346346899950784555102030298886333848328181072699200088982857193684138915398111676352370135996047767943273521946249418339830341772752871973216535239747836661598830001870135480072549967794815641222507319820777374949369340515926151214725240913312432853522660950991788624206214707618144436516820590669370269728484430350602521914049775512614504465725697123159579764295821796831320720497667628657047131171465971689941414194155855279213291655341080358645394236043976346169533528984633901443709771031718852633529786009866930866984352639341843697031885743906286547106851908002382479226597066957969129228277977600811198961917051876577047154804076234201469014747012300723672006374794146524884880021869725445463705686004723267422019698082214227784721393055099639306665883512057342095362327068335190537432350964241692802434924637529131968240070383892099468207970820508553026506084172906467894329248904226662371493914871852045333605092819272200266783545090067219293448357187400486452584361950094552025533853015019360827545508148367762943173466687018398966327368706671738897838170585143556166265753058934928379956883715661905117469340198535875250672746157717542792976654112430661688579214663048265376236291786363447873206048116856445133196337759745210891420642621077337168716290579109047378376399934031761013295865660178686150841320259943918468802660091941207015673670527521044602542464766222553796856221129982222136619496927805123461358938800937870064458889553009309678080220567122291173244962194666336085015095949168091194431883188755727288072604920484225726950234777273625668174264307924072732430554923883140548639459295216734612059347331081226707443585443063905135486124584692352772955595950816339124034488084615574831651102805659691260473822009624298786189595228730193832928596279934984472850958341618215438661086913654406425908911589698129897442714708606373440889508112079256324343912160486709803726929822324855824995708943110863765484037375213836977540372535093086840240831865921894754342546568199331920286973641687638078055942726490940543186086883587062399303809324893776063958808816927882172328401008007787446855284930095356168133698782188131987960915707800606587512041368105515013899140721605454073209842445711240786902752955637176499692273209734533903274938422469717756042912196379400439291393993696383431238105727123160165462381860803416937792323608064841668516700884580070799053990191389869288678868501254679168252957297950907781400775837291959525923077898529009537496931446488560420183072483668164534888900616418487213140176197920673842538852829602398428554013089339238141175701208083015541888719101171220354396041258813688804892939409662947667940562265648193922536371686301060079822869890537184707195524863614424529839860549722667381399271232326979135267819475081542475158259570718215174779333083805385422525935868790011201769715069484687232397756960219053027729134417989533284571722569595139398450080818550502846173120934633238976743966867841162982536644122223505420632363899786130116046064276425247211995387977652547098991387573337095875444606881810333079159233516940026805099690092016813695028758939377149493311215724159021236225154972698785804236244127487899865593145938269756931430554981795065314418668327328819513027519956721753823705715225229178899738983906301739917299478596473288245148057315766239727468127206928354685997204915820065493214263737853653777657763105425649156377280018981099444126794727692115095607280236282848806019820301770557360355034313476907412760284240702785624501867604936809217966663050628579192569032160921550382981573843650495683338819914203756320762894376846024766103943520229448101014041168409635222224465266984042964025300170064070372331719352207617831350035742568452310201544861847411294624049632889836405515453802300065762431476684153339805267798198723759552846345594350875975308122540783115285645913826698540619890759859202685372792300841475303461621845748488155548751802807500870114860205663005110795262621816509997046246093820030562461035531104034228743366878696989658957146052636013394740295502774288600482358997616032607498570471221845586671322714100697884695817126271499385898285859214625368691960786535613356845007576646743331086324711580071025086357042200427551027969222298288679505160390327842273887381118303297732968241604268323692533434394805615130277475655642243538631283413939265597296620263849694533758729394690259628738874014880709463380659799698316511192908802511925602858173049910841216417996843252364020412026660339061356441401313893221202873062944532613198313335654125205821195292932149405364882300337137813069933752626752573427205471825985193439712284754974232282540407662617308559179774871262988700226674104747061146869802870273514819887933069078040518521698287223191317558377555383293064193433276705871185727668714564964750046792370667719907069138700087116303944297482298951815094107419158382849830008905156337499709234458126841189055720390138093744926726325991473345522166651405838474159317937747013883109292072972574807268927486362545010226180365457994969418363051852033485830613886089153747576814506890483050474323104175672544456786775405653532462442638450112540158811337628792279144576999324549020710057193890243323158180677444472667231766456076823483862792139092387243041511088833740482602075644767577685231345785784346498458293362407464801415979464521435092855444146566236726007057107442947148089930546252461505395466729457454775223098859383492273211814012181993728972747836391302422295422832265812729939788697581742933644005462333979847923661918522402262545620101262962274256238175300517763286375539542768604195767584878682935658016484751646810850672530738693501865443186067821174807067102386061328973257124478239794432392685146855870717593267869335876854716034489616776117163412996673364505897921107546018301236333606911449641883879341218421949353787499665237975153917630591596461034715212146564274723918539650213163259112308165283502948681956571358874767723962901916931991677686458730587552887475970901591888584134023149445351637158204611939295386500630901968781148725200246325005859550973265669759408809248852766267444246672639849454940963335885449443855070827786604326376695588990942339213345324374586923695535840844157854104867882308876591499258587761349378939338172395661267326458605886099833130238817706692933483404804894481441182843465637528081665602947298876984895191128972799505976303277305177693767829975992595734475281486283944418936299209900241358060024233268552032534364649358977527069034359880903887764835281141728985220615766577189745996931269049942745958577489007150177102800505102185087463337480281826723866376110593672121511789100664460382809245724443141738580831441736587686372497575017241805055648156458882694424136256973792922559459020506132103923172279468628689561996741923400739013168793818041821283172850993591980470599890853152550606111290296074552765416055543234626101670881285152031851635233054684501630978768688625160955392182019384304322085788084740784823651151685245792053763628583004724889499062322027715010389354247920672721803903231808545493523002157032240483035751683461419504518377046131294502206404923254337208233095668957898208001861335005068753785517389822960864579261346012293364278941293472373772411834710567199474988132556630241748551125446135307313825080177595900205755256882935354103329405824763345954891191480026305941122856290209919829708922675202451182220011255715792407336505746127588382381239480241104044907188979390179213491779857502875171121244970710366288905267450506250939260199653995467076685614565930046721731049675699045562486633893772473508896872455308678381939797414983908087007124844406148488248961310269733073859124987903741870626001051421583904088761237036537135202929487876505488851828534282484100383985536623133764576709237044770544344802824908862322096586644985919433631192058316205453101445784822337399509556817273414508503565028059306482927185297472128532388175324000776256548899011148468346232180460707175823781636211573793933365635143612655788243001838705978682745348622410331270982486944422546320518242977330631937828805247362772790102365751583877704457363802324310105913302522397460325442284253047639249936874122594125253442745719143579042619855980323554107555171796022257310079403792963224177855361778050880494963158738321286755542970688659515555216828508491818467151197608790723569786036462041091972064930041231501888377704583113976291870092380526818209787516650895211993782704945513992044479894337884842312224876272598929978954825746643485755792646037586224230854016062202312395837939679061860820207384862333850063860371679539464128279817191131196147821670008308089507854458132669548181663862569509252316482191782213462414175913354379790283414237783538889205956684619798105231928257665293832880911966876104818588964544244022054274896911206933353455235173072013952795452161236905634557270256085826606485383918088179160707606613864195339075346310423163143461455149546839215254571765230176279071346702989641193481046862487310912905882869305615485501098657169943179483204002046150289224283253987204035091938364542056806579819349237779739923616433923284412229124161310236812384123094008595559439212389026101480024118436732572185669286852117117438957735567136944036553418826630321967371220477846139672424239343820655757101465210839041105802549905743092709365971812132537294532761292557160338115993272951200795600781120533146361127222089311501471925179535242820970463835362813237330503957992142571430996020339068800578351873981889314118130306073718915536987311697604985511407637751095130499113983932418267750678612930933434194460047109297871418984838011031102741884378329204828390622011459245419765221268914531787212145133126779878455604456159595249754529857535222154681714898414511138425081410550130854896234243628497910419440009535419847829409880436504183375719505308169336254654866850676594860210844032088836979178574562358881459948339271283258175664781489307630183188450317518770254338151217217473808647418369178051185427139283059255152036961544265579274334095174087902928468948476751281828993693696380052096625809630952244784114162334706388675154201504131753538500081328771628081047001883468965555544325765680376567350202672652996826688446781066574956350999859617889432443075158310549771763453238063905820477318116208907400124014920080192386954492021367930242580246465176983105671485019785695873997555678750296617328670794908275661321638302579365272711723576493719772988183876501600469601980762607172973387195864987099099687247174947611141014782590188011824536102152204220498197618163530033988599978726056037579759868030733147522475640075715187922016448589055409022006921571006776359249857239955276320144412168491543577800552659548499985124797809019990908814255453142011174116939154833148205738280414543627180464686626291373582349664828752208969958362900365962129406854850887900797060971536150493030709714479356640149031120553080824095024438419875824164708605864899073940687544131101744503519464872331767462602490066115788861097162688503239042564216657930197142330777144535538786284325143360212501899094526144540052685213771778766749432239192593559065144012279953236573878596336671886798210051122484817540292475013669500504759670844180126373458801066225304001850669818109719049088130229187287636601125981634073025813256626207879429393773088340581698229404803439324680675520008530432140538370368119674497364266432990337815352550225246825427764482726049064908269772138869837559244207237728578067019484075482502459031366717778767945828097120074709141033453979230407021247047895972416306316793904262463653315382468027846299984929558297067770367361780912744865109613194783755421473472609778522142206977441733393023758891545174462184146588817406332192510663998626369368800156129053977489178692275227186600000648688606943843341695689761910479315504073790699480541423931403427721205641761019184651983162275524847093788750088883031786357307282918767303563271353874927186278478368802704578485708707347281843655076523511706256755940456147510817462888651388948901961691873586644017891139650331248286282127732341495662570381436670394964964220174269652541250313866715492577924258247183930406221193155293952472956596108834910773118465066108537822372276507233007298643368167640663482712659661133551940546215024279598826033934377785136896658920777477038091230619879767544853888493488615179022989513355151317816944793898448055101604475387293460208105642399995653132943818118179491682066434229861417488886246889109104015783835789046470338506242254509152617858172096015495904190198081724986333236532399620352998335812881844400312316684412820921571036500317793276716554859267887642911944388521823389650944951082992926077565435181399883335003165944187490157382515153491173025292109119075949224257483071597071033946394772901771111795483875324543082191957109711631365585111336167799267450022545674617270261926582280969301676526353679785621815044068552425020632774312078924592807308316095449322819905787604227141254698992203722558094193132907397952984690749668849730282861276834244509402541973342783863713321629827188680287704885903981654266513122174665068839034388054066287613241514736498011322568352453964459177880877465457020953889057559869620433725788582887664304014860288134785667775223167700852815670313517086993687228395979776142704304433875367404610340962659814007959537338037660820668071019298809834646112535217262647461480906245084356091832662332861476571788736707043264496423755831118108613532063045273135501338932584698039650758945995278709868677366166565272940966270953618992380834352325064535406536366700812380843142129160848939260647575042436077337007697801048622686697327206131308771242883807951368232596049354626987547850697608709062139444670987050435399717068285577732455618338596725841529584388095410036379769074832639223226967631086303998106796892341608259466054119657825083379100517643071960066914226778080310863589495491266601968216898487279809973651882678777310532850591912303608390383406391113657529384738732739647586951190390961292144657800965627823085485257649831923721384198581880491491408122029836664762563895359153095424421023811400942201054358733602176560751537841989836183058408095095792328872313144825688115900293087041948841952225155771425360196960007116347447439350056845634437690033574176028255491088852153239250608784485978816727896690263172001067206472074045942489005080762823397203513834604101168558951501894545922832586999099358318483888333349590571254321971399928556698368262705426927598788149893889555327752195716198846758409266923712272429452524398252383641763866889502393648767029318151507672585976784849233745844943089231935310651250470844594598229323390449455206919519475305035974627883356984613202221299389749069342840233552962635602769933229272508943020206397278510558905844300789720504880441292348947467288678389150262288852912874295275043556502096294224736793464035255126954479331493143201237484386524665786633810460290770251674067522547035447178168614852922458798618961723244658952819715140614101219273275694847104783728576946092451816916879953558040498412411049197574392925110095931428097659219158870146386551402977596012953584700768611682922644374888309035896186112660684982818072956009457321865073950634395701253548259150353689577146691650957644504336265125119916820408853488218399214903746883206389219583967718072126073278856195131355765752434134536657084865934159844354645376945359090314079655081066049468224721451838346650131789067411039280361890014419260045177269902946519122625302754503806032488518836047936463224990548258049577601974085448238309028870415973120470316393483654892654723025152908040772707730361851825196120166242493551339087586691042329502521962227426242566715929828930404311900679570412010084094782659788365032760310302848431325642110534772075835031460386175329382737617103295213812756699397374441853371632506355839050047644050431846555050730408990389269936288620469402695844315063108897864338252987917006595528198783375541777917628876197775025249067296380621847945014014371102715759436540408833825817964419430833308599847759889176852252902745784216896900368437138924036903256321745803965288188275818677750903504077856772821528037441782855392463930301793557599469619528141809981603585622724554127597453696375361955709805352345132665746446826235548397593427568458345430580915983825089473892876921029768874299871189541517320435806519158561327173516811149098354192211828347036572886744881559980262163347287343430001461760387865900136880255812776602634600144920817095907337266610360736242308598843852524693473596609937969756917834925603693389615646024653120908008670272784774156103600087897533676639449245622950923406638335836132514639323912202114104758373638153882739120159065947488481804948983636563622348542146894400775250800230777863764248086281910281820347118317437303493344261779754369537719481282156429854650561096435593803114776643035513388882948516981378638751307499107404631767287595323655332912659476404873562844117507971390474005513323938961955512856978598020477697600525206068054835205471581242947362801219088311512081693681709227961780504089455783599130934763228080151499698891356968813611105140234198784170595077656404824631188859014808337761115523768193830635714319409642574226714354981847395407794813508778895488544130013317461251000430733254010753142425362432677798010605783400730462256735948868856191266923560123298435577265000064743197514702226705282803889500570021520539080570268516881790966535977581263688859147694197974829700113258576587857266967996800320896771899522050292034907180214016910200562865477296008692638027291114694014711955067728439687724873271581274804285978103024505132899744107575415357075206103691029094313706923000275848953212511978468846423010680449037328919226058377388613091210711770587752870318746530455255581540388785652417324957369774887607670119504928941832459182180707700622495028789984059966097284353140332007498193707480320834245563618631659974150015818925437235841475658435711934943348597563546491917525117456083081918043863357646830719241410750040948868501060599618501420458616536896955114758739606606076195171626252502367814350592999274323654217871595338031759236278898782949132690189601796158873699583536315303050304832586192093522214594208207413039779873837909064062124779703439511416304880082178681941363928392496378920442456710399995289756704861790288062734238454739784472819355128116073381263279174219928320972189396961112814976972284264370275407503476407901345333133132456496302881157135538112815499523882630906800982570403252224821418954573119471050493392745559351320420656215368929493664686409056310958536598612765502965285049085025477459821566929512737113321745590753157180290994325883405386994816409967232531224608321089931752489923443811948206643167694320572801425335205262187828721489083506561087419272164437457408832701675994309456501459953883255648240406611283333229346944738229814758202131797535505554577624296325512225636139644685499789403443974936816101659194123565017327701212257496652664631173071157348366699751314182591158461432810857875813421737613298382076751955597554195717239664222676454746520021198627822878202403645259902635461770596464704118323000965795490248713711791563189956210816754283526888091179891832700151008943093350226550988041726814890881229128708295210976641544476183309811369127897747712298020213321274658985263467192662455538831927714499914083410105952487256903065476732185557814100283844205889041468210966905433755520653291342320411149444100772459855641528901216225842635255114707859555321360988093289506964483761877632525942710870131467907675027632598732576679119043428262705147524536494231169042157035922697585321023117194458974786817232156114440928449874481225597231616794441503445868448206178121426891723482568747787662783616836774324940877324494898869106311260038047886581813424621072084554473642151847287687459371382984280350920827521176899384594910962462437545367749182746541846734745927049744842547339625754198994080811398880961788701145201432449909586952926214021933973003160651735918939332358754137954654082138809127473065435451735664490932758490061726388976458421845913459045197700840345225999096188791933984028895432356279060824936894154632361167752940382683462355519428633099565126369680011564888048929462661936465231843409883458602730585413338744627054535383502039757154252212852521282183013029933266179041222692387061468284264574806844585557582486688721350254173093712604179691242764813199746114026534138005020247181395569397702665136484009479262014589759138181669048177231659380550527069076839774618455309912602312300839997984107604782938514159887872479842239091437645430731876545189095326502310947742636863639679565102799543304550196299510289841429099115580018885576177703373467445467848761475525096699445065903373930150031316083832059972984457035801649539935756873406560221992121815670455920865803054460810365368880519721305776033697791282130976053685806300795151760564762996410624739834969589994916851870974989444093459835935232634681288025988542531965131635958944314542006815724356053980185968094371494286556694414900349111556979734615304236866068945047000453891921643594562912220420454155483397818361155128983312621025076967436929855168320378541867742237633716951455530847260914293919256400680948773987875363904313284521095778702457216803676542536975566933769168937215968264275753744949741800541699442708567746862794334574127819345975089292370144992534455143533966206168461628694631883411638168732635660966844266181685087835830220172682727951594919629889465471415030066994178790856944502732408037778427150341385373556050507742961538376582005594222095940727751019318804644245589129485936453837844050159592091691809920932208512267292474920514401517221610979212210269157230236569349855124309230660305936577985029687173529133449972416296473482567376407878330294277507365219596517539511732842538480999346666970118541311640518949526554950081439314826648814446464020940783235393423612349538986248150164626287251406844154032324103038129212028434275834077158714583810420168862545619529592250289375037943829260402097400297659130668606595275532751069879445414339965551619498692094065915238201172767866616283443831248166625203883657625412669984546456630562695630052414535081644907959147990964778200244813028767072494468710070397159911375934701497108624407665152147198933063018602130504808607034518380062795641871228536242328066541232425929709109770029297212199474442622854330868412733791162698475208548230041569057210122026554698035671548157735251904691404309378893340797835766389240794583105380933986171461332131500267957972581896229057661511991624099919326321505998246815961203508619616218514095538350773709738165512965135202631895293924356239514539031754422363313065739019184123145894299056068429253759897791824573698694733042393692337352111541335847620381814269245862206816051705773722333299611929888870521300396966800044633671809692370885305036087584320402755756772967005007093445629219875590098517416117101049895879708446952195784811694719989150710844962635254670316057917742116938220772209323526005718234236239343941116792458409152606168641300255914305681111177970827773615183230788938566750909280970836933132742700410401902946144372591081348354917074104732302975622169328016927704919328931914111490886972438904204922187582597997067564392655969402138114267128981672957428040764685833698703542339906412061908925873490116640570308240076491226128501018729351002460461822256831532382619806998211838401071948228998960737201090757034014732667850030562583899804980719849773423190191747246598372272074210855769543250590340703340504822422614308762808883420167299418449561628869589213472341857679721081980546181583973331783147978139288506482582508818965761697179187141501706091545003996639897044841309212546912320047584424537510041844647710493477384411257984961966549943416890264371295126805623028208527087804399988117787752643841823140576165246619311886069040513242323953173313951449370956869460930746931416427616166093185970588956635259602377530748304313165254572812065791236728498218575347455538754768260270022662474815467105317825391142737172074582716509627640099158475043363431826546354402640405973284371165072254032651366553949818905099347937981985806978218655021813270393153600498153697632986505536587743634152179587756124518580348309948337088602548909152582823779836683487395570987066276329805725192187914536028557177376713782996157796051868521774624727977445894561254974374283190481535080953603345176201862224601260462488022681448903020869954053406814154385184939659903845911174586904095735814668336030323456446280634305244412220994971113470241456023969311815207755289287487893639618928372948700793311171332579697602283983177455775458612993110518107239694876579428203755884462077707173234133890415195554046475576327027653380107926590450199139991114863195571322212459932729859118497350132241737752767249833216157371180056909299700801812447186896657877268005455511536819797198826848078945227542433487036723188421035203504853087241154459384754965862009222207569799320338036937197011862068678541949525556332466091158655042170617676506664877202306733521287122957286462859329268677061307692555141372493400192765224853943270059561964109070391620844032832798986619398759246467689391149503182808347939986046658372506950211939875924646768939114950318280834793998604665837250695021193987592464676893911495031828083479399860466583725069502132569217564902388765615240185217012211621274685894817898502864744778728805223523568228520359372244127993663796742824483964378068084949230172094688777742518660795932453717290802613994109697676546634094312714343688065892069923889663399237781474789350280943736602759003646241613009187349859596342804784736956735049651242784358854222294503380011326200397158461145519604154209120235447053382014780387410007225248623183888193780192165821037441670975857353741134083939552285787470682184294374504489182475143887812334555863450776262702177165763086242091747050040170866401275592307039259902570961549547425743327576518018968833828549557132288485916402907228197474390843291625499233603130937725911624471648741422681576199443246160572956060077755727121477555028219570885987610308616526997434567736849345330753107855095203683421538202686763679904808755129976825548332690005219503130028482569368881011500900708334010090541605439705010448801241231425172792669780942466246160895311361541680530976880079062255312749586495569879991888536255300611324583354828575063694882255737304037192527978009324019657545394260194974997779469639167367418736987987825059437117506136845125583580071465597991832278671542835371934195490622248935956224872350015965515958203602782874174520513574548409743275382575552195680734777891272429525285475377416310543712273922030540663165394607929542801194972285986886262095970577136576745769464229858567404085499316146892335485678633144181922122136886299706540317111527979213893436282996378841327782939509892054955684786747301183738455056131478157054163011814605181258318152660993266856564474948642723611100639902015319341288259832107369494952916086270297793904223636251591408247034324703681924639827518952691022795031493373089983779927924543941160471591197331541232099717813372288860153630328005321283493922821942798595545541667925851085320640320984885062781566162148812846676727041620168984368806948599100745257530198237645384205604722679798456326015055493416189255332635667717529430341119018787056822355471201598295028936095633683611856083769270231506933402659423041956204596724407701136473169496910613049728321764084695335392064815005835018255851030854903488038337481831944218813095847742203769522647144417245993959341190705441636307972141768559382864112094716562019410130765693954697559964008297600535418866178823111020172715573022550595290335013740258692854277197466984463603029814118345183219329346621191049720611973683629567033419427791676238341546392166558972067100211039085968668390528173719652781392134501547568786291318332843345475807220124754674876828981892346880324971215786221858465238181791603387622054450261053527730169177366478088241739088445258913852404189170539301360562050253228909091314659975223046546496264872705050427985635524999568943548465629053352838905240747682823469442512422052432146049691151599502745119211568291361987775744299750819945714978774047543664667121836718639985938647758480497379574310313556106922648893323794188621034303009967129575625060330359032217667494155356337239116889032366927392379605559478222318350257576956904849957835534199270800453710290967308048719319218734905095783279092933409790112305095355177878797425730259126615147330971950212836644394579639594272143484791826563859652532019504389724159269468392524242186038072871266166423738352176839344656894225000557581315184030850597256194696235696507258485093481378292837221706822897942641654257844542009284748645428513828372778381335135819408279535792283988973991137735931487315643412685577389382827974403739403858089054758537646920265681816610003762245923078253690283197605974266134558262895200074717519866139348452285860670989229139860073767216427450218418990687512821051640714206606389587802832431977581088443726138355462961246061281033813110128147483064925001565512390649263760563155724150594446447578971934930991026680957081484238104884185792550051367684291351141125175793902226258740088453641633871277575302581962372271590742555475734011936308352925466276945714811338665484639021230369169058049540678417310559465918598303503065831399068316976483876101199519366253613888976226616508466733759478466304203938446589038464883472822845237953170699411613641081944696996724440746928392364130567933923015291910836075357808954407226578423150840588341954782356879973662184218680496876430753139516367036626375443913518542939738639303504732241669528654384395492271047001209217380103835760953115694497464875956857723939594612549508301794218645124976069095855328481413039828332195744156994123083932663795175897709125491779731184593992615345221399614109834910618405773674148244441335724652915031005080446257502537452754598551539294860423302145828071311737531913940893517121551804301704622055447973766966747893173096271481780432052415373985016954090511688306812531486809043952323243760231622525043883668986857066165306618190456852747466558716177265851650734155065945175613667842590715951852649232661198941992769783302883777941111750144741042290808902366083391940652111393237267613597885389234282889008977305473363126803325171091298392614849700054268616029942960963848864440600491029455039665291702342363466065042222960210987858800694421569857705366984484108686731050696302960906193423160663874899001882894951256155911024044628205315937709684265648034603378173148140538450449907592035509064459099090914452597256714953028272645215273966122182604134614750102864922445726576575452903240547143706012344312177520657776455271900115395334250541807539121915059837985261573370516229544119703078887431739989145794825349987158969437877343737675161566395464762435208186531597510366689707775832838650575235805017140232362041820853877746798302950844233833110374580653641907944749706284770654767948296218866925906821760067313916066581607858328425138624683306260336679546791249223032388929568772894761215153639603094062765311976690109113804874054937787515860827573236354566858067490627165972159902992186708613896895137370683173156800919554827792046505577775066888521186692976521103907786318443369590672352028399996432396387686732036137916466867950311217912679120494226863196952264941526031838460165370450925925788004244059443494676228555085452556602069422687732189463339027671535820222547033122347985668270282524598801234683953776355174689122536788123818919954637844127033241873737633256130422332711844450749742422378266197046104011122653275889557238498505763648049409248040111162770871555279884079036125727883591241446081033368567697834958256973338399561692398900085029353534299965740696377950214085190300644954777473548411684055102877611086419856726622678722878593933583970287883595451263588076265414634051480829780026991158114186054762951288199430838665320484267405555510253322746134221993103619477720495243388211785032250462292214245695555003313775842857102650520168844871279318563741260727741141786989397154226727632286584861696775818739529467092943452537335065005696013460731802577679099155134503484158398467526505737423974714748125400935781953545973458470765007447097325493931035952440878024276669846308426444638673638016286511939259851334195630392655957116711230449799232117360684897591755826316223902262248984622865793572796249103764038231040804819749428592702463212739006905074988773173218854689364243894209649285664424617526423270727279330815571558866484163195316141173690908132019027389528425154996722430348902376328054372916139822725299083690889249738852299592377545012678088732611954616362090049010456572723812186073402918544779953528995921194551880521382956261774080412733037942090367807531125676008042604950740619056487808050234373558916155389927465633076200800996912907610063205373231269372796200739054334374622102589957213978891909703175501973559378692404636111602720633833840903223989418916722494065846038688359912725214200892792743098661635079572837905143855138729527112983667896161918139486407368579422616671178599051403823472914009009792249130249978704003805414564064290663790392252304492171609589052028178161599011704358289134091358894393049509659960511332429448250983651074985148901512823058472152580251850119996729092301953415910466349751480976575854195444193866030102393289408190947927848078304524045296572175086034722585941757724710712442707798690720995580682225197899864793298473283077934323740885248180241259936076280749955223104632199106829980811820415770202403786723523630415869096428133036466253394949402426868625765918335222413541020048878505699747168524067286575194342570625734736675473650312557208374721707773173242611280307759065469239502290675828206127673498471063519764466442716720938461560725568203791375209490395388168627203084219274933011968906502185542429917425792226204508851936642892877228775513009477364630006424109929900045932466773531374440548668487587771578864754288251325710249958355230509904068164634131457314484939386983313477742735215011666976795032349208702667063334267712152648808795365929937351899242067225119480731326592334357720796452977775486743842476892616068173391692812463591354946096450111565885729253824469117197557285107865529845427871658302341211115530007466352555048245234541048573187791003476233058840725783349844254988058458762713484532692040225683831642322237097645471405091236413440636195922050000387149001957833598078100859888605597284847911653207087459343563080218716211148958962680089733082142060670637691930990581223716105016338135993918359318713030449261801897108928204261003161499659858596679590094337472123334438951788213921316896137345600884721183405537041739088655022155389774248059789541723435365861490158428369474900604308895256061113875543858496272691509108623975548059013623804035826260053073574512487107741426347751250977397730939072528233632100264802882297270641095201052883807867694620371563957604766114500580804771764272878001313127741324430272340885129896856038315246574743679823704601279075780608924227128322264403079900615323141020797123800533820530512191173870930198385367908173470015597347513283321602546122502724867125834953157390056206935329540235971715394692464427438802759614864941292475277337413495071487803353778663631185623061534867577670632549018682958003825878848517645563087087772192083183889862253677915514040364912819332723464641041042088110931260983961840185584637023543594672485749153090804859418312609672994066748441944008425983217548033459861740020043137850828618329975681776571031196315818659950490672379791787367219075156406534377644763062170576698567087492270750280876724620422535389447414241343631101664366396998808785733504534672454066921810426881156695438451339196056976913074521339412192950876911121752555502502270789147173800685423650303237374867787025583890598936305021008716646978571180516617315670294795858844262719841035509462151000546726532666861744293511621047567390241977309661472422087045241117074333885178666262283897595052031288720189523544821739478219424439975899983500607804123879219306567932572487287019768589246523250669611473973008800477104433865437226884395682500885716481309468446127095654313955754758050793514267563138193621702422973187848122776831895740704846233538362165958684330857962853761603136764747847256586609266766292576087452731246222355044158659706369989276817043499411681279792821296922692766507086672448008802330978928203559308288859785353411978502118214004684250546740254977141733336689523049168314443762977348272050599618427960138243826409005405005054389956220325769403114107296693855412386184534165135716337686204154882263119603753953515796511561579168752008167453622412708438608227154950444416068767350715278673616499068407910205043844601230826219496186924400308314293044784092563118632077751264305941995949177170641308906867774638543917793819757616446811106638932358361840915953211635978809063329517326102817101486669486439611310171755365403322789044470100197631212341076463636245830977326893259327741919571499244985596469761730467291526992474055576981593496630773754704071040347974975517710849312135392429329973675722029345975758802576403917756905121552802314521029313049965333937302320092050540968566150405868034163793425219738612936589718569331253741457848278270086059892165403956081731874297587191910693275712179952087320826981863598460067276433876482068156113679122840973794403556138714059739036867993047423692350310653421466641916361401970239342325752694299027469339644081593015791879515442905334626141049155315688450125585550009133220611127010184435006952174617306595986416881093816304249760877061545783954493791871917977821405022579049672212207781602380149238129400854632371404052972776933521421226846185978211744358524205910970289419846246899952324223981655590466771322876361960183848743194653729812296335274062864396104175916247182063541974356857130071675436810628538358587361141488327923310460061344514130864700024719564721679855282367690019636214043564985333197688806488862002046177902558022709496834234610834925724753544521339268873693931289850485958822328147510381188809460451439780369235292336510900341393458467850412291741350494370619605866619482665643182166566296456063733475093289553432517497273791362242708239356455824432730660077315547130178084016931960752234418399227001189768898484463505526607269164237837900804794161768433438322845853768413811825116775638388925839402012061356744691967075752780470693445818276915779568602324958841160289598378405115255979783881841029014784762345089670289667288889647657977823069979881927088351349330445898170864681797111283818200204419749911772154103420516542702703199984663491469520761598650684885220316328732259038150648355010008451778437545074361450592219424024187262824903563412652643119265503040632025753660531509186269423040093331024829860919247004411577693505738700428590486697364230705586127356402054048267764388090325802788508769099480925732901733117165305467839238783985992084494944282354551111075567141794156706197119864199564089819746965038359856000153776319786594268470653207291301834658782449250781987830112350426129913080412937786711714417436494170413095998427749615238523119521635415716204185542617257732897542748964252455836900805206971989783405327952496283264156934156139985728673098742262140288518128600190846032317501333078074831236164178261380511779337144704148121189959190980223746787772812890453035799593400567204305644044935478026963464639719156600092636864217347411761939064145402317939063173828518903652398629007099830986252248923437122606098581030409576388510924389509763364947748584167476644141210442699677685198498165067537953954532870805499052982680916273410272402610841956946273759163057030693604930495517602916771452567323503367130957078176961089025569013133837451158173426087208091976896237615824723279969676265949176968903500018108711473857434983640990927933694547181562903452870089331778646260018484583502750939465657435197966246939627896713327530010336216705802806020327174553177354932757128128972230169431756595295821313773640765032582412095839422766174898757281848476302875186074619815953091451776753761422878153832469158203968556471318706824864146943554341864240898653402265297935042531053074556474458598776518827085892094219965186703306605540243235853057412498897188396465826949814140327296804009856740944722029444144102681929134110942187415132828733107982329251450661078279210121801031119704277690769430354497528305709508933635333331851096902389069806293571634303881507485149898279017106593644127074761129851868177731370472344540374560028621916791322136578270702407950996791418033482196255862669519743611248846594658272876564498977159444421182349275517498968274483846421554452254335777101571115312646908838680103921379271888579610984245440176035892736009257986197434102460936289896955972601919021738070097558023753808355062111992331474090884681435199033503297762255410262247665024469857171353572652882185686112393022122353021905162773569741286349835408390327735481050807116389655729447668457921741120944840199655614355306898308612084948698645171066737076918157254460466820282052648523358699249990805955192782881458694136822989769294696665752303826034310488580760551170830091971011984925364807283615697678187742215071103739953692766152452449653509100345288959777029742778854153397858810660715689492621308277949265494362107345696787855068738556113335206511000951672238444435331586671798353595357645119668095745274000424340154400490626661379629574706527407578371460940023326556772078370794501025269804793497599536312147248881206599950447324540529569491611354376512759235712601428038891439971320628419546819688588417529292266886442621434063384323544903587183699050534709475844958153940545298839146518631815093973623321405450969089453531162350231626454242878880321886191725362579809217969251069766315534866721289025535342766321179954188944080231117124107891063911791380111690841561471043264120324352019466878197773271630704885109519004363450847138672677153789281655621250931993308461735522700918562419626104815284640455268181769832360332944871799050874485624405258466705707820296738438699369354654364564447230044536227375266531452992196223098811764568067671397854379165847320950469443043848837077186501843256927011517134949617369807824269408040645009225068239337956837176121539057082385854829100457156285405230944770923367992115848871886152442294590478039610523547752945184329182177647040126741902556257847710396875503365299622144881793526405867813332621592091349044189412312552153995977952657068257462407649548661139248146700657227719602495734508058408702213078799454350725560360218895109924837033130076618530852539127407692038969809967691756070148475757791425271380220941593877488494049646831202572153355580648888199949024491248744387026964819045617856715182153214214586889657263425577957562652700629297845964506174896425300021092247981808889462516757327350029677147050327998757989962912792874660757819647948475239203522264559406312628324841753975481745701065709260225931723208740932749140097978186970260143742147863179385313081557116718016184198850077060828811446496753514621719552138523925110419841081641404822044249417827953801735743096369443649506351874820396050910708920984431416784064461910936771361505772143004751642927846276061258793264955586447186590298481822016021004997719836180377821189595651689225393418263501037136321157781214602370936691063219118839169527053631999425358449086023980831429872436326258410691536617915011710034582739884502300190025577477431214334215609102142563004729295216805128221564798791314836123033461102775203382979698476487510753086209628464767863531202306860509871808751282265505281989169994450545825287427459706340229603356853886949799382828014710998600870595684841215196473343476633762743513560052413635371901147912029922253153318866025153770683310154889099953699017173694298447066677048279322448234182065674258791467811151897477490725584891554664700433292220398950649452770755329322994262674332988281428255689657332667865756193371959390806642919147503111328446751487396357728793429897564133604265814305092134813679852888292572515952463686670526471898396196359849211341569531986380455814847907178090786952927279184045229430102942836711083950634842506382085558653923276545286227266488341850748741393854930741763027955503102908136770694302897012025317701849418209149792382963165602229836198034820405795231938132665460972135883930448521662872143525751137236845059292982495611474226829218305794265334692259325226372031701919998447675715410489691608200556092938804385615393938861080003889314155142519880728134675709393315430052569037837144515997302344291450569986414675950303181271527278942502383466726331733374558809943544395003677567031091909407161141154055734088483428335359931921443710600685936602646993465720093603162344426382151424428391715961465813174247317051563253482379314749449200697954801646821898843327591528070953988212683989364231810654890448048927684892185471067697886135033352449811386163739573102680251642313394115498106267049750201361285327167945064131000846851005211213639958390314022619108072899098163070206354131115422666078695487177382021410547401402403263196456393009621855171291432652442745944144182756021445515344045400287432495777058449408098403302725818096317965249173507014948466841572546592899494762363700598048903965763138240276942366626226901514789471169049802549490252587822206853726045733035973090775835393170308887085423495312230318022928795990640501773733442130627431431286152209051808992390909028791205122311868460241332786097500246750791712605774045752925643648232591599931664450989019146148028600254823438719690337398705360037631100238503088551562739426231573907145932473869850297213477822607116809960060440749909341853400572171993409130820882341230507612352696212454550842224014986166215731602997904014966994917274623782673017894094249596068843773894743154058947327147016961985825091282157140530857846619186132280610365034200390130814037928612843022537881128448946883053710330312357004346231659076876308980839541591685205458809476237119278899074678575366992814235247044117166525289100360537755973558843542542374651769418514470731452547687692899700595461349680397382329362389980198620565056246066813102252036805483248433496956896531003852375466758785679940094642537266615054675709129876236192670083598762678555030286306687993922650993773988460839066820820662301246129973037801157482964498260524705900201388562441463341058145336313282560532052005929264808303132120350787766295846454418916953734242813903516292914225048390362614442557358107486834892518539656531498196305571241999503513238219511869672381514583393490828597559919669721704534304327316193571896762686397897886844388611904180944185825869579602634563037552477583111543114762035938698507377670742765108248192897681013385969978614342443000676843942075955495740760932501678239929600457403577583331065860411555508146908508483995958616766251290531530322439401172444887403452240718053522187971473853132168896260285312534875858556725137078186863521169633110572031722370604678119508611426666560265806290848488172315565972646242491374667624461437195284569352215618440020898130159548600299025188585073573071529323123181318499178936373414539913411022035565410510107724359860556317482778472401379834746309724538260700785102526381660274367109349768677960974264539232419633798976824844220980191330548596452868142462908735370534116434769696472966752583007869309307984984271168790440833818632677597338032526824224332968073950641806715656027142682112303123429485516536532152694576106468247007076793291110119601654687799208741506218692435255860566081435007054636572825128990898652988276265682300743770361058062226645479965700376271442571577258126868254662946872399564065097283240776143891877042497676234221451309179368774606291685183902468031364398974169613588291859736553890645775130811934551982918149128457651522996407262983389641873938024632247073639276859512913289625226756903128989820889247134957014294468682265559575277458228284299728097773832127325305141699246552250666146559135759865547489426015712380877942847279114372236711153038274775334142424071794886020283405775938586047439950943326511364877543242214726631364859057771943537278581043718337900951798179631135089599605570568421753214407989559231848085248780836755006834594839342478328565635247641894933649224929770885816242315020491398043590449810043149323301059449024747184763989316316844434740475056811723746439216134318381268547094021092795718799369313860000384685143684582116680021828201299917480926398909895665394058295888600282744802699916980106424049242658107592127246906309924560742166116941838972040284553170733152315111420567850949657561203900768315674762721070457356617187840296262487211591769263270635913876784655361999859831823045145540096974268503775012008321332069588601973051218708541843880610883814334713432566689792627702443419921807686310016485733840408240758539913655790811783908542062933068122947293355971639367946203353915270906372069467342338151383426947141024398224388308667689896244157150644747905669323318085246429562923101600511186409568800680522593965491379781356366627865848254046068731516751685658713053052115870559273837534786890808148447224684033527700001191254671233038886156296696015872181330247282478791621978491164332860672224463528831053208583604580514784985209442235498471314113188173524407691698381700780317068336361510531335515330958466236553926008021258336209667955544462962234869224431908474639193517496015959286204453799127924439547619127992304158443289127305216912408131923408866168091854338242402945446101708827516088104274721924920945394697026860285263079403107069099130922043115964504298191085799442609001524514242833415815488227675820036415251050279035800480534280923023699820894145946331693593899070015559835064469082244498619717044307628693201445951564848777012594850115140539797963393010043840531906790743647129958471833213887110909982356672212638054868387418940101075400137881018393159148808747865878795001515539644076162577508186358217931011726144046668884818219456044051379248831971545712438419343896724755144423665893647185182260718836387507045929451981123641178097230743409552194140524464220090222166686548356081018514431715550874520307066813582038843521549879449603949472960654708063982456273947063974406405137892953357285866899900859908690670394343487080081760714050432569032008815369471670760999678083787526081073299247949817333213953183877832823591673701258312428906473547421508878255149841414235013016726750821791110025579725174276007393731921421039260329708107698190589880389161813825799144434322105291569057878847458211103826605498946693764305728200945740752925336116365750936006367349850284388726581710725994107849303081301175864861158329066057327427060306999694824005860864033250510745707713620352068864946234411905631680698924069541256556398194247188892203522432260972317548885317282667739103757237101067393376638089815158426760468520362036724078914901879273556180766175587818153830714572203881772971875938956629614975056785345081345976592828371823671924314009741054372978445101625754395876245790382089029349315014810483645135388892803043860369016426589231622072189666519355916274979550480092555159519046186067918808187226970297962202088800248778717791258102117894250727613197954310962466401977209723226100268637455300186190885982565656265279366085407822811525155118261704821756956154162785139637782479952394359312469752436905921867794263833307337392092318903473965575739664909820526187772708461695587361455929521981268933164433823973142384726159453088525408871886577640223851051087973101722522845299769476173758249952632471411817301602018331119181122281350885698210048181611461676048518736999561147171048969514528496967581258345361297803477323132965359652239063357421420204990479779497140368721532807064357987712128372358671861232848101428938668857037620723484479675929144219538642201210820779887655110250311529371693291996515388780425162560257463240850422884499776238946926963152865729374134301693600760353293697064178277877377930650105697394561162192403366764030907835414551383164348894499792375578158750144552064869347130864983300738980880568943460652073487595248873814528563311886966371772606539290129962451213621618212497585510924608606703292781986026525232632282648357227323918383492582021275938940571530411273628188361027150253648154993700996249826124488262917986728249764948743752377218823270232860787867414464676075600182094890673465740757676455255636422430212091679637261321178552432544516726617845496108737903746066329417692646345850239275544630030638667795115643109766170095008053674662921490319228931546134479522051756730507822406654121643097747251304495228849925423816543796406991093037267686443698771596745583878817823699939072913629511356585921262470605123799207098445306806751021923597625803820917959940362293224160002144948306949888479840257115758866426014882617247760922755278249318006124546804432703694942805199693247405676562139868967945410457780679381898678743896031549308087544850870841396937769738770431774286581696401871131875555139837434149480436738506910996892834084554865883150782980444429217813519681652065459628859248994721733329206073700725483852165986589889077098835465950445851468112519578727298313561434878739357789016506310758644069444839738465088854412407993571718927238760433926754142118240462413909054293870612823904674491829046176385817767365973869331068507357006883922614400496752244109439386794743104730175735221430687079113899275198337431708032830179968893744273125215821356317063512194580243208618521125215636094841086274928276882562501686289940598158930419958816428678871076201109560759741287230522131712605071600536828028137772342999917730050094327364174874089319317228940480334599855226410892982215449118147136348851808329524371156096051075765109787038763128124395958783094617349039834758336946605791545220589591440569186560964276508524589570587748288120413261239285894873523560338104314000357289123785627432502504636500743890095572740636949446188365286660543726152454172205829830850965936482841958696169115725932419827358324585383144016706816148734750861264875198978077618791749682700117124818918466138987978076114957261378239841534622457347391337669061778806054634749248021501000162411212171394543562120000272927378809068638911983351608116287091044323730701597837680528428190952153900899546814560480934772723899921077127088311999408311819022041478882923964542865097988111642859821695566288129031070650000932023736562567548443741799311021817623100802014046166684899134498942412244970191755576492854239923972482065041525370392288105886341191972034439414870165759984553384786876567773477091766714680382367313401639828407880205349546832959001441780461553940129223593044699854458941497443909752401223342354965425154758972141848937914350277894140168852816498143955298295540112830729059554776122500088200251227256136937374376926594900873746044344756874791717024790073562716781833766636490104058900490891903746456201786773831536991028400082287598197485352472502014372421047928487967599705577863311114044746980788275213095399080803117091873922137847363226332007664951635051082589788722053445147150516363923455862358747744662242736212811092579582876119166254153684657318540677262662818074645612365270570261399929161653055198046526503055454849917940375541108398913905394966914995624130865765744020383965166355787306178906142079724617567147885358069361700198445798435091165510200227365198453484798249644618744625830476746482617361233386321767888312504912779200926688484238181854808972739446180692274654904673210947494745911730963142655993105118144649849164657348892990956236056918074537823430166274316235950034507637186799869307186295069833110875567687675209574031434859002288112378236242261019467416930842492958188229097115975301249041505839344052802235065103086218445972740352939276989646953854696237284285171887006227343371697645499882868235530232764350376352044233031219185947358945604266835449612689909240130899833787013512452394879538459690393424706092469339833594451428338166876839060145419707922473108628216859276547233642121807873842997293257587252274196921100888994834956422769640231142753912447443241958951046868251384157117226630817803408346944469160547679329388942043396620864727227134058503469476983784811165925615771535228404276482497291625573147864088200401471973450965477703012847556814101632861813732440985906856266371605889070719967656969369557771869700083478267984657239831280624856641195835594668646336824101470663496905455558926516296221007684166189734544232485587531576541157523508244197744050894099009451558682966610670967090242188567263513022076946164741961012483500488324399099685855418687667730961363628557499053167283427905552087494170066782095830556996249477733433635071383166500916099445860307019912063620947261628162815430505579730019787551337883522833593019170150243774923829395637935896295495380106173507005062115379411613692454017793311067313680790629158577115343529063417402733746525121883693915935520571525480391410141160760734932551286532242006682870834932947027112382304481910806367017055551681660516170852577538970942707296686930226006489657414662072615047086137372372464532543782557590092567538422619308420193014170554457973751975300470416861185897332422455389379399588897257396558578662120421137705850100415363247338063484930878170556606153341128860737674343207140406875176845301024918944788228924670924764545357811472726834119812515793747938590136536319222853772590745949489165008906353103732934604820812754766554480334689750994173377227300800883513866121639608769508033277446327520211238336638907570173658688340714324957376376131890231795720119331834684075713003556003589101914426717948486409750703489157155788012167219481317424387469848401936835506425753888595363540645784595258026348940536848524566120713520282183609121072824486035709848598621499110720560382459194859829823543664747724431874436259385244319349885976950847699830301144277916640235362440694889364336665191206330022706964314289141781565157624136606794086442773931508764532782000051431144169384502136024538595273582412808228405148007249950595042158198022032119117038060227262285315277822507982816018484804463884542381877821710453476165937626072970888421769980440600360950716305937923533727603256790842966377149031844698075924229306159288757880937545566441609888103227332432611609552152055865572880841228200008754923083828398024930370185292062238770987704278101256226828645825820748937450657346805895735712702446993304075235454486384826117949774906522988066396915491619456757341717414665666776155891302285172493749891423154404203600837602319326891099755462658514424413069169998816280890748596904830687724150091092482260722119536627835626888806669171455147204065469867244613418392754666639492422275787260538619426620379390926492695130808143167659282504876472104863583938056093091373069208483881377562730641491551091108441252688428224477997658280451670887896100155962325457841694603139229878054528721555967498040850462270826259860992156066567760591964786619653501186103387301206818626988983175553856349333496203625458890583539704996418141434400220806029988614134685842391393401535642324721425301428591205657638569356277624708771726378207859531814331466842886144057787948439418544145539011896337566375370590242787878298698149149790489982181020529068797424909942843227323929273792293589493756346044711741346181187637755675531713533286944678866336852529977913388840625205355767274522687590942502698802623029029591980071872715439050757092048947427880811216175370570817778606572327394436896759719613240934977338071774850676806611000249709483177585048961316817104715760132811599797966971179648937493658018282931468853266706863564738459193816300614124738538845590045829273118304531949237507394953597139353273415735585162108563929472189809593934148208358495693346918311894798014433218146335283910776628884496086869637826510737550363616449216691808790491033399484824422074745087379193547456961564410207232332009042650394967045947946721723223141046197781792322796891151603338708596999475128428050100075079366668644883362672503775902521102625881334848928731366640495934702802062967005570773406220297557733498918427780848503294924150006562102268729921694084302378690711214874594089050476760915559737701406543115136419939101532216931977506053626463245629378601040851025972253251730926509659234796949922483311768116594806088000826189237040594980770400173967458218924295489507168771331001039785153353453147106859570944506053733591953658617196314970060182160151167816445877799372327454843702167196983240352158951685355139247820559128279615349166301514580517888411480971867069842722647325396278568856218601357551480258411912578616981540276091270507419511403965637928982882852274086014503953521126538953883867793995172958629270947841273911524331129259464000726134649249972681810945151440336063005287128811763455747440049685242334339885902991306423665017309231172549322356936462708264736539614701936146564880823663856871274311814628024296708416102187589986096496923503129824468202286241015811833808695873215776018223789618015767799892633527484089573104084610685377186963984413185846115041482873050231180669598634179338953174698177066866352511778784457585311149522528920915042815749224555913847113304271589135534111423495667324043853073572462286846922284083793734484706029169360139930409506545961900308183802527282563082209372697527529895207663388958110039346705019550272152540707842220315869001599513082638484197487776849916923922196537231665447574407641010099650617126279590178098819258884779270810165459373325352841280200757510482591165251375783401008951847685249101862211735553486369698415740199556028651242236187405834090844768789715421259530355913270720760615089738197994811856383567450625729469513436916789182630665079524311558263643719976037744462018791016135424477006273647656549196267616444680772190922929080866228112959884924781148671534257155367603119524547561565236967703853704768866046980213852480305611763820687575067581364128628780137765140619072670023309784587766918228333916512907870760866937517116891741627690809551757279698052016821027162621360697060416091561788705305407209797684930266376389686627360501139889883673359135139603154742889747138541696939293183086800212328963295993812716537221185295145016710843207469420490209766700742282746672221568338634130232860911046024015612304984559140952392104609756543648344461508550374997059553366602213462604839960122732736419106949439922465245700052391362273333832849727557393356495943155230901233230563434152351056962822867788210930846121568661144438707609582840671518753498089714331027439670232072868301053055854740611207109035935222453189737748928721223938874431654802090390081081088526692277246193143825290972586311246157795502759822070616687080487695005424198755620466992746639886393484868401422335287282144403954784228917454765827194543973721716746000608536862066597343051524283327289391251077992281717140591722360207385278926420803737929278643557802115835757358359060207378135471081449504904591832117553015450198368358598699232679936322436043562460202847050065834538669263343147898299146785381491643329373377064728561197775471780210572065624167806204924960506810145055444000836915853863991964055830272863321210271592547804919890670890668715121943494416990158181216296916452965667288822617346469987438060666365012549193529951563426706148368629787919482858285181278413770269402216755806828356762152712510027225321755011753916761857082441000569786355201545717750960983903500128251287302913885175974609715463747851581629121900284214937284094101651557061686206462220736689554939314543518226625017737147979968920612065325275418413914476113922152134614069286419355821654479670253694488544417123943334998602980270985027141815954167802543245054515169222688322276807058416857108824894008108059824363880693049401400360540588251472745588258232852976555436600609761418817454395068351899430644076770973415827497543346074110326888197363251029598689127139183273239406546776520570126856021583738546587562512867371973052008354520571151156379671524228543756123193671768567009006373542503094551019185119622995140325974379209354374209118431551168349851325491586543819283995573831259453672482506711473896296729908788858488825997010742272525040354818049628522570520823634851226938315628067283671474350559839279732606684295072635138275104197468897676725913690173065123657317195324310128695610725805283363158900958266984173539638487201652004906490640354985449237229427418378411033080777386940393450466333220017422240536339407527505982935749108698818541052273129910222333976612533246907300802700490258911978660954614122133412138919626388266617865561463442108132633077176078663806363424319091832541943227473241152377048775613809279604835764996953687485113088070624761273257503766591078316587857685506619883979458302690860270196411220225736605864073929143877225989074073598764473315527068466191670819909421086085140332806017878514301499679947363423662222918206903244530152501557857601522884736715182349449265482885717976992631635275384557655764406775448906682489966134559521800978142208672688630564291540138296534685734899671972420171760414562999130251414447524884878859521922268437236453296433880788511069933976961277826916254630973235354514622641376521392975068099247765973472612690939787221392807455856470999815894296685155627040336605876230534031098345932290012698322692050220158143430280800022365801546328825529047068250736300630781189568719809407671585126103344019382962718808600861169707239670394318126130974247111717901985743012399075403547165062880512649200956055134533362029263066498091540875817634021299600161949111034937515765588752482721423767972642564269773681988908821722699265553049872479047981000650468434265519305954864635159658341932560199539427254246373171515176352439514038074244238577247656596152456746699316286028264855040685912246340769663976942701366938829185607675820086694383375631459329417145519966697728221814706209062034976317120864660306056756149331091673596869262998033651598521300888024046181683318608779296650027792213476011617481352000602598951502189632641538513117752107146410707257793497182252726790059933701865961579327800661769111831676147157964648741069522453761145688792311508863036238407176919599890035658075472701071991664477592277306588961119394275860246657291646477829595177925217284078607443295113156581166361862904473631555156558233734102054109705539810551185877748472553177016945619773274000762746629160155781498938499154800670015880287271396477885553340501525788846719648020524672424493955186437255844099960063063002898185781127353194003444827534004296065595089225351860155422289176429463530972839057155251922006718225204483456957283024858158777835437195126859654267081696079823466167925926073561893989559028954229820069011350119992783370576175407125834805827806812389428561931111141325049331642605280233039814169006798898037376032099516438489058699369606830710123179615266924530464923746322846279908242334798330374034450178644803988127559225902046536608469102137948423688814526296968662135664767020142672532056443503131171444137713514673671697265452265465106144038202743516102254601111621957755376909012981481368832862481603668992773908339405147143384874769201164261948192396449463200446384746884791115170448439193867653031100824238704981524520405573962058183162486945032953509198580564589890874425683122925434507473734151952742364764180281995487317377212901252421446754042945855402423906471702257004464248759363876636706774796202442768094377854825766512843776900931420986660710187029338593310437732853034371688951848025477991273331396336672506976240044439998428715482735400213622800363878357808619303281309994905965891889375075383442692557033208903758324628467949947720161618492448067072606642394323219232071760037252313600260079381178885240250457731492535024973994254405139909972427789185118923895556724908833225321079886270815640003225278031510976686622833467773834941746122589454209800002909329690743772601386909102791406259851525059776681844010781670669340007514934828540555614304755391105331437574642294862097446790844758764683631789277308598851113550957947449542186298667749669615947444409273113200669786113808590545317626494590167819697149861399492269722338452705143809389513504644375512254861117089139668089366777973099438488086193319091043578607208496730738259379239635993284751004072727938626271670447540757192025039341919725451894831172790246140496689551790799869102537648909648459816709017139351206782839579961226311973314913377818343384193185236753866290190046334332853283434182492107191609276730801323536947264848927644297987068112565462806117260460733219176304741215064030201789320579568760510277525053043612227096046758453127386616521424194086834083758914009511413392954577009473174811688536409418352861099710341672355817860282349820203149986794017404171914028393621051948060481901824518008170137104219745921279840402426896300533553685494164008639217745676953445865088328629821658460164507800003598985212901239590070420266074498878506271760776222550606390745319477188925099058100936729891954099576633538658378098044793537799187712142977461976409472721214023532655177723616341966074376391538660194501776914006240684127316295860806350676293775125293436759607342719967513520158008737395483897343990123825656829078591144258828521366169201402990041314621368063235265086541121808474998758441118362909790891983411875376649604809362648932910439059772563295581388776744695461815797870419159755833500037728672460735185350885495464202930971585636949785764048374150555809918840209343333512819551455518573334888164916769442778240555433697731192014372254154192745059760137984144373599420287605255571893780411489261257983036183801077110050042392392644156922779005702794740136494229184793369253543248404878023177744518417795835582575476184254957539587854945834308480441737087984926741952893230314895899160068542287957892948159000687353733333338638139084209948725511726171087294408886844785081163455852692141540299672098869371588623222033148558174268263595068936234481342247378693946092325660075472125674141034218490131189639676547329167424718993424330280290926985075229490797094430092386728774393625511131362876159197383241349167226826122826312779381175080740895894397190025426412664947980176442016454158813176018972659624614413913192067850352463830657764016522973204708920114691713372287863037038453134194264414249664984474404861773851352937310809985947281511173650719139881269307482690614039286422766278494329558828593837214847507077835511989622491195588237045064582005610170205324844490215022945617655618592145743990095548229413751544136132915043046914179941224609338165136262790282788421381220775894240388406229433172798925941836682936792596042241845941770653019548643948170335524102874704473117150703477508343237333116325876727636834685844486562539187239460827324713500448957086803150325038676401735315079400345572855037001845602769961506156829141611706104616174082484626703351891525518824821272600725957656788991256787020149786679084710663107487646730989091471979879259859062573364973498235031260983098734686162739358057907354908246830497284097732381167082491516373468087051052191917620541698826254760544581771117993776778696542169925785577204263442443042074495489703390434507206119007697363517401952656322139282583120528240037466954590928045259687984608140870719534254761388363353511911214414314850552012358138062649231353833876758091889237975855157320365883176242411691675238145885920751640352366843726791759063705392197981126597708113947351671962999970520901709075898569163890664270423570074450277512010490394814832945744380974626035105789819540763987060787581774072491184506978842994138342060812428390148814872599854181480292949227878324356105549156410917488770670678201198591095890983868839511718380134914825499274914269855259517765361262421572662448896096148297970308420210516027967147856159406461363824775890201102519923421532100601752302574212237542107495918728675189552155329945322689425188409422826757744222275528207615607277103947182566802471066067738312063031466284744338620474325956850568928716265329083278784399650716724220613829453291660046380872563059524153288120937009922989600698139627968627956763519874182401856293198492262333643189930901704881995258827338807953265885144939381241154327320589164578642294526841175188081840509569046913813443077848902114879712116283977344305484614980793562435496714129473332666422483050043644545470274917232078399565086801876173270331906565795475395206929252015307064350471306881289032053854556398799210109566729828730479466100543163584623448744155540713381432344131178842419601903702868696242276246502400420813713504640159934720532755679503533906712721617790603021623997804185763348100544838870317307162552564799599998693531968130101562970978711673069649402749166572674943432081323146138869255334949294118316387788990325940109341115727429801331814578281687913514243955787342059156145877368988080791707114551154762661682081777574724842787971298154823852036895916524054373052466728731303019258295249876393209857312091610561357220176392716995986861088676061338436496169518654848604616848482407438381180741734222448394789399827801473422230578654102177292648209140948503501322415155999901630714781485270516144322582547801434401095336602393626424931385229405475364168364670415743005583729847040181455710029696234698505997788557369980218223035492383187976298941569772123638440889178927527752847144776218920574254531510374799777068623624218990630309628221177321970823034774545506023858591140389896916662207787683260123961741999762365506363266016990661168908868774133378091951614977054921417118191101495434786938206209808278789573132789906002086339112784715368430438149815097030477088688163597419253413412219139628745781099342483271410917827631765420963125071366926365882135751199875401157902802850780669833384183382667394553683196565717031946293364109272667274244992747322913800983574450913407993085683604846778665354210586680052115426486749723953793642156653587208185541259819454742751611841693662556324193591585695088905353141218336623998780221150424566001502364691081599741920254437873610226712941228298888053367943950329404804961677110728788103161467730371502183528902414648175430954905944887541042501680406999981967193798208277334648558158591077617882849750546856791399040113845624360403574402461912376944022007604214335733872603925372466408966491471465473007219529273741767961356523306780426820002423074121866748669462805878878738299523278050107066101385402880119138557309113805727558936819403093807188637937582154443516265599120308784820523937493518955971581551828048148078313105350968235671612355096316152866585785901952871775464250641298494510573035332433489097997209457291700958784083221404405014741143817095657712526715779817097676384786420648761367939457844238586035649664463140131048667056134627690174928322900432711208192295641589481528265584221926189025305138159118034231088514912266539179448174339043227005068742888199670619606885006733283536146804985960814028791196311274825466404370384782884007981579134452321016686737411212944968134510122379842940219479469166481503124318739691196021567121142279430682010408767568093738982054684214785601427768820188071717414127493674678175132277109046730015309467773069223290953495694491601169046818182723477816197512572785153556986162922029188474530269830156638749177021947605094174866841197276604440854832975049890782580615390200301035218027179209950817839121233970070027832906193713368218336961540826520392716151802279152864076831503299740609280483105062551572262871313276818247801169154937862483224017238370727160886419294211817185646748118569400870529961131410594582938703305286297918826493247420179551244232947629034883495272292830804012226372276110275203800120937520885624064531125037264015399643712337079037439512032028535025474827798093030202196632509329094488190574510298521728306996224219547101651939329769370654576333432433256433136391221083529135557700812650539793164681494513412075121883505473968595553878091947374656627903186816171364161521554077453543804147984545840634474745085680280862324126969399311229640560327310927938491691879333596148535170018149698261648003440278228139858790148628521286746175384850348068386520168074767440211476655696438739675796644295886409577559154192615071966537341081706497482220419135035223932036927792390736955880577997552601903081435508492475981857797980298126412519269808310756574659469351128562797590578003419323476001369611447290131137293265188773146721410741275221010515155865713493912768855730064565566635935253545094573789688358002770721080754685197902156776635593525354509457378968835800277072108075468519790215677663559352535450945737896883580027707210807546851979021567766355960858995244927220497752998154586253592955688586552190862034885742944354883401766168305532660245835994454330952973620564282947453966410175938780787579040143195672644502565389640520071487068537065627117466761571918106422804643826867806417817017101455799878594929810286748774716790174355039931696835285921164814878612862891163759927684710887436616177623930982949823406413782807112174123783422241440699848632882392406563774389808463170433981419017041770458564678599349411376710185104828834584759112985991132618063116652097710932602545777664047811397981202739627905217807965659334830319638637263605481726175440262684357264514741114361974748853281352543231321040655374753560914051335764484512650315994993984759123386762589988628267424214106563170282684202742775354785278498062554779673095621350107513570108143767120973610656933898112877006439508682263524195798998752445315132684357712526955116568426062497953005641342367940326869432022127715528452294559060131663002332978618427293697054256408957224731479608422799606431211557228988841340690157060791698553970627069498692261315505954581624066542762653609898824692284240221705109208845226419380040506472351410654462939736295006268706918574350346890787025266889903105903073320209977070195562670800784214175004024877643693827049667540691448956340009298523549912969960465402832129951288171829317338025893433608886395618814530549363321022467023712349079740681256872488335280182087968683767489328659515635001584373454271486153424971252261517808647183501990499321781991553538737856234550871431390503843286965138769032905340152384282439639132568672927224870847796968092736560421516904023007501736619499358544714404152214106474972421615230372466125530179653345435408898008690163071891588084555221984311574223129451967037586260587762633366848507527528479034425016537649163317928320735720436314962933262171984120414969390021578987584055068836313189782803270681820620114709707824647760276296351324513522519224278604476601784554635868956418344082595532543340887101615107036746824529220467808485318529560302603933699879125296023073278584693716270374914483889163375005262169733233215240070875809848564628977918098482534272120248127256555150503057004181198951860921678780927093724148047112032092752163821969300536677508468358938654452815223534755755907638023785215194601827245682363954905681259327472895456989344711418098131536495974851541068546097863303248642987770186355313674508110767638604733464029576882115288981356644930949310435890364514131755241478099253505914813095314712262341354064609059803930072954096921369456449857878131484983471061858858025833538008663482207458754757769206741006757177870214802490680993540340497808697475231821368788671920694203441862152990046866853574977871014752845821521535098270986352770357562938493139316042388716899073982395618988722188420611902770942990322757366871860797707077215592326418136016971727774070288413457177320625302988161726406498017801926964155038729328624874511566944009014691037146658952807690750630991658019040282491239634567983926956557159476136694387393330068373830818123094204415929595171871924926797929712950294915811852694465448881606448909108574738497225266256135983373917831949599150654399837939835090051743387881718295516184473257069422937536525515347117857618497747797331677160714994214526381704752272729557050017337440135602978121687188613072957200868270472815099449365576135300683820300724872389186045558234056763187626236258904340796023955291440818688735039163729934716281576586285346544476718977966400943420249016434108486305364084940912887711996506980457880713797795159120425380257091986045596738860190163441482900997297139228277863871263080176692137049349769043808195656188012979091465075440684531805169404962484549525186336324222226145869950092979045626886597039309839695602356438896863299233237659081142486035803545169782067694889248663833068791765942638200926377890316582705029113785729750974004938675358051632321698473633858419735204876339455394642739288524974516748990465145947388497787436575894707717794356270743257228553610149292967565026585100600321814615361292859106934321487868637434297702059825451095805417445562508116488195634432335555091540702287345061766348980049281114848603366735880522429802762450658064166164609330965832277412016870046186470873546075946002355373436366858463000829891159321746543217351175531575551018630965885602744732881743617645365592624617643877740379976886080184145764476430357129839955569156559423117453065948362502060364382217354409655353950904574369386510431293427166581052146477362856041042715237293978124871060598593201780757738436706563113506859305888608362023477806498797585317840167290597876570281387580260323333798832030389685399914520291291252264234896619763397182681060237095975966298091853481901250403158996252047170767663998683531531966086875291254231153750347550051536740686846995676773305775107923504903457787782633964738764290564016443331682245650903957006685680098251827330581904243226112894851849188221425396861310033713722430186839559644173467084178320400757151241680837554131482479240045243081253677296897044406796431797426815935920313582151463967892385331469168480192378561366570636094221329625671822214085376580706834616858349637565564815213278800208251696180798484047486754286481247189232457278488099517849200238132149505597686097804392272136566791432558387293962885557531898513390471237808455940718448328361153361578025705836438593371292347805105809160715792371735883271261645606567945034809907997205084227305474190778110649402160166666295094593246968082788587382689608487744561183798448657304543205368926840349142345088153510167857570666874956376066630729363649798409105284008454623326178181497976141218187286126865346071166509551354778323062741181148207171646652654270991484788077768928234579548611067150494736473997364806652995373677999340235327496480103446000856397697363373222947146973027764094077539628839012582466293969389877015862089379918551693308463815996539591339262924500564406760974231690307802715597007444183278386392005915041926664728752789795492770341508263915478969268833081660479564209112379312512452382628913239114259259248872353135341403716733799306171199648037407664440361082778150937198926678995883750525547609294200184307444389649349681425354244228754826346725993997879597972547224411728760077126088409395048119215967488739555862671065490302132402247707926524977694495520510805641048220680217292763561522377385106360209720313789483890876087730444433910703713871331637490928215492129660943559957654250506597023923980013397192543988353358193260423553346407090728580486521415339035222970604712201304941234553577895471248630004705562889455044608622266485238473107331722303856418653118021793512078836789316324319258064485005114528227697470288129755672304193896966911516840342521912666860561300384520538933691121008120502524108795220346236601390629409586806381048615670349189528899594434218075363312957022412607656628378577631058413324970080210963951349160864205194055137980373826514725989990212475135972827648704803024095769246243692551113922353178694829284218555724374736182657795600351890158768759814426657626582583777353798801168581116118854587199032823772576597479255550151703522520432959456689504597798593133546030580462871210509920026539199902203280298551349905589529620350811851911623933176841545106106551624788219806941469531402163854294846509930575901842547725876857641474091708005076586416337693581466078187224450583794243757628708545403350110537092671021601688974251901726647710911877340196587613192382440167786694473160364332359105304639269254864734057622116648426993833030504817439731193500536761645050844763047325637642166613981817216715311128910245585162073197007003112540505208238290893128757564218754167861569179700970093805014298466685212001591511327205923213373624510092718572734941352894812323115992346158969097896744541306276268725633046823353137159651300040615332005626421384322314827035473586350919884465338356840048416846538351475298726685210475900910516731592462648535707081943035235987550492977333075317220355734702365170793159327874445498164459324739383779436527800310927753543734929701120308885081138511036298562059488346961563623208283108425028737613641284672645036795749821634469459924402320386636095796527312504891201235999628480875170027135590882128244592123659726362362619317174993060278006727038520443869442023962659430717338754484396493573940165446942543891831593959675009932984755318320197095868111474034114643077490787323473238318431697758006951047596253478039290531227897202831710307704415204096202753606616877509538749135648654899352851081375466230230104416440607874337993886594343197397276280988725535964218368862525286842920940766935310174676061436150402241061006575183857818459430973816665274228223595232656315600436346060661799295434268127824698023110783192217548828248443489421559050962496809551681614178408105806817300900263152721796074723457974475343900826623840807048876766201256697542263247684144360299612706320364247672556623958413633466963420183396378254225447430632805351464492080284011693507171925134344917591634464815473816005896456760840579801659025574897671187722539527000178383461807683357425061963779397290718664165775655492239895116050443618102059416850541876584715902962594030767718693860546243793895291773829741484639269221118535479059909509729976074738729626472760521045951128274356312709605950237557318061954525987653198881915837078060946073010461531407967225257577860927309190246919298845173987163150768576635186493797629738066031650319861817206511878673359197652395674431888795336522908865200801404998114956576645013571486997392219460316658901192022613706395492150000809680804936515617904441399365473211942270762716806623267993172218125745760915245516705097654927987579284966167376193685343546860426007927821050502935106026991107729258332233138942398087165405046314658617867219949974969729059791579184648037035187388643820270609804934004556786093076538261926526318112021863859251656925865948327448316434614594036961723580597179588829058381523697885331682301331452292999154059230227405855037406285359045976578596457380652160026315917742888124801830766646377077199854694714324604154308710677882187690707969413136784605770183828392830947916091577622835129330815994526976068402659423392885871105440868306366385810204736320944965349887762757862699053539155327911881192633510691931273397666740914861397456145254527568838051822852660871349632838841836848480136264582895400730650791560741028890834546596253808696255262637115923594826384545608725836860376198170672633744812876372682998877722944540407706789940164381250027554201698302306954511629983134310718899098625410160029355244154862591376159747870918515340256888813019892188445661116491063268883242344830962888049657974271034082237366738282557725076771530518606164830633559801934071098971630988408746725910445988875959605303292488993638521193949096828371086457135234560158043864297103538466830596898796808358734978576267855658883836495162723545207087795334676586720491617208798131491416989137566464545697421666338802887093115965529089096858324662094236872595520958765867639645258106276095395529149176518173767291898766779842511921680755258160046926728928376965028649208798782224421071404646730748519743713976053074322345155253212123587085161628521453800836861246295154803945332968377364248629645702435818923168622649949921863498324681214946737511994819504507449659704327176040133835522236081534000479598193685223092588145754597956696947562389495724732524848660706542882562876735928839761419619059132908399469163841005321889186943256572066776523238247316438079769604445729694465028343061665221698708026175757051241641110920735772620397041168885940376105843313029314448290659556842964872963771613219507321997164144170256546894610127030824597238418283604031166034891537160762328639666165618560009467155491519746730842325586767410973340298461696756421076322315367897998858068319892283085976337509294649038791074370774008463493623624008300849500735581649669167597778658081118230477074246964360473279351820384719889611703590083004556851252805095510667699602373878235376637278226774052051061532018998380611491985952875002662945542273526058148948809979407952381788622443301332364554325741038837042323980921416149632755395663617686752438176556625101337430464808207552851564911671828345413047238795984888999156275919082152195945358943987391987885447878558839301953170347124025007207286819666318891540923756298247737363589629303730274864925136919788906763582461536907572381188900038683408930397937519930653817228736677538511417161821464063005399340793672109509412332835057142652831949674694850212250586274045481109395874053728880966522799491313504114857375818994915227341352040220177174269756103240539002593855895784915494068759108510900445669877902963589995785804399594722284335544039138455157545905101223677094900429072516327250643891141494031439293381604921411482986961512607568119300488516042892565334373068623996218120083759114317308944198998029337723050652250270984972059596353606069301554054235809356222199901761551336947568289739010093518988689102305620334560674781595563737372431505131046388436846166022210580766055016338443951339275390504719811126778937842527429307171428737605543790415357814619485598470604040101633653118930683696593975950084585133272847308800484877403931718396492321212575915598639683100503344056052789887661147243089207390677171334489995904995565286687043138974556386419506525626338200725605325025449791258937286606936652747569545855493793654946690595626482216601109072227166433627147859946459999267490495496151264230852976404043695030783887567665223227853593755677217005441761522757890068849222464725810068548316761687053704714029329379429575971294561345245527545656824943971433138580495097372060753941257415629101102326051852161087629611346623796743611234251779934005960149443294796416460031088377668870592004886201801963376976145058292176891376685475541938116074706436461835509504278367638447274620716138197119177044448797513778892289958847382008296507046223127280621051269910394458936078904429066128912164886732932771245059557649995316456888885393740496576571688091303924234856937644501999120287840027354636310802804883903986446286631594078401029177968777418982862222702853291914550355495243566744611953366897039280307633613422784813008059024523229864536534759379247009771237251485597896223350550371408237388559899963572576815282498573230291020966336552980975186916429280761927498322965219448169604371548847590855272358644048020175814257540052934387946196431967349029347026961869732830560212662858359414291417643270438839971403798486296507440722652641634634289829191540694582238400532287197813012034284651150002141596938756059895846743378832151044581733491029314084926196254430106947558632673613396013154936002702882265375501691319481721677272774887979071308645912517689622702343482671737444762540360443612383426636852909793473026221774344093610047343832594705561796242470147957759938396128282186704046594736713467400380288689067343505606541962915439823233191663415772757772625566712728756776474035878251863240142935123099265241861053652623906898057679590093782672125122055111315834782392514171893266684869674104933862880589331412583648730855968523648709573522735515641731600057043568337512858648679877762687891197017419892629750373901696681145531056396389133491947849112600288727202243629554113302103288831252179038609153411678577623388013856364347123025313312758349214962681684346180565506437686484432169160099329793588697132634594804765801673028762362637540464177371171233375552907616845760984120314814906712654478813087496692652495072837633958248312795542416998444914156090821234201446635611514398786928367644038199996073613035658764068334110290878236852304517716218148049432624678420340375691218100204857133468386031640918904933187028256511334225965139518362851792326534003162530311776858304390585530314347000949954042899310620069093842985984946257642436427475502009295982199705371385675402423995822493614688183578390529256276625781476282549052153118845167267925851062996411218904742903268982903001953919556490734818124668433899387652291244231198145746620093780807965110820809202500372217656466226546285167806975616512298469040287638196536023135636136497663890221979236172338854918198095735229701423204549139476002030983118265134708319579082742177973229110014981104209291997270793913105416884305647668068288143263931229248475280351556328279527326560834108816169796102396306652310043702682309153399901101851784085347966645769639956438623259072566307560394705513589758512702593763532523454546071157876567775171323140719849308707274172599038347990837752226623850161890001369665331022529573865193690993625896333791041177586051878192070877765609994109805155176052433838149857884415802148300377380729422205761142218734191201738097419160390896945708128691961868771823441333977805975939917040852574024595279535895516836710461224141484882350704209894946405334610298148181498384962874854695004074324843010042370237702693594977809093900955516428125416837951222634081034024006017318562283671178791286350576512210523464875470892286547579799198663491343367457317808000101592280324580415606204058814973369054688383056831118856426927446668256282605693182711497110790802221674273725205608523980970519287617281829491707968108495634209221568005222657659050270810105964689600419159413971344320797487520061970362143653107681949231466574683330194256177258029656287105746356679361964293350904175915476056437228482315205448832642676308711147460636034732834323009419042086748123219633559808929813901374321723190294403380213835037846658247849282371602845709018509399863087689746361213922287446437282223068981442710808767398474519868597356568324758502379022904387433865650163543092049497513946517120423996380485152404382714004998736609221595167943665520971624671902878497234306879414622093306540351514653335343817621214097499529081334366887421960854630056294187185719897965490389226099400645813457698989029375252603159479352051728738371667007215479619563757407012855926075633358043611785695703271510860973326600211008827123199163759340997123032026138109889964222097317552741425536341306159729484372048567305363345356618321960256972367743766404198553908458665477313344243061721260086297605296720785932256229235584626284633318929283198361000259218711370399715055774932048759783197671362863201844282336539347163637945712771588409841768777705511446946524042208853820282498929639508467046570193475974601082109002237981389393889173661995870235322219629414991396048429927934116586704877857111337265349285665368928875089626084058604973081180779650060100681097962304559548011897685661967624238931275652416559831945661471675822057205150733187438649959207729217154115270702515737429327406030388997018176392492844496144989211996008741455920119711061917813560083117939437002185678808012611811579946414717303547906767039162644803691523001638097509549864785771530193320758707672807382416272997985657219816684445193115121472153946260624154747884492531474522234289814443935668965208172835201849104468501236353466594439101771286059078923203698177814414065765795314169342756627442756479249572256177112244150820590572608481471404592395307959706042717245927521655060051371539677724263182593431649599940848813489629443980192805044699030743329586964202347799440608555298026016876274594816524700132047509569931582510565956554511246812167410441892014971291705911320464869299521893607872571989543326870276421120797111258063437179070285365686818813064931529035864912313662571902811608044992533173093318861973891372118396348879203809214817739751512155506071421237847824951464949328585000899517323133417944919571954937381022516204335585096404429995065494821817491829820980285016135764697993067913222478498512958741989762340204826428706202051130484543207456436305468298589979035884055646100674589972300286489589524145330379221860767572196030001998405346104236967394846598198903322644713641778288583186156410899810633325669588014908754891185529444754877770703325428165404870114529025916253519801238741401043603630920528139960818578217505919920444071679901533844586401542054227660394950985253171464765665886681458842246276815471774897706020161939694773855297795179206393425938196355238038842483958103927567056400517745841545364779201707342682078953784241931871811251340019135490752230188536642456151886403026504152062258752697464483059606000866480846739758746940310044305071100803285756185260033706833217834100697307370364032129825039545915664516251801635854889250188649041767130862347416451200097805267165914094586669529719432662613627554666276397479883132420766002470825655516863465415732273037984633497435417605339118055495848517100306504714657091740008220220333420842716210255069982951669623227920520679012499910597901723864217585369064213618772371091338814995600185227362965360920637316839784737149841162314047954571631028508309649294656142890777360309568914137573724220084319536767372075167234021174327264670777570720566446538170861043049130199330474798596351648879646194492952890582573097904095062772066683569442798805496198375127327465076018212152053349220808519176266170836135723334251006968310417820797186065027973257761157165072402736511990861376703898866503275577438942275815661730769721836436801942195847681141757576578022594122936937628548376150113712094447772678839072637650618932744947410926405869319895905855996960097204635671095586425942225071342281083161078785456208386552686224968775589567428400965170789743998364521940287896992967688552250992454811316798119609584499945128301743956586455425349246733192769929221149864428842742821896234377707149143857760805808485642730371713537642453067937869457905752335076438815218106566079270751572528839918515710526005618833910853622127568842615368679981807360170875673642170133324263530619346354543601726038855255677458062131463820548899779437994865925280732477127701533566724305128745511130522707692262151065261479813961301205482595539849829038221658540002787182817945275934575981606268256693535910919702531758789585078642512381690228684408855504623386176809374387125500306276779114460427175023690482605349682200346806279793975282372351973107085666232473255481566912018466156539344860475403574057353264973565944918990736160811763133524918574724029491422191055346694230286637390630837957952652291658230260997650740918733400133052343101030377785078752063516583462778448353683665590270558349479612983505612394339024757396930505229513081104670913249882048315378942261322355663430981141830986684768102825715502868274838339757192587347401153664671682629370155268224421277110523909179693192391277379771768801542246883496201400997322757593293917724086463489283646444353876181138341439888235343530623717836037727092220679014913157494612352486498036806094484885719893841191968471524836899608147222418754317335333742369490081762643689316367885345454285713963603275099228957125803241463056342872931869971175945658363103616835157351924115291745856865483974709206998158899997133603670512517832216587046941565206271294188303672861697327759547489832700933761709103805515938607797518316479113151091832801275251593651504886079398848586099308119349380127789670910847840847094315489455770550455036182181154602650233359866262119075457284333340654655923652677967900972402255903766627701571787453010678368459746242411941460927025518165357449640803707635921820480703170780049503051527919804684148029262375914410938821175845422300258710509897434053801960809670600172944613159435393190215524986391770306032510939596603820623564441379417884276524064389978721528985487390825419481126849740034138058770293316002349752331437832506834683239029486296128917710704498770623085845558300725385819369995627494731655208956179446276477688277511157614704990194822843238680273470746738628147526753337201210107164668619616006337713521378211388572121554773972169330440194716653483026828509805531003676041798533591083991213560094604211825482838260805945116333374599933098540090956755312822504067646007341266354406248261660563576912527998130161592594268648699500472477533277064999384644411392955896914652204299081224390628600046503573812695217022563921682177336732020915867504500478898168703646096151846004855741439881726097384472127464419545019833559323176882955783064580208982952763154907355005465411111371947630436261732978590284651319161466655167663506411933457586671378181098415646592962365769083627160722338147885085506388631774907872349191987679896746362545471260440954168197799220710427640251548433196477390558104961000164705989515785294399191798519780608939567864719736389009852422340005442237631164031518642793802179526568429978142883832138959824393958877015579907839448920670917065520349676998605415590210576514771578737867513712547304466033499423963787796271176836236896244596776440199697869302789570435167443150980228986501287745403934073972426716050025587854988889409938420910016817387489835845628935275170791170549000543621962170642940432780627987378667673022285201837041592135242242759628375037299734959143125112923968531901297535611629672308486174323176389298817540247039152280625468479103097962829343042133940228841293104759404346083566834323249561364754257986254455449889635167136444593793573500702773176734884517488709966825081043899155677099848874017882990749484423316788301806059737151889964295032419913988064778214020010411177747896883955510807421116480422750798779310315115110843383177288725255853668013231927523396907869301592580852419159088376804536260897508342110444191172855632146461237202911674061466035739643190133267351138318086854427530611568220064205077627624316309076339574680273152917799081012535494361259147198875238666399374852539797888793077692813208745702729612199390812546255462541090083430520403871083838572264217675630290493017692951152885790854789541342729679084551526624977107434221537656995492169311900356755887971969593608944405602798532282974592300572929022501918690499605151963466587384576628616558370926229549052558715098878019153598544171672135730700635697462366450699943859586530458169557668141518863751672958285519470256814867521612134585393262425217446952550700769270083280535053695163837024826205634521190864360945508786374555688416514747774466068680273209052745681753951571320375462170698262614847590710692505568871840363000530513868109575388748063346329994876955374348108245413109810837369070751045263814615713736203505637412061154369839564311367318509717496343405832290723583401618290608716587101601304215919171390236458970590273481568107228986719530257968376456398971876922517593315586797334077373304321675565391075575423891616070212271737592070056307136843747821213528898979866821776283257253334518323039274761865403919208796565258928608193070403573964208098932108943220085199416761171752735397888202661874456228202205315283142784830338686027996517517975581988333102562543823041601894233917038633783579210320377866821806189086326486741966200834537726721380300483534966960106622413864272529253000537291773706116234865438736033357315122713930047525770309217990269105683369868147007004668071319009006387690689420354186765107497339382475859863862891901184985160567627206356818364125792244982802899653618617776686778141029039884734762717902348638353671988418153776428435790683635879056700585812134278486017342992731149852582942638130658497932171960271888398888136721030252937373068728428425267681849503279329574707045375230320864088918820469202578114374706774210439314645278658963807040853074482407805394314796823543620540986524254461309609568972992532000469372276519264525234710438680616284415026327290612571927257767631402242018562351489059030613122440819438963471259810672223080736248740388234464280483917599711890693049486869311881573358946333731378306463075822060360727221651203940831736077127229108945530997277130413106141567730248755030303311974593678235696920692900868406551784355069909796130120859134208252365383197216400257843865315526851804559506527621829780729270016262380753984531787493214571767442842240498063048733634559557141921655599069316011685456804757856944582581465254105690942130415186078742436405050757001169784515992851436363314191985622039283636376980736964248023175052955013733589796035987444259036369071724627520840312123803089261318802320710301404611955903967347832214727621039428519154515034699239286860608789482720401315517854889242118587503260120766227587948661078061994316694602312466700366406945698803378941916927909305638007712556961113855111068230718626350878130165915966571995616639269524013281937122686738399710231302371860614424028167500027852370132974280057314123377107673052630029188543218495203772625172519665489858630275201985805552865567017412424781398441147945614036133723592910024028800169542825276370017260558174084453430805114569010709200685375107498005622995679393703609421655852401268260862013989663997981826683814642688762945498686986956018358721332468705175195617160408503607021926593490727025109947572522191084244559520783085143427489795831409061138136873218656247805199733098940110047570718189852293784438141434541275082709849791964579292080235503643635350960125171771680565549982788366872030579533233548922735814390956051222929425451105961566598998015880640054229431876949270762221110284761808261596446602704309729054929180957757759026962478243427196842521066737089539128792695710391317015524198956659379628884094286905195234919075493968337433851086788683112974840774256142888024202545647075085740339539876746447064724122440508415745987731692742806579384510808293347136974573171707801215046556077308798757870502442018251306625132845793796693426746591767544732128729799255322939565415828683586256392962270161695814361047964633701681690383700255736494401395819022902590430291793301413198519600605393959301511803485506302148638173900592786593779628397460050166002456192425055935165239389938578583292259171164760183315867395892269179867719926426770722804451657455450128217130748500736779344547024871488371884766882437818598556832300391829250722212472339543814508124959205727385821638671741214554440720007746256677999930338858143839522468418606099465055117494931262474754541149008992988802447511714394147171562048431661614834901904600119092962556851628776043685120922176537252030663261027926045712112346384308976910057607603820506269489451831336812975700849465036278304450342429885580336356198454450541852394839890825148086679715953087237187329524617526196498905920546969084045225197466547763406553670508396129526943779829719822550740087246757960737559298851192270040140899223099769250729082437252930253655458496293343701951694483160099816953821753975089393183088183490256194526897726401106041349080453131450107139376971054634766542938733278849650778891157044338998759686206776694117023532572196970063355980127679632173540570173738734560027884615557553918888819015793780554417315212471104852527959766608726189792991456157552097970404808675605446942831227454025633219115710445542963152252304360826363084422103356833710034748286461973431203220247244393229338029788392731660966573419664813971173290576318607759419141898287478329113668433025352925249647921101964649065217824280216584448011941483756087062646822170527885558666093973084921172488988070552950041388669076368399430081887793480377554118045469519337436930740150043869156290274693614588145704566372976279494406160931199311174180452044928354561469971287682350175144537389283837680072041680696395364925057869308093258643237958397918508366785268709394339609878348151314236645262541524927558779906532561633208127186353644050491018131486487972806483608496665024892073569753621719047572055407926966384435426213099435243251883097135308234078731415494809665748791962070429813217624378108179660000362780596168645858331102483433125102935266385776539714735100522118161656726351353841367755589213883356137546166901506117537764963729764127572979618546006530588154337466463750246766187368286013593899796610488703732129989880771893034558284247986325865083297164788136878369340431586994415840560731051700807409062423229834214836459375406668988799024529677503806308864246235400067920501694025766842267333776234700738508610419471106994358045344557048916857268425464900093712562476105936696388997312784658624437991441399515694668108392632522318191172864007455876341045628857512550568081525229392792597814861747545269477638044769959550506070304057230748023470574234467241031229653495050651701165431324285219759223250396349180246543163466129180222569771408902123393287886041739410135263115203691114539200387541090012174008003707640680658246278050875572041054258157045731547930958472208291904617945375395547055895534904623810081663731945502358481019922271929120161775202444668605900966401426557247684365331867035220655801458913652142148842795655866270593388749187863939123109498561212629941292195705509821590414591386112526656218794569178586414084184662918123127717018560764298414034759248597953641392957002953996000447652417411806360908910703299357601235674502894896672436831132348273563813700784818092204544487869713639440714068381085375023790679254919907435453911187544169787977445880706127946791026105972678506875496861910266428987266041554000355937062096146877748021195590129744347561903690150322987650744211659407494846421163583607742142679643983102756815554612105716791531072217779302545732287453729298919495464444302147434944339915261997646175605004468761414451971378481762117897724143554673546702425073478364221897884302406489528463143881634350752965333347820743987447844243948343786215800052959412016958449975956621953145946385170657449406445413770883853227475395462267472178164107859715062639482911743733169123087794755840162452434673160765279230383361084033932278592304370696142336185151202016300371064733923601594093487614139315780147375520999305714396909361417808686920081272999501268940633815459426180425248707055293695120120933850061826700896112557402629284289397798199536585334676890135251331654478486211389757939533763847704378960005437463152679226126554035001329447959332038995044036912341008956512641833327189635116513065117671202257937290610148423524674378547404696125822110639983260451581254754677929322160100396891835166867336830393136298532998872877313365140099200771811594958529964781866067889568730412979681933386864036542998250248976083898727879968322479948612906215381195278117506535007681270346380699853213452396070408503822031138373124673544085400354980559889762848218255029841751924213819952951835534403125784310766698198236289049859569939761472019504074153418288497163679555729981157692899029453651754415265328609725311247060977431006428102157231991439287247182840939967413832697591370192060393452424462818209416205366883589174586151994610289297586116332625393634857916508954974755610887043082657833533954872060436193138168742118417529818004502462401321388921541354063163302382161565464533991219188665880282830367309947128978081654878897206258768190147486576432647455435864796605054419314007833058157665753933917660149690172511013519303276412543790817246689999810787074329882860632105428729230684618965421625785755601612552340300580197329431255534421488652069980970043014298345079053809234458243679438749162814834015294287829919084621132239087623502463789187701226754763087919453241491141091253487734704529022285676973757021670272351520368322814498653030193362473582464002265301781786230613182673475745562719183138593703869423224060783415856173750148103203795100191326222685916207583999928414258360755023703675143734725006108456521231782069026932327170717018071750076671070243830088213495621142096666279257629475353656122311963034872979923961295610014411768430991443598065566847331837711114898251668605288243158296681577367429301750530961966351587675538641288368646401680329010209836414539013618201231060000077579660767714453237449036664538190330356596405377484863770568919521436067964328702651141982058714099621884954127590552896627174371637870154631182349958080516726387898690116970574332525233066881141023090637160965393382917542474057228131824852865622014084294835890305433176866938862725299013743012988285332041492596472487084288708681215621556590555201187669920995349288586951293492562058852997594598147350552550331514573498130249635666005715621294128820162299984814529158027274529433671346133989549925197261429546713411065508748687356789905052618418649467003626154556517859007474346830220335306212633198282054810388329437727848015435298542340690991512207114081916532842162868282636635610834323566621845834965842435114082527134184467043885460564089153311183112391186053987811676276761370365842848180731392005624904716232823299108066060664706264035428591900796973473018870585654299212914106508310502492118115256100637422924329390473242858590436910997808736870161271565760862527256304137946186853271590894846828027643878196883034690139863099353489043993961413138596462884385448545178614698948363593025023338886138660578825349382042975420534819660539437264347797913552987090440975167142565491734186574028331056378689930376561815662351820475549941943497152154891214252064707929043762128454036356540042644388587991544652650458844150220834818998082523762637834939192990877418633119502333553507950955019850442946460037920770326472316538371677976322551046150834470572786498431040691955211902908981909550664375400366598915712966903738260586886220943158567621416946277003446146558837096145418383678165326467179887047516242002769841056810499347974174742755566238344821872394925598724808179028869791780821130782667388227175699536815810068349441770141103531411070982796796045742155734677372931318357429009881725107070010270568161059092561977387252629549670643826974876315270996332315389780214195846283702358552280297758021406191250393900095497206896922935154870995796216818651729414300236510071410275558943126234999452621742518340731495182266541367071120543595047705298405516414408231604009414859322767183356104103195233484846079523646610699869631765885028193317090927754380975029691292829028718271868676560565601038836259747689933191815086846351020204443191415907723646830255391680889137742672332139947128849775979539773479229678936219309925112006630115661739065757368376763659371892114223684991202147557197223055741005725452572453855565056864605371122682267950192963103945844174558065212238893467377781174877110853585636510480400702351384140839434491495873363170337452474420769031046589402807065204049010261018063071440950890118365282910010426311261217230160730391427829982605482593748719707894559086334217056537691155991337169641525291258655071927483459371130756268223314419307505994006735363650372935500767980421512143519725325605622643945414113167472987783687140996758965630701996956082462801450491199124071218574805370693964038921234646978712255066960696516150681300606294107400804707570130916173507733475564877254736912252150981350331929933833438210788554383323618735690716080545580984367005743508507531994097659653368721043493322280618834992004827873811252750304920888817484642831901653960063046650291562089053229473199966789104299917745341287689103090997671881480309327162698123657206043315964964934205359309749955463534159984382386204942506939320142666378368948120219976141798608305898382939006739514551757354999717075389248031529410901185149261408759447372115939328926370506958329918100862084041028648992346326034564237042482425706390912938080170465965363072414492818375533047948623350633663637588656105890660335316291117659790023653012172857536620189010164981597772472905402267078626833877730111700943185140357762194548167620643753196878414851842589344814052958399638497025395976212635978594566911063706013322795334191053037954042597830413766751674976878746529964917834233642700074547548194947135986680691566664585329149030823205989028120587812681576743093072101761358226318999288797323093201014923212637326715179649554896892477661184315456716175749393840161652290784408942315087668705466527579323880554912666169377759895392556108040693811822480005135080937204668602003905500914116539448199594173218719034097188255907262958428371977008581794185070102392475998828961357377875643588549634256114678078334051871095131257599993180519092190226656156950392826194790160170231224330575443126065446462500868662274804386674419442015394260381155782754000040402071218190131574640109342733574833610146940368545125644320347075284483893175456176463157220928781027991202902189223828247035054633830941944779746913088292457205029220624985552355105654164304576298864176806201741134808923422728834745432011980726606895692588229327024544775347217655283908061743002542828159828767471359831392486775453184684460838048150815663541946256581329635955059482907633010681564496651788032837772344264957347620939757595579306386710047774393400649834055072362181198948448212717277785138995684904476270086131269781577572295464760335927355634301851525659582920138209150226200880031749728538998215039065355933128282835302291042484991010409600808129227371345158145829596251438171754663416763065800124676193027393974968282716096494372311355756290781019612424029811176798261867140483954668523855807275940560932973124055553730447992932564932798114831833202137311156232404092544419362171293573215519555826930703620869391030956262579288494465718175291633610508440138556367920711571888579885134962980427561385500828166953039086989620802903035538006255632140366817790818021164843877948278512937817115195312920602534993978761754640800188549112650947737794033808138516582177365474212231932820826980804014905348395503964389278202924723734827169643746781354156230792934930724033675169925218892240566961469968147387885186031428976353797624324269819101596656181862939220488095891535233677225687364384668169767417735744924027732442718521724582490379444028830673844564001853656074654175605371082546817925693646964418020722076795015297467508384135231135616254995291763514168838458188793842769207700363308166744134057171504307644550557086201962187509021388493215588493146361185166819219333310687104157219222584513623221990026708380222348732157579711911396826803848840402814592695923283959641886626796149305159820371186283109450197691335579388158951141532725042249535888645052952518856976647677540641989646125632782259701702333755852088622218260028535928144630861090706741716126123002253062294326943978032683573008816248684496380618338129063172066698253927339740049475856958735139345476951134818732264175263119057768859219802373209352298817249598232180205141646542331746026771047957385695174672602807096815250437335898205504740080301330175581522716953096751972016120092056623087754287106964586347137428066751678319373513256522148383317367230811981653422398026247437655894767569216343687766915649479989449089533354826086379823253949166726899416749983477046990214640899683758249505829081453314220062263702658890856758926305062177250459027499099932791976237866665291918639558768793566387776474276695160789608393162352529278325036415584678024618159880514292691440698965247194819339632313685463418650909284138271725216953836200632300921099620624942506081118148675129816086548637849168389142024407461253734991180744446800456578072347621011306844607797942213204417518481616010190843118577837369230285339399275611116062550093838015931151113590785216256048538691432381224590429977294696432227371518952580297336604535600707534380412669670586791436932809218304113925179378607725904330105369386056453122825753943173722335852211681543044363584974277208363422787961783015362502801858578484425971986713283424851276948108214828989987454317220977924036083261987325361585956014193841365176258823231664971366187149882091304281551016224391160452496338425654078620540396847598413729509315814877737124018717977838047898994943654297767325701570538126378522274697246787424130079364232849781847838418709500092027232765464981769718563115946830120997154727353173557025264097429486253814814007859420937562638394686737163244650066947567053159947268781125617046006407444558074290199970126210536944280714092216615182130793486989728370011952930810736667285487985787148223531687967478735752661938542362400071391130567555033885290142377185416489229415567163845886141110633338312041108527645828402610255558454722593759618723463643099396380123444892556529898272029900367843915104186874958244295462621261555251986745094446529022196496329554000070385210563219676582484226507331253620546260268684522660968880438380474372623233161666015912793688199594050257199993291767339310271001259536094694379663859680832664319316496584963397729194414518373166757368853645182023023814826377065301139112891369134624913279126032535345919916323452775814247666027954795407043305095730585710512198291209443165335943240846813807488753872970853754416828066098849350666996372897944316567926876367066059226649550352104308343571403351838775617420963086662250481525113784858825700250405158386183616450763591975664564712150619898520627461072077885340900897413337888452905606432467837237844238116245396078973114333370609605259730199650937439545624668662812432752778817857645097868654913892339614539387201609954727731688759973321677118441995894848614261038915187575363531390084472167159313610565905523068822701639006046465423719340430985082507735015485199317471835737304491506949757248007908426935982914383093138985548754942322744949162792191174416817622585153292309062702886262732717271373674728853638621232215215659814014346174420864122382487018421762113798480012891846115029134072351040099682816355155884962593470228424529656446314581220877964148139740521318982878542842696578224348921862124534021422918738248798312836552083881102235045871328965119752972393956001142529640219606769679575814793597999314184981204111154282216513239255907098748163233710191611397919813113343628756085191368235626377581119520159283010980245617011022257367211180753783939970561978347858998010395864273294684313310109468796463429787772268219444805699924553685460167533539940861811762259294277647153412400002769010274117619239922487172129321988282132145815583308103276766568215762232861023578888664955757065519767142309504205762010616009270364200234045097208356485771816682415119269448506815186293519056117128036592678213698507508774982207319334861979007258977582664142806319759559863145370970654776647680072587850063099401087894554709720638038948369303697002697458292541889356827697675923286776710169803509732769360272883121039870404729507335731757223271391288682308969775881257914549379342985359447300616559315055902450692901802949396531937276413075979435030186195182849400682794556592773381062149016449883428475015304083572143224589265200027521484688613520268320201235650451901911872323559167037232979034597875506946927721571147182379966807463907229451229908534653261746797338216839409164611176212107568264733826146148780221208854610941607249501461647180175574523157572564916552016964627970618347370461961194707193166112753777075198944648689161124640677993406222196506865913705310362339187592819657416107839829879513864770740645142244930292524076236866433594986611393309682004315015611717440284570589293425048899723028035902438855797151315458832846190466314888130054461650106191633925396324995668918855812076832961375023195402633096304694051247986849565872764528769709915657361774733919053124868449462587226912095502070721707162187967918776070558048101519229507432633782002791831155368264376788757991198116796887396317781452995442566577309275671432912484702302278647522453354025140790949182546253529101439352289666482429845599342557559177758575824235233897374748446334004725931357292624483984877701765481318806697061502288930961065688203005792824776845650575916401812945586968803264581170511288126050608222011029481378867623478883248252825039466886560479147243495936240857533931494128559506580257628000890635688149232095192164003188097299919802546703286321856744877047667974008052444941230192577061686079333377261667952372310225603045607349457206356031317070375962721464901942508795425966836567349678477964017862775009417083925965179211371888502696058085928715465641853891151124482809575136933274382978784025912924252701523801839428277642307786599800714990011271862672569779749355858588276207844192101150122755574177976386270585270654598893783329649518770115264414216448752086329424108541931861114096827628512901437848023439124804724666828152772743115489646255670802912294104703665441279619458724516005911000089599347648268573468246049695113680191131432130230724663416373425090192136199058793486103011684913670312515932112231432891632315514863903892049073046753790603338481462237904763363720223176833541143297333311418939424737931987551333659519236920605564181536292745717249538204457474709743381119982520693905592573907077743606915448349546454394555065175130465938835163084824746341099051994962367971035899271356201097850561624995231890502155814684467724636155469783168324827569631357175583147078970917287783371804851989545984382859669977686925059438280995311638096443817997760350113087073944851928516254905890311087233296314882559207427401434402388147125455959070011936654709673891258727027356852730777519396886203870643053734199636785940852157897724435609553832097371222349936362340929899012531960339947214295787475147685543217321671274622768033233000563823270722754529494217257519412510539167218643358594453492687692208238733143003926135466300572963673315564909795980489924726693864564374620224968338000050557898268566769671142801876726217786557664915770035246110093279468256367716153962437927712948381379723447290968522053123318201578958447957484049665426250203956746823547335325896674648211886220773024416413964005743958993445124070810023107666728342986005755493637474986490855563048804573498089745784926319775144735958577735630772546785298233325468702009571974896190023249744687725350453317273092423088905788306207272855498567467904848611804926653657381113003182547299877874226322450523541721830132563417954396498386793829456411967522772180797079505564445083804357892004410159910087105620865457535861988133754425521273028942416530758030330807963603979606664242815793244860528724956074874090361813640624302017652262395586836828920962749246091188942919022126987681974610643447889946335490493675843048514349980646095449673288773001522154402956812345344894693259234979855786079219347904248738644206792284192513273004963905388381579374791162995933734710442586573721918359134231189246812151005641755378356731275277203394208457733093229393377414746291204143364237584532278001041819917548416469079889666380349031404208579751276702343697309017820412023120163323706816098096193762383531664281467808566072208949378140585082658256120641566908039133014503787374700861916342078689658413132733633143633823725986924785670108198872061494310116009326430205345194366867309888936587361852746283046848650865893166284417428158134399120583431847933143825136125768653093775747737196608082413879789095686319242787821365341453517151201241563214557726125717115423757523043561118558919663144423086936670511991381534032262106215943974271207654652317651989664244752620471519096989174455118437433125604112060004810628341774495189990610221341264453400653485761580063364046688273922022619214475711159414547570565243538867082174995562889089016770823973102051948388718354983432880888607110361769033231078137963055727389811291277038682799321659040531468963259863919429152076441218374053356689581994265209152060722347870111507849459926379425827381004560937340373847005260432400476515103397442629158978594216190276546124371007314153313395606701209923570558935555864373324662393682733813766609885613860817560855257518818229823652466239368273381376660988561386081756085525751818181898982365246623936827338137666098856138608175608552575181818189898236562059303984802684689256483157272038196342750244905381387122728365381381741189038186293706687965527401835160110677721544274876318669385166526891909669324124145765251754771386167907074687690502863083641493189655956235427862455158759933740486888805936350947640464042266902373943469381319809455398305963795278500402818801715189687315831068254147354750483209376687988786820162497720796546229659986970928634442711878404326348465824167244160379004862906335227396263264368969521863745855477379277081083209980065603785497861792816823801844373777396596758291322060125539286970613118307574973649821014731399951378011958363046578458621881944149784937009840275600685498026335735027690350133491599941063406154707873329060370723116124034187055078837900089817694702597408126366340233205234759494628647720279625211368644837784212775470890607510255301454648072545962761137431679308322714444951825155320253068899305853194831806190976281801667723036121660678136951717648759790641767207827490044745667114390302618481170988221888916649639386851319346911259894986247734192221039293185653734628244718989578758679611281511099659370100378346036699083660549953931420999423492601951720056003498594040963539910547277394697990413578702263206920254549841657267742794639612974391368521794850340618077285098742812276901141368164028467528875427664834717285451238985915716062110621038611504145324978791301213806889378088785741135694023601086117274749076863458679625973610019911702986963967536056330358598505902404485705231443082279855858042106676069784668585613992053252487035554585370101077350088649519635411914539954755706552627758435765745846125841563107474953677019045088460451789610356300964498325679803052637110090348336832738009258557839639769788757455040977616660990279542918858930891795098681231156305389211681423379581310829419130185387664983843266604890968801860786989969463951952355412235444495109149042793265931689165384524647612102977323804949102697206319731445768722301888645472310352033608803273451892514604283782723573738137990445139646145877241578009918294527691148925644955445782081125854974629912272326464903975079642306002619452609812386038941728525697644742742928937816441022597827808080938118848982866564507504699035503682364045702878619264007846083106256689672105151078759980626053310210012235808990878645255277392745448389494246097730976810328818104837755849053575436985478248720979623960285646337036722444725602653139281324322602774944601780118006435380465617724182884415379327973303165642625496445752478522515140333292180299436366892004502808793014583626559274530369320858199236858240582449286797047004892934103674324968078716780528715571526979538731761613935613259300309851874585260746042807145302953344424836352786309151458111677033843498109034713808687989512890927047103603336771077814083484462468606147254988365476714350789716501445276993860022792288731246161188868651454875712458758319486681960713512978097342890093482996091613721718408056889128483203073780439902980119776744595260872450178788482758220314160796646845338401373003633935223913261746422839714692012729341080322401486297890741356362043551958301512406087823579905459937055983399639642725428884443219350837396044412680349885498678014241201398479946947426725134575043284161152831893433625782555576248604469892081082951581213080747248488317379714406575523709296204687229229750573904325529358481198026632909340398949735809290273565026520968628278766926541661877936514649996335189185919828112371770580851290889147989502296980227753697818326436580306594608092400801768907232584144129719282424720380048659076248329843266612530268510334990265765785799633057285781580448150653414729103401186510752757591462138595755579846533174652421247970356296576484971699687784598414328136415062658803237353726720510020391872086548894049163339238448057175638872509301231379069730344640283694891453218747968903689080091910769648752267931968839730831363285516442848545438955119235162670552416610116191939562321215404474588449317760332645864833269999532761311560819867303179877709688547320697361110696873523008666132573282355451328892707358403815808959340954004776686337388220989994775888725251392894710257611581130581373079256950891110603633747143004818074544707123585696701876163044024859281029412448165330430019767812518488732429146546537476530840785629909045373784763916341069713494831641494317725925735989877414104258525650646992257533386670229379992990248338449796361658260177037602404285435251468929382667737884010050407781498010651565529747650230253048184829022351663490708944987681119612151065080708845289402983031913436947886071972309108790654545592904426962102412650896208002377548637921900582213754179945136773755029344213947834384540882496830055969807227427147523461863844963300372011058488444262822847183566951057836418070908711811976341346792304827999192942334443433745265711851958275817242955697536554765355857153715878867315582373179120358194336859024611689549358454843810218209805645667115227811115286631487979122410467150345412263591740231050726757815651690794975354569546610234350635178926282007387671578418448532331264748169641045009329526393910725514026380972345074214526634679124879921950424950639835057563167002422209788884501423549332644770854207329564200647999045672828827308973634240163559815127165585708760263193476035747971136732284425449546141241031441121365329590731844662678111062740199008005740851336021711329191019148172385811035976323362159445906860688581745827210663607832472110553988228531116230830772249320718760314283554972399990954386747911904120640958163503069215365395255939829108364440577894768655906426959078555889278014811531296052829739637830522396568797932913415829562315501056197500574788258435068389480272013168005449241765541341553672296781867226297521935729676215974572929982784576999581857012470410652755234709316760210887462018949830999056268035473239191743880352852394519685590226299123405562366816842026140659460166142689816364896322670567145452761552084031997755218112222830694640282754583090788009525538267001174808944008582442234484090144393099507604587499296092919448678728424465529426035504015366304857278457506789033420637548565180260586465453504923154636606721495597923199612838925660686245382196621379095614180948196268023483737048644539098579604117131070124331472277069438162426160779174735893060403221611731902362901081241463468239091014747845348126473693937803450866902011785409226918907211390842736264008402256095279536622268780363107499295189633493724780784246207738545646297469856781877946413327755959495919858741916684478301866887582598506335809530473059262795878826628135669574185663518366296779633536616256900065883452847893261230794253332120934313098617001394022451593986301533002758857448261555201163216558305401109024799131744318609478889442471917656585739383361529389164631578777520692609899223778427210762267547136296772652833826045803154881842918345790562055852313846748688098747574182995143608952757114896969846591330551571824901726406346947383162248457029568821347832186005021975794932795753714019469198710339192150346011748954935005764831184800383210704551000319729946062669081703284652326380242248581740354229851081369311162482037815682402670540265060927629574130039459067445279197996647299332750032387853445521820309695277254118331319492983745429967434508349456920794558330895721941669742554468253386465610665141619474027323306891805548871442397014824881413024333221160282289288031591327546040639314475650451024707847827003100830623983379035059208538782367438487469071591071661383527097558515843491321035012225586592857429605107691468925290223593827912711007177987873789790206010405379271265542602785723538506654446667038666314508709916557153712069207844262872580323455856531437854325903901816838600532754965792572606903799575988813473068888074744754711193224014850571325800645281485106494506217879717366536758124185561781818650925659150896785883853734600693514976694020085414241195861577381990261801995755581062254836164041062076309017585607457388473264507133385756546041732533711302801378940793857936433995336278092312108397002330283646942338620299103313769745072519281930448106053614889812723727553453645151798438699737572972344796175412263854325015231780839725572687850225687121681353425390283478101919154203432425934609133113642510731939943370384323886137588056827156164854936538023785090393483362248227318207409968453296642006626803726878202648670578298511928450302215815053035641756893775421063138794300816908619258742869875467550923494473961567075925019168369112930377480495519909703982336382636489135058430399648195723621157407725768233699070237446393542927020534604480383102314448114591379538474923915729431278074120440608030975872966973107181984410669334082604969841515771659295519486558164867577942339368988277590035789421276160470473421167218792048876942331963840544994751115932547961762393849853824019647708185209486485592422877324966873003010246261044667690852545609760525276754260972217580423153215767353290753481536411137564033449376447731570107441776235823186517003547205375940431782459913359833918178190963298981513912575431913898337254405281508154570310228968029957722750833121165977042219982689658324694122451128329498987297002528869278200885612715994977513562152414462120118572601525246972290915140464075319219928173428032761859964570258021156017462090635890751861757530000424919672009214856764015969761597040573694259035682705762172698082612584580596167061886633284026338564828642610385930749007326146476834590415787979304998205059043213002388639330297873873619627553321859580126622163258466407754647657936338085449649570965549194681612051155694391080796813539384605975006717950631025612247952719960465708625384312721919452003105093191236947954585612237929584674483220803838519266315323828450706222355416355752016048458595787727964356640792897731517789254324601637419516533248548662125998117972463576280561784916758392325772236684392313904636250636402302831723001378553839784405960356833268427992665461606721109596063883424295043002336365108733945914246608246878679142241097259955121353439193233952088570015903804469826631106954585363846429954740680406796096334008965964761233501181547182215652025938005625906215027290122242604041472615840342781626054598733857245637147779216047482744334411129673123767611986297866986308024179500473099054868078683929009975257836056842325273451249388464642611743784590176544695409651594708729976507112762666117578696019032897428626383480646025835183651959147287102541609034171076266775815046516946254495799382899617866660985727357260685506695869037572305499557209062621713947039685039523631294487087415247642250606521669707955283041281086860497392295365924315417259939327074860795667414593870684123275004166908602576148758879876235936734754629304596834705781824339237473999249931821377630383752990385151049213862685594862282898029098604098401166507322289995322405622348477842690882777333300252095707163878913757283611131615082824058677480612837809976588122450097507098479143992524014162240532859851784060267753381922826784952788667245689333759451607319568621685606351203502463099283741850780760420477384305325483876359241255753163645229316351178652228232896444831910269247416363399928053530936659261798644249549488461748132899568137313948309594995811247355548837387112521903370051546804023677832615442406566906224043635791995891916187319853048280061974222320988366936470840181232141747627673223947330600405172628593548541188246139912254599360462896971413416520309350257355936126114513964764664902106275445737497714471550805888268603135966157597888808251340841751240842314218875957026396166667684217885015116650295955978618415960547920178554811646541858311314120912782845969044480818199806314389038052207497099964459268042684734454155781033449320595015632019630539762141807399086270848064303217800247609014397715642312007226354349327379915731551859110065247277485199710198477976655689449196716486168670790375717066483562808032596486767340458420568650181937024269525364816955814590909365907807686812438639934256553533046505678506554865557128211838173965998363357678030887104057297206384819470482333079352209060843986280183867089529794945590339803975056823449353678374441469885388804528100813606255832951931121193475177628452066519222252738669692630025665605713798746774722632191103954463938461218455857756926921127446965654071571414181979492296144640390215239365217131970168237910162539056307962867690370366999872010105519727588390490266619397164834811497423911738704227142950498039184409203535350564648264709088316271727043914121423842292160092712912360067010295249048268895285813608494320353804135696451593092433827730106982907400363781910721422010919069241872160277555804593264901521505941423353135286277882691268505700877094417670821111780339161323107788454769589235628606267690636811548086194488650598563498242078522482102735571711682860437427930019053242147326980760359336634855924681912023947148092123328418605006258537910855539500693514325721418217342416965828916871047738311059705099813494096939955335172453464547253019452500219704236725633941992595913903004372603897653397233310189273199803667869665461398075380015007499405896396569604444634104888910187725401758136482992701898931874351475719511901643262456514200623107476545219553062209409076226563967703182232859593609028162523062797685291067138807712746419025705602446123783078902648548600649008785877722458281102434493870661477445356793732071453340808324961036860031648711604557638529640009288990565903880787201538168686057845360262395376158436587641315689542018451668042531125090612805758605185126126126372701960423621901669912907552891484255000203166394336803204057114116042375798035856595631247499469569849513586761717161486134211876492199857402360452581553140087609299196474462881338290732168822691315735551490184217278167785213038366037635612900768544531563881090587180694081778190789574514335959383903513995923221581547874786726203342273037795254810134334887011269882527069457297044292547385863958940316252418176801033883738925978285637951334907225664398213604080607695122990547942207745586977993303444390441999735760797502802035252928636562271663753010434815414543327065339165099594673587113493338216698948567055738078220021731209391530078265261286845142429072659990570958254860430354523299996515557814617689528577805366548948592631729117062620382979801608412159318818869629028287157978717936884904025766919694789119701664230794471163004796916602963366541165671412926658386416765584258346626506690416995107981990415638970961657836067803458038588754904398366811079462592280948439890034735745765722127802050766361242474530272832779197536870946026921102641285052046477151131959097597847520095406773721741184399590135072729305996362535527518365125842604722808130501701636458298879529638747352394422898404127423076692657538919129379270227358715890678007404859216483963090839234039884009512873222983061853071494441245528974454318958561187400018095275209628513711725684572621954387878592562737224001189285921097359177445309099137601857105133655268996097982796691301664713645669707323708148465349387888981009948329822204546100201720436127512031538116582991015118694304911447593744151199214827769884667239091980921508515824456105200887185460698730137255363463299564455463872644523269557824381689553110896531340698420412186385006905379902901129655602973049646054821960184977149958716016018632187928577655514826098688914664178674355486398857672164079809930784644700415892529812120080775469404448690228534770939508682132340733873815211764044476048345552930529995893020716502131845576085163782416290715979408661795263226509087062500009785294598803412110825577607201418877274907101283893632437344755327661099462982029247845727959599586690604600010182553848674565658275750715858729686771675111487265212206589305147029816991145935759706240523820427201676090897193644031047142701890112291972783281602113559756325548699992243388504519858282629103818226122655992591597082919786233193166881062975254106841171086259870307144086083889081617340183945217867616910217840007057215115331818346398109048550598419080653798403931967652618254901449628263813136868301905372776290221408228253205031575814491105214969340080059171842886747423281889208221098707510096094222717960611868752310865130548794073032475585515857271295685166711502658575372152497020735665542874804818838168943809294719392497078342691198162104713083095702791440448875294465222880916426932212089143735326343470189414186549875808544389783754276111604821944985733991946416345105882759641507497086868706533308767468551708636722004133550690898227033638087248324773623842767127299827900047237503365691359648505894871179717735895375235172704532988089768706037171689381311492611799076386817572277825030379948105309971413321067911176939082497857595017347343274863356684315499742555434287981387288858840828665550630311692303426240065192461820851294051384109438338309943373235611840834156109525474454266787441539452743808547815748171805542923017257708254215514552311689815984157630331041024867859344513956337205688588906905711908399969799521334483952287592283977865693169705450275524986037593813800658952570565487153992594249997173171679762518307807180065173051529563382632793212718062695948063416496910211160236464323589047724347766517250437018826211584376442266662047512782523518870217898027267280277118227731521030358726420824528988433168315791666499256821611449903424669515324639135704780768526898998489320525337210124674485594511686982516508631506559023350608946133259647585740474307164510219889646668576509308330045681872757241680767059216043554681009292559395648953329502797156721892027325708150627709071738710313238424960099196766657262124887134992056972358693324073811177055732346090215798472234521382771579580347220540258966441539053412137447005089033871538349390783651145807920272101479062979899235730340324996976240607889732184310882449308266190802622049990112859749295562772174646114689939294010594942097338175943828780250444099687534019038860177170124591227676884675715236965521220057724245036539737696902851785827201084335983398454456817840625749043191708774382410403186714142041720368114298950367725654607105012860183188433059026704135914468999688471783347040829146812415474309300998153842585056327604739087689049279322492409534991903416211544608213898364543627345255421371578915213206037656434612877334642326527949078838192386444755770595009119444142257604748727334642460795924629817046415346065133084095714764871552128608657847073529551768127582320953381637314429047417984026893595113836233619036522193686948953929298610560654350579702715511242608643085927282057320382452863375360040537159776632209913491222622982155246441341529456551577015191898692407298625805270698483128954807962543531974171285842576611402820095349691802167787509064096388938910484504664086575037294052210411280009547319660046500439442168485942209014452429272225584905936638244027733283626450303053353993096987770343090712332576249414960161079242873166852638845275126706030057076410952614298966488181203960638734084985550094173219877966753274996201186977256904144690206247765655350656642375914691733307274891543405830080707221480983167748193021736845370021228649151994480864391860713650673852662802901568680073865848269567625421052986411659338692482538337878752134922296988954977033420478617409807162101844151617722148191100437333711693674308773266973085990103719739779496102842916186841275756991398649211424787814353108830701287103774766452424063043283708377315256119447305575523791098461773531290644241044708945166904880695091460731826894492787888493093950009950702290353435392133255894765250328071052854241242946878306631082799514039926485381943346180295601431124328564846965317170173912538789746660971453942277274101144239387958959878910545664104268147891162685728035996783039870978666344440474495023780537494089169791738537209747073452739794605724927590824927825833506825690837808354569363668173955915005489117122945893425019397020896398720423360813109299527818850402771287385744354705819714490571304159192507557151185687124513861708461376219948138815550829388483756914525902356397006311126012211800437038477707067215788291447250470385711950858809347550637483829353177753808855894117419263293749543000850722248392228754394422626269598191189695630525279099346294615360936163549447879175037771374159070623175967245583685325998421558810316256244427655499025327501763136294312779601191643050971695953211299204527177449654633602651536565828841936387933775355221000752330624993891708860305513498245420332860149882251892444978971365438878760732583968694123983880820433462661172204379981330742351367849908458648166662862011101678772854932272589731796290083893809378368862243092816036269180732135646537153505048869164778779185842773790818861314754357370438396416108668454477860518569883643545539414674488362256907582297656680517777748487429731521740717222408996252027134463802893843314525169836380731179921467836533342174788805977284261602035843082892445143907954874192059946703109376776927346001157263547865330378705088255862616916954752736042627652426280382477111290356531092061375501041535163500294773602803042651560687044503456586532737488831388713636012808339131268504056973058262367506066185397615704174217427594094047776629585609930464445369693571312353313901844731016702853668941803502361632619326787257731214972498245087303034204762585225658713844171927986481349699003368236635925882060107514213059935405118239822139359584242128868015569496013163426588392290351702963854931431202685751720924341677167595367385459589156304151543408885004160670533466540828130700832897761488249696289240160421141615103617977793210297134762657997940215469978038778479401598816085214213535304149794348531891952830115750065558526423618771644236083078973458250523293243640264375924591800563290872305076297036484355086967621331082877017716349377640015740770619290997731183271570537209205365402970776786726653277933085996580010922173623890413584279519335088822145436519113434014342809428932147888483073872577049742533246466094835351665781767074465378364802847096926101318645029312296165994373555820292882023445072827713813735310873868156668468058416553952406315115736792154911263247750126529807086865320787180461286792428807755570652927825941943007588427801209591016637750414014314456516093920421399550727498787244571094135555045015722897094705928715478578423754955553068827716278606818246476471999729800367332877207475226535910397549640886425476524143137886190662271392033748303555382843444764459824363406532781363195780834389918402072956331227424040632911369762268565400010623898604781668629777784031279489991707396723067522162950965287896315037828467679161096745584887359347549108669196172246037943326536717532667964275759439960499766806612040016533028504949972860704275425093720773858637004154410260595244937075850036378413818607795676066806461723429500752397765145943294896719001839450853507115250826284545345273757796912248333719234276158203080146280176756282502407146025097160563093176724593076048688248790053847158052075074482030526496689819994025157949423211590278410432542583533717778889923951746366574326137285181100529275734664184818518156994434040881803768753519740663630478337284405581819299431249282069957456142382665305098134466430096988357988999333648249647226676786609483821820069176447799515410064831495092340231329855502076012976597654825143221427726580666575578245211435118357337237730492437142595702958551587115638880779956709924041678394507854184745979089815804130829675468152034660396987843938308183923747716278977138284443405134095116842773409217690725247631089224446647891168794325132220073651534562311855013874215233544503089388539861014611069074891095663596629481504685467562292894151089237294319319561491823182561129060258364287817219492917534538823527993628588963636795180669943553947379606788386394329921827855684125586779954979546133028786214646515713991659140284587348702705261069817062568063586601281644979724666816416196987988677368474709635196349675767724117193889891161841016757249065281230163968169315003082520148974579738890015268240237779830972400463108506499741059120950157077584141489180528324673061835140951749137078851259753482476926500423685462358436015970729618280443091680263700578592151137220121658572233654137444476594139549643955313251616096580180992087790835257903757726750622322518588306075693231895633747331807153668699884986386914370393791379690217509625869284257169129054200208155469777726908846915524811744999365707260485043950809189432853044749398963006031851877274582105246557741081225485874613984102455231546972860561599004919730133874530431602324644992651250170425989598182556523887587795429109096721908835535777249868613661528049587621544173261930411792496997142364803945636309930720835169224953962020083881511918372444522752636688920992957667709566738351889661959616053753500860232336482872126727945718259271787177324843095828273573981941079466564284153735209789228890021037317202758664290118383502401038262269418554517462360055390533684447990378023149350091043351555983611865012604956960259134576936587622265577063207518025910297097449295178885420211929716912663104142091401078642523861320813476345472977531744085673221032254607393016774189560202729920316247975376862780784597105213268572645373624225531925095186171876013451124337629905355546195917525480430389044173761791316962743448785311550195253699780779344712638424889934358191719567296122165205346223085534104546175351602853035317060140881213637333458637474490071286834136213074664314991962645876623832479456855495264936646501737302526991190873488938380822049031399905056275443988904463472232565858598791188668874080697010320268203991645965393982763139767575867563066119124852892485699495545274758259583805926698056690931527911877302059789706313787089338832207095089767335300855561529457849364066391245229601266959600962624923623543500671735657509324621100978763878594000378111225548186286591913026546612160749803532560234435636763124118158964697385615082951931800657154126306228994298631809447088299969778236008373193275931245373029308031970839167921123822037759386912820570401257724448615797828970323720982431419952191356933990701376486572379409018973102677314647704915431246335314923116498284611912232044329798798865455048855028172241271964129621425524408143383318483554853164891565559472845494159518329931788517978572333349821971674522093982279470389483093870068880950095001760186510756826190182122598791106735765741023718866272469935107575855314875850606889265301101838718983521117215435351275938264329690222339493804597637855809073171634956875032708986570450916388205248079423522275356870825602603182812925772700379918530126352379901061942595703521979786946037934090907681690393742403294222448564906242924069041355557978176280993978467808750873788927217350541572168610625243531297175287017002171389265268626196686871238222001808199810556711287217886692866514086857307314203026029417580061475433969961445419578017347130745325184665024873918663122659126015660236378626652016174160913156721283704302383185801183603595637611440219634198851777358715380279808392396230695928944502881270771132659792205383647524900638650538467352654712796013927057425335723992843925668211900759207612282727238608562138276534993392172288313289294444554185591185233251318300351279137925207603882293290768317757284347671056843279974476200796878545960902303706015474437242611467397637614102508918193427878230418831155679580454124311921034413514902690955017999960420723226099427493619621259445847015799426738408269168070342003733428173588242204803457761918055384418670610927864754468711090427656490961336789669320618650990481167965986055034049205961741584031837366244498788910350470616500092549942339456621656246048636275236757195846212709710103586783737628594551903569480784184420461164274326860787480844054251871227322220026214347989542952826749324038150098184804657007841619183863492574776926460569176755318367548227892033180272665310931271164367933819622800959541330478706842758615783981596678635312212649107416283403637584898673238782661376903593013623242961560311663457950334806960414680959998514167331564166366106381359333702910558095186100259659693358538133702667209303857425742167864290636425462777371245161425008963865385952758013222891865379060793284411531239571944333059711167462664902389432667179611307945823104411919007978388171522300067009440024006387592269436228510839890825228755833967504535432742412656453948010664801879337026477967864356301541959285025624393698024440700414898101285038476125576653219679989499751165166552568035436426047314998069415767114957179087061914479972522714795293279630735358761120758290680564592707528771761173126629456760366335713353483622574923160908849973395000823908022708340184421860239715622689469759011211164176352819617880020135508986069980355503955076960175235571734913676580503663480989176623747277794438892098679516938936159532508157610426498077187885831916660258754558558020712496020356901436024116067650944175116399552511760463554583545586837333273783538558665765175565323846658898639838629579349798658078391202883732216541805510150451839104689209505644292618713072718897597198522462131429519367378454725128419139172808431950208148721448681809122621419507962485836787251200849590524925366352557539713012825226663193126747271170874016874019818205300956901210799493693240463863410052260628335978477750993619741102160991533412417456322272914289845315460446793246316585082059900844430445292356835613059585727698497651003576373809488904378981497133894411215534047828538341025158627345220929813789580151252679590501688381107977937378523140754536423832677537259113972316858792687904119567525558325589432624746316959593237932807739721523413165102332695551004256713478165687894432590102030761299318706117131114724468473809876166132982158952373367323567167154561417555162388079712000152345311199454178338724608675919653156964945975434352624147173770273516235218690845881694332649543609630690327863678272173433787234212201277914530736152844291764593757545276655117361662493776258341232669470386618010995264161414469436866655412146535572510882313260444302059478295706469642084050663972063931736507351317300388044526225960365484863659694269514837219194053748866482246955138001416617534413109439766963048925949723208317530996261430784529933180165084520803236358264421016274310136612985587054229184691858535800025965709361068886707408368708490761257994716413099638885977280605725438367777594594948790395926558763192110322765058387304399870435415407721708153371228169725347084804606784815303398274253546067361331062553648078235171937319763829231976068793186399739397093292358465259252548784756066958736726025074964686593205347603330267022587893997155938467073463822210871654311598711083236359015069170462543351422056150023399316362122693161416451634672248700890857559784286720908705035059539110285561256499135175964493878468536271880164502150234656608575440062129328084245635478066713704565685192593359224746434449681389396409572880300774156674090238261424501639714899267150588062140473638877177652091612577430113475195452203749089616312210490435346518019000909935215196404714588647735602146512247941780590042351820766796507858002638510826166678848558950749158645126619309838305834826296907131706731071719728080776848480579658754441379929449107047471829728017872590170340333000923039253806104167548466988957313506803868617426399244369000507783234698240692427033122344253381686955456854241317436885767212185233924551451954366292887749040043945594665507408427025138815422580127799362494827612553010957594107015575245701740197885097699952595617208689434091597258963492835929491764187707351188755733523909753386139046117441975491085823789453594881734097886394506170092273558356900405856227237806491162179925752635876771733782545081928110810215902388311849529597030289045463552392776037669718046455009366389395271293756618364987721355743227583521179617697402893745677711710209601970860998889197482278183406451496324019134198595466675186304382178229805364768085964134878488276513359060703161660080738564502367408632651047956555552390569324136590617673191577439406138380081622869421478366058122796601378688103642239344928990155827756047672145288752696518498409757253114126969799968358313111636230166796763740682084735220764819875198822986305280182288737400846335839839835119179770057824481995867123744072885425542588206733038659351234884997970262313428093258461206187314490573933429526185556831586472346508233563111689903929807462373018589617512746201102413502530165047359873912996687731657887933146811462093006882223088720615833096858364793811717587232211880440756360456266510160834436772313414846187126693943558094472992220580954003417477116924948572249761131666871509490601304242787861170021809547239131794441841677024576301402297501831938044884481604777014040813741893954547596552735396146035191133930122313329913329256507989652308090598585740695106919203279334733972661495541705616616081542952178792420850189261589084277089990815410205163517964598157545596880694260180013035578554702715987600680733145181619407836722122385173317731783658569999622159384875883922489929110687127774169313747256956513343006306522737924551056266921880807811832586731369601120907714665794436628833001440815863098631726419063330440445080582281128154889161983229327318187999588512737838729385096990500690958150559968623777129423176197294040813941813602724051482082073795136314843354227939334277653686103525407725839996548618746068110854415993782634421838393844858485290353045697151099125044231382524925295400896002776538738663574156388274314110235995339222746614280895030235763018473899695696878579647614813385274626000172840076610353359970011074295886179093448568823861402212026281009878419477855669576706020829729728493217283594788507478562688354139604520503273390011597689975923488237896003704743509440126218101094815715133050052696734750515957930241419246771883779907897096741985620620603365776260662003934751458951212313889676805215858321485875621004939827433779291000856345960847872744334605561848216303387229105564330934672192647866563146898144200381872110934389738986303817212957909299112743076719777291578376748546289285218082039671437850793363736950077276642667558541999588569725888941718854732457041265453872792938355542304128413701321311631686167649503182078123352807867036057531692611111413192742877904464559074531083030459561199477889297649507064639716814514629453124294363555488686361248826561240064409327046272099193802499353896059744335128490659363042830104058174606123204394459678619943758818210788705529097240315088518044697672070493219326427327474947465735270631400846002270606955967696876993581612208087614289082438282250827162654510150765071122548776783127104898581258903148080115323482235485756250163613432445755489708401852562487855841161559062915706400186193826787191671454229784270131855635300759233917437150422523687143080286973897230659408747261558320028856056430543675473012697599239121409307820516347305683944357660805054953912914586456418951984212667557032614040165264647181916825561780500043662639868126326051567703737576322825572372240337326563439926101072777491347627176169780024202417454219633542368342108998205098399693090096683351729155605180032912375027974138336346557054527834853747615770729786028264231698956616215364150611916911869585076300887739841331443323522161086480753762756279535732619276807505917919753822080505536085921437064255882040794994568053209984521619529034874717291587880433789802719917575528412495164553897366903667977458510604923731647493348513891310767047816893150928005652508074003360262558797465873389588650455491059441871151078989476427723914132008590273134823051471147108625684424430556126457313179759466908304134034969841895264128081303923795354233955145164368583297176727033879966070502753808844666613249520847059562360351328876356928310404235142307368983022576189398221045147116497508649579313310230516400702740418722925525312555050751962630901419042881583786080187226885330334260324188741994743094870980900779689622152127820403638718498691155689285267885143692081119896699199175939442227659858529607316110272771930392287503735276746031364987286014859087801089027696481017841925051376836394432779858978349967075106459160807997814986746212959429929495103455612395285189966483893151341663425625387229042078570031005057667238782499422930433187629331075992163341034881853078945786213043844699022597151095378424839640451956139526499409105419348027833381410505497503863252134416652532578346241054313724205134365610070975026474975060187932989700495263510803848800122170811344231159233018250655232900080532960950529674761782776499033804649275642460784400622477510229840904464576088284008438396537572516330908693659501131668059031760653994130467831860450062980954641179322276064394545097464031190004046101363637566525147633922056408539488115656651564144995469997989615517085192389641735048616440196028228370231053195494455715777919567588597530366609882202496886496240237376974149089622782626717164709054545896434251358107215509931278700181094793378001942881169713845597813034375911744983050397272005088385100204864527669175972913171516690414586990948299639788578847124158215181915131193646592655022469952252065861237108617077752972480096285573811172643504397723991591353337279437121493974863979262479245746309268806016126833281080137307606789638853035247624795772962330363206079753131170032156315773961141417267096845791988967823317498025009040927698398894869465840619708837118717162678950598037992818687908359676744386739411089537196986182976738458954392441121744326072814344156833377839658009332416265311975886386314575969916282260607790333739537806861549954334396662534041372393360583761357136631484960228465675347318833395976940602425850333822826967160251488264837670313936615030465569440359099795880865306477527207618121415394106818553151735880056317978950810699820712326357146714531162758252500806200983530299859876534561587726559057767770523506800734721160449806488391234431496994566296883810992317937596151519832650120598781441617932890058633209563904496732740967756156579216951256957573430650111772794467699754846396367647409519787469857405002566630430496930378286467308890740676217208162910009270841088021980366469032006604898295265441973616508087089991399726806525622796418049464541564487670128005839444300387771355707804656432991321870606322081514275062240463573963323033417129205307955186159422189134174393464269860039630400508002042870415729593735309957716677615251624524092900687648409445244870829637234794663408346767889242904515984050860716953416892727685702610071896175287752516051145757923487582896882725005829643483257250194887049167329327414414693861611008212073014894509422091561135319660150600951530042151879680050092567027746169752691736633588478953104875162792541522915736474184880129370760082642006574185024170407054317172875849453496755969256058106800091735532339246553976580561150626685714588862313687782502707507793892985221289837675733944406123896019462548014968669537166756920279450041465728456706853099431195910398723702492709010435325525980501157121226328470745074590340596438552820872919118498395516680440487215475323391256199459302810597525033416854656765184945399888524327757835037208347774127463818740545863929254471150555432279981820868187969864701046561341186800539651313467232381249441404741459647131100723335520281233852214050723861536931660894605930756758626679075053701611040703409092628267488775028597523751023854526779620553060275277743678194057795338407659371912339041612299389658775405042093316578069596534125892927690021058353472340561065145554293200917074504394701995669836627702247022883042665069045512194383705684670838235730118163228543400184304949798582621768415619917919935124153094915801007937477404039276368882693841499375805717517134475581593103274577418757637118775713224689227224249337777113957558484346931432056193522817599764563384463523667932694166365293829299473155416026227810434045971282582242670197609692542335680025383489465631124951701468994004640091188074087077329964303094404358183408414175801847899502624738956907547819266522199349674054172881911050332527900215854594317573458873276958639774133830265422515748812728581889273284977696911085259385652172391840425825823144703106476046481450202221028653330865637440225958804713218694501443668175385307315892005190657548015823449154844317770817671252046119649394501886256763741453768645600601421512612924246459673064284648851049761119188467204986645475999926801775664337900340056847037544756287824934898408714007702362965041707501045403006968311235317293403026317221317086176202960434454820954348676369524939415384766753809577355121463749908050382956467090205230467398556435582380712001340517953581775926611792974601486921320263060039317995648494444473161193725369420623475637450478267593973212703372805781343126621117387222492806333639834519303680389259309688995209252035278571980992380576236122849606523276970970764790391394231402133368690394808687684743308012268869946203470823716309724704725028106033141647014474120542138240308128347191009308620269749091536072252751286597749519507014468359570342661460253028153384827277644979007768898074458301080580762580282652539846712184990443942589188021880629759956314281638485112094713499524227290966256213105720027860252130271652435730201321995053171120419333856243218115968535314364280988660109585436852601085293446378411885371826272165074541415429092412576342816834642480358183339986607357730940949860657066158440701673506468455108344830410340714330688613506481612313350084423362414174425220384716206858157780034407442240899773795250772272242522163252707982864834239360319936007701578145485499732791495715242047771832598625574711721760004759186861346576680074791388238882526059503696145637555094836455249433184937579583447082565112029771305489059858893604904198436615568028063910169315079412398442614146314527207490634216746665622082073387405441027555277326425726662603254341416451806464620135910746369048140913948817349150190905887865886575608054633191153957951992269151017526113553536548044915380523524309209568391339236641860218486574056531386585891803888290100495441053950428190852170956897098522266049149770344256341520113354359560162080483345705678582847518288694326457284709415507066390042021847428414815072932114255525384876823984059640369467558558706507780528881184370543707668539402043667908794727576997674271743908241142251517023195532601492920532485233164430336141058134808121187844540168004984186371953775079122509816883959439843743490500927690743049721973216682690786818942988655432603934799602791528666316742452049935768321975982961409060960027750075411611823413659519543647682659743538725034335575607603094264593717684435256584561894133043626585493339644881366781418994035378125186361809861431093804686084238941765717091983753027352946053182177484980676410072780689353948778562080766076462886434975781384916754969480133361645855359234218744439048728220232748279000438097437222409055665798279254079201827191764073156868788990869823443332429846171348077941579260789437869378793218192762383208856219825626205370615705336509986660437335278004302978538582577725820814349306895099746902842123214805436252144109926584513208698356950379341219278770154837668462588485148035328210057622595312384395499845597718366177469694877133736029490243201400893695435246428467039062829612925333175609054580152415336269704633415609477147038783311408045532720266985169165505458088526234722700918568381152913251607557514732983104817451169011854473890500270796628135737332891521947351317150714211819622395064036066250793766101141090975719875195062790767199208415618383126232787053677949587209348085310337003707967698144333986531947300553955036137371690354044122744184825089725543411329141409921010502794060781343452745457489103978703959255767719730326629205850021841243056110147117266588588758581109801362242719178360150563008450612609580351146221868970392656006767752271278115086918240931263983238895143307309208061818367053327222199671221382439249413384503085537429139510060612140640152772992047216247469060199687536161293095944353196702138702622427471342529519834641150215258521719073343528760508969489859661873724647148445754004263211169130661080007590199276852772312294338453753734455619270731842077003525188819851000091058869702463614133946373640362916764850243139592226108914312458431080249185337663654737954281019800639467549165673882209372067955022453974952793604321876041673712529418689041678756050715819184628397499517761898470120141728492253165997642491396155346304559673700366982713924474617224053775638845250605738311722063309952246138275154384262484183054546161423976795807575792892955358231583791059988100013635583580253819304960874848406232442130196731285727975696380891589114151062682936713253390443220443935122562713425835719375807555547099528058650927489148560615014905867221863018145395527154337744115748430146045421047237106590937458945560185074706555125049620797634952629628585741910611986843374359599027675135124284216278738270407361790182264211619056545235598213465009844346847498934255194190612568539471215509383577839973398535979920804409140140130196920588481624165779207438506165929884295428759267653257646127865813653869302306432495148722915683419489339773257723831101860728599213827439955316707179778694631024120965629925156369070709797657462230224811183699337954003728904003552813838791669645146305017446678302677339156584851313373322134555912016942819944635586911990104670257248863039143131892690272342788076559567143550810085233287367618883314330625840285446138179091649151138986886102042441096949303994618815643469225923822715423732556186576373191113839350829844737578763090888190669748750346261607736201056147649195858889526175730298660002844920883309869356389666935736583154321980511463029180303532823912512265145796045112913620481416074263483689048725347741460497928968665471804311096370206936618003815649264601763228235467525772510063481083324604963974581894856250715927985140068823456587664328616964994470287617278607401627879376003134030536537200163361067311973540216574274552661377246414679701634232210948392735205399216184668443165780514857874873899561173561574229271079978937830411746342331723123687062988799395637969323438140930773031667385587583365894879219229299170292532195313106313751699564895556279207732633443995606991340123455661866002723864409129577681745674556204269696639791492485463176155558347884911203132980810938202001667082142619538393913519494332455874157725836948116349214048473354670485252762669909591444857090831604238663433552347995241933217431270826427571501537381144704648961477923432391883659760417327606918396476067866322674929193323161131877673919132713156449130569370585515339505822922629793669280098890127374401107299130758483919483725163875251526812093561550689661281565278504377438567370659686571290407450402139678640980501628716324266422673376138215295623652204021188430916924496201670398377240229007751911990173388725654945167024884231446673301697956493138953858612398111668308257202233372469857377872517673016746885270115642775820059393570981225869012588927727534775124596954525038982611668021287757380563685631564442199458187402810656801753185564565295582288616955286274200281964030614391059003215379795396930218519423268807946852791407258771948469041176416915227472110682439096583493681740724391256726014139205537504438778509718690612830895421445090454534852381522612136091363279625618713641431649422139355442206005338273451530798672306688013562930131650176555377047163009150624792123739193705754138726037784409421730259112504923861549381900703973226982708445933093837163148061128341179486313084619959430789684964111687084337933440570079526478025532429988270212239589071572621544918831198911796492255687257951873764372652104196188623597080763708251916019748223448209944333236500401510330803345098734208212792141200420480180501079798561723216473504401369811485541058811972608739539425490862873783903746809883208172214796830743130269381543636845378457615575201994791177412336708593571769209592840288800006291720871627379774153512958050297099442419138076287230850635785570220029013432709277729873751576166247484047392851550863164215302820835265015575631195908368230734030439271518105002752650033708689498428813235684965007249398847401056947343380563733840238243607253887330911137388407645000377344784709100186480455411711002561405408783699288695274139261937908513852292978958106283980590449924138727376398571948291284483476597401404143259818850245391067059176832462269483973611571814898528770650237921321789269536116379304464677102539916568443144432020298116859366166592552065597956848269167629977734031737378030874820811784876725458683733424633452419941410780153692124159877833997466997395429518681820090649697610367821528098952987606995710356909602837100859978989894633487209570802179233665748707146777367360972463992215753219402369880425601500007584041175731957498416740333035260394809737885653902886659099013584031964803732938986045942039868966162227548943655076000234581410708961509394692645277394235114694011127719149136925437858539483527264857552160208720481249169101852717995183756073284426677184767954071116218015353987918247749816185835646452280308632399771384992835920927055530786651556452768959162186920347015645557340287669263841325770360160596459690403225512310202955997098916418090712914574898624430297707113894146283648484871576785677948781431251243293550247687268468946933878930968619372172452421687392718595032641171831981357089270756010792991851456275028662192436979841781141404540319609164247843921439027833868372641711554943963041940588806752381877429108551788002078811767914778773113638802772856696940118272755475020009359274049483769196417417474376430993588281149024158567172118654518195403274463085084900186721365271788742362751336854382584357260976576339859353648790620203688881027015850058083028005290525005920409954009559933828156055157808056927750376405932422853821694589247308372693348034515544089081803000097135903138760369506462952558119323319104201739769685110785451020588411747429566742640862762260667721607633383260924431171632661044281459586062506998686074775429041244464632860784627920804163161718877365407205146931212143251692342945354332472824172960433247902906354057442643551016576188688757552892490583073226688579406361072634713145128039096794093684979336814875713298697813211924730599496014027781864831950609839994902924848226451969076694936680918529246540254800772199089177291960931566054867802714844783766043906003147146452296723373821018725039173155245869955423886136497929893405730911868982296875692219878352678884816562012179932355718119339478997294113162503823771607476012250789091391360073698161644961550771156247518486718642741875222098369926251107945876744271026054910183771414939538460173089933449360476973301928779138027031350707321098188209904217747958244675990200835711681784488304787391475344935193814011752088137059843984654955705501018947463317851354478060500245322289869595610981274453720034050684331619519836303181703747898626632707244065379439277750611738437739100370156045085424417182946223230987415992613792310306397975196290621495493675149348295534255732673405736625456387820877247801701251910806138076329419104837686206155039901710577549379437198149860227457432768735866547211937247364836888473863695509814986022745743276873586654721193724736483688847386369550981498602274574327687358665472119372473648368884738636955047230458616875778992624179919242888086846632765621548945377584642693660170549041069679139658565047231426979266889208569296287842331651540087970794840446062660205914207157264149118427257725445185179225229922899892552417931329556162933387610416084919966631744230877940588735083947873072830991697739834979436847746344801579069104208387495354926175917185412293597518990089222621721914459306788619760356221881278063881322456355560680694152552978974969052102555871166688039462531658155902647017179900039902483340191847418611177914250879578322003743133899943887879017493217832857091362259345239879921194135829648604238718240674170986228121901857333681568570323594309199084131003274241630856070401839676454219756598215258342288679649061753328803833759251880213557889351191633363591256530761963446885955556790319313426753383306631643406076972503374612045657857542749445605773180947349044636421152998533043536983846609846137669343084617000549083610123916548740215520180743832046374678390499993518567810792289725874690367749579133853503513360755073213256002919103155131072831771162507725515312573049623272208602252146484022028427985932928366887990771408192398837850356220529453361568028203753139540331764315894056325311235868239472892104281477709045295704912875935241205135868760328451425827346944885456431933445606103927719582129219413108746666766592457491385391579446355239886906767996953556594034008392663094891563705155183329394000503226417088488994601744966590766868472286681018342347335807481678608256992636145794143415773796972761953625148160475046445713935285259217578395278564412027696318595151992537064738543750734841980458523109952456640263945256711483053596867831113800408161923406923403260989704104568037934836010544929206927313239109289489416122528772541725880715769800290232769299265396722223125954237897818796172973692312698629041329406930477926903407960859369695530828706334988535898063170379065510234555035981104722630784324378875026808665286661970123584310754871934469961351102465382307632638598946857435306560582753001735912983069515639541943378121211180440701536153143845798731666720361840466592291400072861570470923183888837125901137751101546728156831261731358454449555693404016062515912214452026304007316786242123473984156636061570022957579512596067890949180714872199201151338603342012490334326901903152471111177053767490379250704771080007807243797219997486780512705438658097738366084557141592231311250769943850574957208447061617646428970167342485313072653113141132969224499732589869379336205382310430468811672702967817935315147925262277150873178413472011750829199181400243851651872933219223671393302183937180182843192346206861224877124816144643726238466722738716927043432266762821335957208657592529933570469301671377062937231618402812814665403393929976479945083556352931340448149974608215731436782770602090362000236561479481796166953389820330364315197605893882403131045864624539039457563768870592794191446351316565638530341380551160738301152349650160262898331175266540895142764548739436429000310464975634186467063383937026404327199934445017653621194183980914054354312046611071022949147957282230048881509892880052029822219560313715553191807236758087351573949415863863465924264929827124687428737887107211779609342852822185075176120316328786505095678597846969439706685743639441733419056383504407294386217526100606739944657144525650821851108112347349770923533060731560343833666812802897283552949783468612079306536662298488684458973023686950573180717092710488020936988600525942346855824214663237148360334708879050834675141631859978731821377113609337967922671304808400635712740447619016990212805036249551464937562857255534722015529162736004842071745078807950761845913606957788248618747949602794821468325536369648055794751958042265961817575455372575780063850078828942880154045147286645076936364292616561464092376099194423025307177606647646097489013007128320670095834441486795964288442656533480626985008900143585979343204954700739790197624021831864502251873557681953846695713070062888292637561603278764215965593125292492422161329574504065382201672623986186616485814342988831519203159057960073366305926447801768242805793775192549911613874081655519618008061914487729485116625699772451508213714632819036518087733473753221390179569455469855894609950994481976623160582738973924308531049444078708472699064031783593529046138482240608140130673921194035926589229119690168304343622797153048445980731590371353990852305554135850303305994263075300844749731213292281390041493729257315810390367157343929813723660967707037239975647113138365036061040548871609861903961849936105390323056035908952716521688244120760002937772054200549345059959328476579144513894804179203585085252993874450064907705032042624603929134791860529641815140735430834587703620162613635647536716676059747800859031429361333792933191750084855096043897181104098877520049212223706955858124962571331447606650693367882768887310324454243982890773510726773326678439323322019262193656446632205485521963628598869821245905948414538983552431719342491299006181463959235638285940616902975647631126229146674653662658235758329722166170996892121526322495409725300927609096890929815398547781047546039704805640970194386112437832161330172173520169538667789380518472999961133017530953639202007972943843344271324196298010719595118940802076078542247534707659726795708604373801337156148493023257101981328749438961494854878373297094278163362544363330826939905579688104948920375875078545376405053657575719555719402413921082687609088769052263686540301870822701883547584723999228940340790795136796379635072634422455419128095770590315877255589220778969111186865369280723830240389236271049807288831287553507175113342480969287697201586675189142171434255763904895946985807500609279810043909249452408176625095274172741560161454315945185221718557495526847527727167389139029014720235059895496157417316989042855399440283027838377623650108590936919201540276948681440882683921593425318596862968867707355681783603419705184191167919396618337297000193822980150272483083508010971773091110587089489467230542892715118246415440910664532953239354505193052789909317281149964927253060347021598719613456500206310713361365178616544164970357368209762583749438630392248773435717559667110116693127919204620889828753887107153631368815546679590155314546236533727710941929274840416913145419700177540191661941927952326018882537303377523360121961711612555388978356176708377387852607563134205865681970192980420505034509501358373027020583244706964639692236906385933110811220139677100067477245536145173982465787334364145518521246858040728801878105976487177630797893325464580093215613548419484217791755933093578596719469919505619129316799344119459729424346000102857975899404969436566619097579329566805424670138374499909488656972175297862499944403863256488733167600407677690717691102171332461667136933577677517966874823798119741641389329665109832191318891230612883213061753473064594326312369021942487650442656800640372373565200124319482373191116415861199401623456107055588036662603162216687847134896499772571443635703187500753298600633308289970512791458197779206078069420505494926820444046342562971575340949274355797251601572079797266070199691870098612224188969224783312230698835193026800133351582348097469113783697448676320781546648812639240828418651602491495497986442720986605182035717645689499356020430710489295815865063951917305638559382217514301314348075986693326504874799038056468350956561639841602315510479659885931684745229784532711563022567963824580570873833598486159426999235303174720562022037261527089760668460260887447119518675285250056178297288871967524660489541310791051300257310392626908884742371565183099163546737457239943835000925165391918101842370641827844631996490552888569939325282656262824286907604695912293388882636789052588962979926004365835129285916601681627115850385950992004502382880525787160799914857795117410714587892789285944554229757489266391490606122559018467424204898306960326099241605373198039930958031845874187561196551694103025884274613267715286041675625997166890091974462057078876061938247144306820078699951582186915234809462059947336728416187438018376244684311462271997183540419908572126700675220557081779080207642238770083023145963243769724843022813747480149945967829765245111164756284494882391126580223207233939672487353483796834709037217278071821993045796170874846683226075483119464636316295504614289181870344025516066109960439682279760085105109039362910919942119388266551364311045937739823375470223489709893823833496062224144588181571744869858007680176809831354488908073098010459829884067101286138185559779131126585794627976344020932540464256523214487854998370452126786486295967723599386702875890628269927949214888088902597529717747890672029936712367876345198659570801187477179864845108982519553391404526404027575286220156098390974367883923433686902937949023880629769925569202312504277051089435097832023702609078772210288838691730652029707426870592354303768898474913311508457272408927276852932025683038229026985498309266427981696215482643789646128368380420732092446348106248237628678481958108547337889172165033709317162300827835446095355000157087325853718296069755081704358349922043478239737270858232696362370176097674845003041090604011687748131236415722492541367350659699997435146831130004790437633894683811507504479836224977568918706331215982573656934306098101058107512832028464444446692258358776454107654245446160237778278842301432414837607752722866645863176868757284362034638726464703378104558038408699001847001329490672016291067320866560152720035703770087723639337084619152832048823114035058253541286718497691898740183701119711247408166154018970145776023023745038112311099710264661414041857261089563696058312446625103344217698695531230691835330056188518487114675653747128425378375360270025404781526769638680028149067082684714366270449383420886829795605591530914319592305379389709091235016831752315693892208172366779477179713627192414555888808601903804074946015109518157321992631630815367277863953398265037693509319621749307103605468274638519238401085893804821537960570375541363419453179102144027724400228595051052507885300563625487962039630514167505389028154839893826056184605969254309230501184482024440573533399486462324698616427152552041418394545883390645070021120281626903764372367863270923848083570492855665422565700417166434679427056693169465903559002500981102046159970692226960430393134150112385202084330783492768521280232291152519737913751743284056717195786548200968348394935498706334104510911558023997896555372867167199806356218822908985971359456599565839007199084113529007032127984868173787637691975015965034762104926792800297988281614426247045499318735873796114461220750417737680384233088995124892738217191170599517713453429945729725215214038343046073402932129297183599023367167551902048367988934857854281307409171121274913518896650388059503648866001930517747973772006038594794431466501041077192351722447258169876135731553947360636102260817195494774873346575307697623829299706659381130355666982838308327669547610966886531811220411325508888982062797980648030112172279233418196079841299972072008841839387221139034724731085153277483669837824867965448539605467332451782821837371290684884322609750319063553017941264823895351147387863995054860224600033576913603183825695223930439416276778650226367159054260821794162606278653413781787284203815659300744636406739896675492687649395718490313212113656202390261522984062873095648128169303501869685037131095472329376747222478572964170819858940521696598105253378892335031987258494889372864076832966453384003413973368465664299812962074532556516610754825373816739692277169563653668258137853929592804863934624068004561289736777656499264445275561622239943174891109978681413003408786160964068909193446601068578173996496691929407151979770619673556327808303748676242818953299379935017437703304126784639410742390004075198605918156465947758609699994125596896228698815789024265778977792045289457268597880151203918786449716049993622264612495868772143477181778272154033157908743833318094502935381915728145418326821124819723259721432234940262895469574762101080787425847657147801608833404962554650632414744423711596789923705898277665685897719457925992692904083389327233247930254203274120827944369363547913979579720396366395782104958416314403965424093860475283325924343500781306594917949907703881670567144856475901470819362884606343870830873013999253725298366891041033135943943477132545251112552111092798727785951382708916366590952074170927525129902620455410308034810322700046208199313497741033969935705200813490694208037872203790464382890249902401221380463397980242182106839346850884930167918289662130425493338799654874386109320851491053327587732269026724129296625673645906875591489631205017424394526389397902442323703264903596852578213780965150454498931866068559097566323944226182229519656421572541809032099804496613813953120985347967114699342694938245149667475159852900475180527661226007197757224967081515058039143461824012521809293563442697690775936654520908202506027804671493363267787205816815970250481840076454284365495003371942335655317061100284423030042053052952933086763760286456546110382753741547484910093128725956442056976109993020881040353186694892623960995356572233574757431587861845904831966429563222726105271648198398546337943708365729640939488820397486960694333315145791639720748072343344270697628656850889473094981597190683110612001028675230952011106399785970418819427843873191795483746036719035569303839940154837381862624892618158175467230946628362055651216917470327887284570315345444858522369606979868892249345328209693435676167926010847238262589759905263792325916415032763625594607746274170433254493457444889477216876271827727072947967992940703725682106129508999370246217199889894467876686273457941352264033498177530833993906702966521338034698372728905324760066193925458206592897014152612950727426292279324657917043837162693207536501119601557525946940619181818487377713426834444240529306600573344588869058880393177484511774102397358775282284385958672028239874374352959211556243224389289630027291056872887268161611773035695272316977436959291424844621189894575011690312957425148284517441987133717486576746353974745761595416087815219493803821906317197854636480687724886181039189448975073053855804909207963214830893523184803790906668134527178233532246612521949926765291427590890922621175108174670500059568093135195284008043900757261786657751257452884330535531748414291753374248775094899335437358359554578827060373973912922693703012439656897123773945167318596704193173930742310205394492793725566951434978805545703305908340113045524208837745301823471483685405703839803008349014666157562782972454384494736538947399853428754328227478538137311632469929383670295832152967629316901577016376459707311545568276634901948250420327162355437616062896101031778920813007133134968338654865407252699942438188746548272867272278105469899924363853838917100915927170823049066727659616237816864044108587574547936667543859698670955474999659120236471863025134234286603123083288725426148465049133391408455713489742121332627956375141588593834370232883676361427210910916326438119930711805813705320521818716890340408422833149561397141000910171509937355016250498698021280775524186200458708968444383063445989495551440098765192200443482688701270198303940692242853914434437692525690603785633163635916959756362855116855631624525027754537619629428904366194589680239185158067914386065545763066653855089791671967227739752076358291905766479671803885645388188660350645431683355124532052382832782772109259629794743650827334190694841174771358669416235515154189766502736524377829273750109051093082586789846241868494722187945092867305656472937265721055693249737530172030034298462939903576040553269480197521260030669803843503995362245864967571735364486622960867665022114761971906683670007878619525727724960774953015827040191563034896276315535912935217020929815099957118977712469085446761448508350541333397848261343953149537191502413214925257011457627010326835919788551641036147376475962509762230288111889540471348042461791153854163232840054371084642690950362186833728775644555584451321260709365088896899626104066097271490158259265168477635062365733527671953832978920009067298565323545222748165410194800740749839188230279326391449423695735288995277041099533947552827010819433573369718431950816575181773136178920372220046232022502571019599757952402244477732146208376008348553877306273902091886835251019639767078418503278393034561640141876545693800041666721878598301833249780430668413708789977806097087513122453733179210477653219632269292062444118602403823939582693848769438647992158275076780160750653635601924781632884895067393170475081966462719511896879259504855981422537353491882022522322545270640311004505864934019626832439967502709419772579999621126315498180662935407155836102749719065184274065659372545125747421356527406125514208736831953589153401830056437614755600059018875594324899873423544185362988977246414291129851849531060905307036852909517474704662175927821270284427202763242218865003628293273448127781908247371971787331228262452933903310566123136943767215970190562786251023149650838505178495474625792863354846764750561938956048712724763153542713060257324619707305889144995762866108051940160877383993594759687934206306164976101628938474378762708398093652868909362413539742230974044012337734528350622583007681949535057372712472914630242934201182055942858754096729982477433299525328938891028826238500291868606622306007695414534401415437802743546527798112480595010881568865390958105517925178926168594761989018512885485330019719136580509343086513733915671442531069334558535936906805731112135220901489843226163964326307761140249595727575518017958941940131977457342289223309973919624542378153163739920532476645534806101436730683257957605166743647366202346212054883257962067779465896153466662849622512559988373663561545738099423982234139778573181185266945092193334002783956605221904343907952187695286295362583451142883374188013897668334834519923543727595099724884754998534821287541602121420007167425273228186584713024374038012472127577155173543806869321781709846930477213869343623935185177209438091902476791912350163419749830019434925143922732839989527528454309800613975570079141708167825793398258034505303504355997163018455281682926422796379517399826256972139310348886952365033887672353459179213883115787976624404445856862661187618660778544234578255621751391515121750699702826712148235376167533902997247943869400984398033723926082575914971225249699909162516822418830277064831538112236871275612260858402325217728238991975461696687100468066683951394054683014706632437280971730852617500405405846357996438713060250466532450985137113504784066696740812062280849524708273677848967506686806656952046159359064032782602281023655208379777490999881339305724930668665438786938362894312535175161385304765696084834268921637953176445418916273051752216789720804110223722838862096566304326937505381260580743571556442520301536065982737244631942002726368400072903913523216097806820898002503971154135638074184333838437755945688993432757328763589953934333013215225900120838600512520109318668826735672604998799535122658646076878454488418338341366254221969714632518921172825009741219838894379964774246111828756492740080109580681071631909055544066376841992483030382445386120476391807877747840955329367731266650623046349154209455030131869928385870404977694987623086816011982250603784077829331371486931955769041248096002894285901471563003599521187511349609284646438827763668164442908723542365626241849131109707115881107599568488241862765942931155326435533657810786249366068097352567283282438804714953365163044632204199356237763659235469498248612224043693305064454708669838194561327173167062872112922330882782287685661129367040431097366815821566525309531927357606575536633813081141261504182742591979158468609756617111553592650472452890139797307483656845667637660750300080388682744809256019525018228778677511683518513900923990735105970327066961915407328728911684660750520909200607145646383935659156554266871106258607999663404577588827698230347449917712787416589237797961170443306654990881949703719928121853092042455010101872809707443290433948270288632007292968230071606130096726729562697918386254192392746603900071210997349610532335584725675941583353650389695788836122277161020990818078499423562309210965202007496819097023368204647962109385232105587621508865676768483543211634698215738765508378320373381431990074202634978428101168489575401021897545070983266542762146933390803990467531115202415024832005665615806359792361819323007628827294668878379078853974048969533931470031131324493093227705326130028850543429077890063403191002285599374199590545341982948388657641910838216642991461141910541040721718375771550615135153927714008775520012284097818725816627089312739645464772598088949046387444120338340398470547482648434216601506040978703871976045332968159456039741792770386611691754030605604275947492737317580608753112966079880717230218830918163103554699678999676814113223840584872150451109777541309273348085613994313891956459179137461296122743264902894505828696018397663266768184863672978442961082457532735323785581012799169576075366163284457154796775700222592039479012456471885952733235380132049867071615509158782889567274613439615495902481052675789916395615629228002473414729092945654241442384279751348945730605833955546620662702100141027670794584352116489088168624369796568234197708223331301580282187684116710285191137349625550441565003220132187807208363215672758328941194293009420176277343107493222163016969037110211968178145961129850803567824717557225952337646404023992449941171332270648140922089039340677416590793358224796176127195757906232160753334804425925247216637653281249173787913554545318283886538707564763973408162444498793361431231856965340138644220930574391287276338158138712550673712242883009985818632101563534940227831056311703310767124990400513200129348970272130995215492391507859042140268931300460986561523614052530392725431314097867037236715981350870414441556847409342428580682669188705870133146463205081915056248476004435207080754087821149494621150927923356416767368335016422842786529339283279284533215152892040943012000817086185841075044157621681026060833568283697384319713651082936212468002579767991155399907648403804992817180375653459518384595099340093392603110508797537641335490529395708765991342899729770181614294760801328372843715905906287968664004706149178465951433808979790174722888221305314151452675047969517343623347261533030009304974265653945794747407885636678194708758120346048621221197326839850319839880675123556072123142248397682069335797025454114267856882868576218146166824675502952377526614089492621794102342151635411775702690729443076957090896064414965881671742121668318114963709144779139340867791720363604718337590738200996909450123084402978243198983074299124747509659505402432113462983344156393868466638451130417168804680082835017990969544557428581327744030140033636837871236116275322391852009315108695478540406038514296753370514492285816823175467578599332489704331947481163136568762244209211961639847807493990632550658610472649946278570911848293076400523023957169404530229774843375344969347910427880464975509168928481102733559380944046934895784831966191619156876786647442091767696146015961430071187637115981843570948763419739913808562861781819516833566051319780945322585426552516534052564189836041918098775647547009333545646386374588183707193089927774747776519400712100160212924290428843775188556969379841374619594878664049528851797029944034170922571269836434779234200044508972401956427768435740004691806885788296382555685769552433481059235369632377665412136136594165896489360126908303912189079669346387826994625689894323842694790019544917649079925967283332015020405505639582288322986542152012739038571255115833894601478826796130705936844627140731766358507487735153608785471059945081573750376872175758668974763714204508585934755203715928941449038455518882477822488860567681794844885054248271176560204127562510816987302947899169290417780732082029453912387288505780471150279434067819720679870667734689917596857017096422149884386213172333014036484090622963366139731205126785480197514010687614978678223829515530144775438800942091958111908455931728419128447542459302404344156046849603652232207039181979547390237479288943062875587989550434633272922942658198189938496433903901748591900745498519432437746889715163506178404476581726383698089797509331606867090273629067967365282770315463201164237555377992984746403323273985355161097777810752126229689498605135171656024102871037724129408278075558919925350758497154770214909146833655432231086547487771386228875760810079271785897902598759188635196306045666633363192174079445303345927730124049043232891698863107254908590395013066665927301170260376629810683291888015400774006822293021385957645423568417243649753033910342475954667977697080027375943580064715248683506681994620785001781035428128258352865340395212327966035363240822318089825447710520475037042522647972286991591452243000708332000742959773227257950376529937676872026591893146678879839618766508408972120716214708050532965530683823375864780997017362177525182662259448897555479107900294328073777695412037888193857533624535557555386215137215790485645195524782723839043922555586085459837832420422489960586622158423688887828188750328772057840977870899101239796223592813041542814620670946907294304427637357079519463824063853539753893251455320403986581318766650671801285529209290281388464944991314896215110965735382736711051946125607048321120628812596874969053325465166098551532847050207218448979151303859961827075525350830941788153307371333348324728777479051810609940065062184695791416090258633376537026950336325159012400610772655185040857437205040286964190345060154341482587482135948966805169716220412921890901365194266163349101517770935418782341159443425730184584604796749773411239673674607693758490635429993974545300717430914967401452185883758079084100939528251239939418878000980008529832501179715524696629805239359426053342566834841710659646899602406759318187300760771656964600274918478453928375977395610105436229722833079671242759581913381790783409621408277302609459830241168133924254021024790829584271922720912310498777743600822820404793982383576317324431719483156971330010828525340178091758465229417473591973493722187334865037756637694545173480584127419296480623788474696003236329645607187500856199400629019636181432769610791010248477449948177473036975189922813557693575014468454703817964356041927482029664114842647553884616092843173667326095117141455146642087759372116066400571318718319403782493035660264211455546550963815617175988326306606354150291012138175740705460347589437776573433474433136145706954995855206815968719207955264670235032289325886926552115837404571767926978698309365844160521753983979691416469213052887124734821526840486335441603666716454520572878920653903968965700988330392782283124639883225936818488973007620295019139221746963919008129822447578103017840712413711813334742069153806373196342037227001353128231561282092730787333606573188224330352677536168514401284814216046927928006261490423726475295528980672386898011246352617089223609419514298318505493877642205598397842354960683843080444630918738982811032326174942490245929687054290959893277188672788181490220518594249649786437220191508458725241513773308659016343738990369096183941846604804764128577485733960243288848561594816539130995078432615276124274373041981321913109713823323536521962565656841321009977934658671253098091631236945456552408670990257957373786907357079576233304152045776015138834558474196237479266731639431708110461614928063588389189301292776504366428922229524865961964742501563936513045554221841369811550560226456922426884427092190824913879746046884262153522223215969529720460035628448018051430923514649064831558147073373909909403306351628476364524307039902289069103226906335776036486055194090278268031593780882659283867885892833398144312107432421057444077972553048758075438271808973816058294605104830293838632112044063237985310181200968004784013121041931723115880198941289995094490518235202855017478454727620598636970700962150536736780071040186618081413859627807691530330859735979222742977968064432368930843822216161344502909244442413428682045989239144100586494855598206028492271624778702699558974228142701436725836202019104692411143248113656782388531661678230591013029577237394942182206285322925329662810562789429374661505175320710232540395606954202499821431539771325543297586855252724801325259204962363918642824022950565291717349820738772748645347449926663833468080472843102113780927195036693983708889807928735328153398474260645007408084432945021048660235279258531331296531322453687733089541670661483631106827794190105286544385525475882138943087838755469743892676454966213807228842572393450520834542156644577393590327231975817176591609149922300536477728381273341666225338414722426299424119246224009785447297982912784403926399816969824983199881028202402018949606067126365661007469397089206468940335704923809270107051053509385611794273021697988253541628015272720389796835160423690238188359887210402920190710560875100167903711110517939171375466236838325414471785938653029705646262609481596059731112820725571828111332460761042177477596454839111797136188734748786825398458668974921061770350321736670657082169855598660531527270236429296210603327629512934921752142974883617498973053872979523177137651695656076009410257209652641367228047189019484536577305232471845768564345313341809126025754013903941163886109277630735614771042982037148558809988280770118207688604358180555697428951349392085027036099852913656672420004093406815626648000477503692670100671875654983026784039497790284984080411286490427373187873235749233515777926654640587552701973317415255343693433358781774394766769865341090342418288560046824427173558919562996250797908273745606776538490242262424341394441051476683286260981169869629957329189480313093836578772030544063568880873921733643168563019749588240778565646911005844850632217485602786987082544923435009462428781142479255709287588160371333704989444793554135786176777425930035019948788189354645706998980238842859434023529395735903638779955485801844435598231690842488353550065678400248622885397790591902101008326643914042378583471415392112521196644127196798500140377737816113954694556263934396372291698397034431618022638018535077274790383583877603813757838647012136315206550285043820926854716048049446724877051115295639919846196607048019909225438759193604899417764243237878245127509762457528554900919496634300563250421582478503943865657347030265069800272249653816227554125812383002246685055927019280952766320805532391360748859854952576989950792761407664345764642909718181527040843411686487519529152425069868697209121972727641663998948035293815572061036528542998042279339909846309262878679188844745822818384915413790257576173055737219098917335808706095211813913922837017330476881808509917109050444013024907362722374529981247942216588118589638088129678928602717350247906136422666697096556330601017905052265542575044259197988430962928103065781734716370568213331695467538525704127557040755862586832496666639996077175071424542434763807349935092557265250192876408649276184971730458976251487164885915989512553752282229553578092755157717734942544940646365328643887343342175307027972107888439357840805194777569825417393212928035281904328304226608115277615033728093222216146272802255172759402589140495678040276685368356006483751211956556037929089017497056882892495376800055117044514709040276477095266126178911643527084947663336330375047626681813493831684698386036717861807570903840999441668188850885715673375085945238160582885059497191411577351946916382663291000936319693762626563399714388590830624050022106856248393754516645389779526455014543848991742196831219314013729951184100975097941992374688409542501321236476707532895687164905935102896844431703315138814848447542911565514954932398604734701430994530959296573299640696179056571891557139592252223779966163349292409269002121723513543080937580132161231377545123487290335614609148164275810499520023608713598549648012759693337261148782204827141654286109728738531498106973275369685591326889312465886397377860527964731457744387037551291438363101480880102554975018505634383742326494288403807981432555780016392499296908528458983639132925179370625401502266817359646575985941633224415157573672662192304256955666018622138261908801925812037238815460077600385904490388617664212001571276624408763052928397860029377083531090043918658812000874319507410289980656593798887012309731006970179557992604473869636116078651598376486501679432859334319628128655516084529190591426779204939904118967887787866743039299757616764655468134247356325818313412266269003748336985031872001174603213572511554875102276922014334441704147593650389209545499769900214280493035695458920060089088122898084805497614642398124170653574543043763040631682499554358976779787290679404769481126790951355743782017524164675346132975800098129577909972707119039363809449713956296258726823835894718541656384732924275869509842767377721923321752765396866061772823715965708211303558103638151827913256944611930915881335319427340665428840741599708194924029183884976257483153393752546673650828439655401138966301676390463017835475369478652393655479832094346814763378984065784724561420759944989774128751744945814534657383789979602559586269280739502699277569907760849202215589743467392637791753036664387053071485251947022095708928286369504935855848932090955868667023345755431925451442518128800784991514185003301380182835829191679510151350632589157356879487674191838233061591376859223498332250831999552784862550590848674550469516024205215252356676382666432062440113462461848355382319190307897904891564928816756949512976060226185159575090914427722463313568357223509941125528091622824240694113223256899532000390302021969682173861309879698007213116386203903272971919955577059189465177709310867334359701908675463750777494181642136624587122836257130969042522142409274144442862946764111157333902606899283995914207344591821012987893827130475037383316679578727390062834881721234327931679007801792778205762794247419639511777509457395274438958633533473679660705505270121425442994790804913464473573810923689307860356623664611507441594192307991226358053752635962493588388549945357860888234906479016662455720947882310387009991721086516270017412776478931430636070317268396116681796735997405243721801206234819404677351511011501357530393553613503983876540463630317292404004439345422288665043755952167963855990474148107366357622269326643306422466225136196475599479394475167428303938849538786086663136566087608674016868254243859509309839009508247414611518279715147925387823632311603910159790837053267613356530501089255973694782566935222898154208014466204855019765323210218161662195303465718412880165026448317775303785757210757216727037351922240314148705332812556025237909652855171060447447911806731970710020686033490952336928994351734601699910718450704909528695777413179412053056639315825980800945415945684740167337619934446441859524845857806791846718267214579330271628648423325497020868147406915857052483014262513491301317931897383824525493171754034351063059441518585179933228918463985687661286780829821411290668500392562077476960056653243485162514854282704856142333971063396132693140524821184022802087649328246007079295186711877074641645736456342222618471812428438354882660565417559049879536936295956649725411837193356979846993998266970823283120991093412559948081987322038686457497615007315013080359405040673405601232570978746962918829946496700955322993288831623762277023446084161786295841810033059517722906006608958130305831313955885880482762259625175518394264980631200451271810019222194970576697488445965926929976916207972664234143396980960850145452991168678452787722580150857428597643180504071622549465121526895079761409835692430941746765451817195667472044498428603269680371841082593827335584974386855805135952284552875963613860275898194531001707608944273324746872429589116478218853620984582946830304075110083054667661213169494465638662336973149053630487890788328740420726733833969258348281353332462611966397276729576987444036547136001659167477142386181991645306272289815577356622922661089717797715008346279464409360584315732063783476195170000165810602100928784044356820652019452702856826432217607135816017522219734672233277802743989435971155978038127627806526046703857508556025560810516667781838263691621120275954763575092735610337565179769946577949596114491162131167916004607234256813482210917470416102540842483992404235096219691263681209164349037926693492225463510174034101546543752831620706105390821226693539714144670163871339195724562013513920405091861473232182936195189123645492088239049722488287914257299133977822247818652101339141437160107780810007161296620936804672633770301940591847858596557308893645078579360008786286866338079763689028078061985701002322447725140393303221195720569671864238802321863347761125994354864992447475166117836031669526375416043600635663238710592793579217568711999822811110891424646101546553565962127042099944031975873515343983331956098941730938654745465140999389397693553922458643035887623157615625861587462872818781337112351345878837855804216977643985259927890499624290653889621582122218978878116258382965907363248496977987612007130681883372519003703774034872250429734960993476607284864000163199296066954370714271183192140992442394695825665420541914512045536142364884148160260537748661498641102837595162909996220912329819216783392396425613907277536570773639372511982297369678692468915137165264869759651344357671228268583753144012628041840462286935889735824637378784844748164121073381675877592282230791549822108047959043483193387634330733994992519424337213632119153658108725527549390349701179531056527436888894408547466647272707809098080469973094052028161295824460656291655076968023561451397859995356144918568579496089902281540993189622735210747582448567245261951004826725615270172300934394302906880530192645535304297709997828918871272977567312250801215690898921046206103032654195355883084346331184232432667935024698940574739104932355738728624978680751440498738143435118385255825859650848619765348305165577465354849251847062358463611289612310634756134878291962080802902154188956716954705784126360651280509700448653394569212676107464890218260151360021764042075934304251549604712165606382690726688106032814204741220088866734941517997246444314878523028195667730092434525278035472371332498112111447527196051728526390932400074100850410135349534043775070868269290958964505677769755051816997654774249074987137689708054222310307369986214421344497048083338862903619246209941700659527552349945608408883527711995125641178874877554269069537890166583717050597606881779084911618570218746070392004112101273866342584584512364593848810490498891712468573926962218064811341034779991028533450433635293559946999107974838607309383222418565543650497649458385709575475892418107954937764316896260734364589130152744656521145786141557709921049334371327654855020781975775613019026316273124397224267414660169404353621126647620668955718147149979122203905936045317129530955540122855108112121026572969756546972317828275358932526338331110696576581556117359486795475942419029558201244575090753733704603536226154971039544311293340778323908570180904613579628848552716340269965063129190994269695966225589497975628721287757198542419673475301587463470733050737845796145354542520644230878240841408078462796736873887889585204470927908101071211987798727835924233933557556193713249979593876098414779898213818265034322401306385745448854935897070486251427872429652100656649787070156838838645399590365080171114364104266278696724141998326547334111284879330934395808667890754340702026793784774345535265665129290134337234628978010782011552218872393731201609370970406863255367709261919003989418841145926153701166686589563673150522163304107798488677211494160046621106586052485041079547948381425140499636824970739689414424666717487367463168517045635775424231051505809864764641739106287459904737924888107274308142629524890931985495762898324171908961998384100181546644378082375332840225441604148959931908730084724728557488183769758189534793908801984580628942112361133354632540040466535717316673238652078450308016619577080902713241189165462019807089554609187238543726113874966299766658252314714818800323795003806670118598942195994821840489226045885487688802337594014215791542952871235682271939416595000624391183593426781640483541623849679242080877099637573387339727138570051017216390102814006199640295555510920514823727888939586225063582005762355860460670033354514888308803206990796123184492379733390033115058829483802068767102409164859588883944324656344667574633584953224141651880328254882089918241029406831822065117122105635810950805267608243003755064833828150365835077439401630802437480979848295664872770213417005589113966218009352304353954888255902667090006571188533595233013070087619042828655767907621690733940856070615889361930134878025952499670315914362442199778519830043798444145486551659082820414113937673181040877195965789360890060092985718784824543162180245386116837858586234510782849182169145864330972476771131495903082734618524789221595763617619415803413031319184160775944101215743941774531300010795056442252510930673752322368854324279121353055759262100311221186203829750275381784254173117337551711968165240928436766301402843312361032923452318918370223034445497414188639739865083728606861694362513165598064294041596095582815279474489407960067040156066354233056608882241092462255818735880428279346966420627411245975215220276131826209673609273703418630680429620948015190112156463233546199496049740834443545314211500672682516687795066725418216964868333082337244585492412921673190981802291517170276395390765960845015945874597607378223637182049117249030372172847521476818938282858524186640140709140991778837139569216170769790100601923052662978421951009921840123220629140060482178194901561947902646631312875029083244483715546624849403861524853532736635483810240007269503753672481333156495813195298329582489456994701540983863588375105274450387542374163505345484390591298010160337024065091419654406408930992874563503612249158486023751328733731306177764383349114167974279563535826432656509343897438769712540489099543976103094470122301704959677916134546024092072149464971044874803825509647557923378408501570469654092609937529297506575632445478640178182086899760355012046052898752372284096564154010430487466276071995929003518139082264656278006917499381889757550412455262811876953735750525012728015922292778267737194613719216516400180711103260665465764572568399041112655103269898477620049452573207633661187946685468075655577881616833650598047997528938859344621827274827697573534811670385110008812060026845121931613498729227973543514525162066264467550435130099588759986591144348733027605783273860610819603256783353625213985372146327137143733668525942897840927984778786647466449578835896680820451477672719070312628807710771780875944659287949105828127513178451193902192043621739992710417481747355300551496807137461376682610245822978890268640706208716918408059066840210711797550731636097123210429979833192165994641187673904738358239727102066913868675822234076837140251287860243360137545695612101211186685695275760983876242013180600973001510948770418647501460347190956001644591325816011088700342409510860065966824661861370034045403056501560321089611195643279401133232062441296852718973390029304387526826413252372811818734183772668317079822366819849255173111404842922636004972983664647174703203589251119031455263782036974827376444746579634703436277452109556074920999706859663108318811970526754076084185209907452641268309014347673429855065555504958367106871903849244388501716241895924159706438955179197612480105118326621083951809191931686471500762285491546332100294923138434804057097770139827445193483922197130608237016546337256801393503481012122660511497687829462858623206434741211262663352782157747324524831241354286604414019190563714456193361673409966378271496009780576875416953445440599479396181489149477288393444938623785445710715026668290496140379849969979904177314534985205251546802967974626481966870228616423121477629241242965831276366150132159956875563032138349578504195023669392820440838149111506865684280960304485296973825380024172676987094580558823876675088046999123811364649817803232713886275399981430647461240477541717786963338613965617885964831756351902365389428609879813243105964107502022049060393598709159547794213809864179132509391514302291823591945291150294344931341236215198182158312032029486003940276690126632207066257065165460052747522401019923873469029975061163166192818509767792260931005135445649361164596566028491128455262247857268747061159462603273049260387319098427270223022793637175671192685836471857815155133520340200942557325702413567497929832606616892374772379092315644836993982219062239598351292774874049218848651486180067646836474766349043546852270441815032947346688059802599704514719086726975420909271463724793987242908001465960306126644166022286040507213318150829460988850709805662279815499892792431405323990348617380802149334102633155051103722338875148162043988162961449937118414730654397256358037320605374193767157215516252026287912434751769566274504051833871608859843704646720497692571862630681746111178965071273389413431264004219002284268846322192496026992853768096158931948902304258339012860852902135855253522872936927725731124839805870962208930684664626363416474317898670004740615668576378571075842749474296485796676254876979594106944926811657656925791063739128091743329342766008234744512264681724479134541128328974457551465078695658990528246653499093871511116967951536432826151198278986688971093101695910417845024882873523192384486242263629734975768439282263112020004713218720170178371097575668553713938247585338118980568055245617589253290124104460613862625297201449551884592486107615753201952379210693182246551772858642266047786938398442151913918849477120401248032226146171138594797565685911745747244418275564366755031861737105312840615915488212497193717302126743920082041117549854683639841356774608838167338674171004703304512237269963296753350355683742559327885052848439709953415176590329384028506921996426091089906842903712845293454949079349840370395015943656344631399512982458133353138964830395468537774238675823879959507312791666339121357622930082381374995088042414367706341186794579020222525197702359954488429230463287549234967220873007422618532623944158468650826153186560577857699729253351807440463828973043612131248741664955773205830319852649228400338212296198294000357218896092227607689217373213756128171401278947680860184617347613358304779955557011084658991846526471602906243268230972137919999502600200767792842812801021890465503686449406851637469474009796705228717466533465347668328529930583917529192568422946133303350299266147490355309970592944301756633438343223044154343703476466404927395026581091264882415178063849558473212925984863914337804053563760280606861278168889215248356454361916584590511206537019448479242546205587901558333354325586591018391532755634325304791374070246658885855173264155785108271162140919115020187616175817025131170079441408634863148319055296155411318677747603095539999860807938437497622730370371697491622920021830001353391812999182960402359294816224037573499647898156526226824692246618226600334656315544406919091944613359229476476175309840144569649498541787417212313607795570046231575740701647612827340963897976977401987616019415760152910910925312276183834786795185241937060797916559070575151805129542831018535917318636529202913084205780739267574115631345641060048148590659777277558923397304760176118610946668393831705136767659806086454653275384417193324821035003461438700642574999821742521821218920424698345969460171454108096717354784790289649005709369565850736027996266961684643111823719819499540175555079372487801969337650451347412370232785817170527287540676808677865733191918065414650702346930410760260438076498398418776243353883813581831396332297830451927354200012443477014391410202805835137615248683465400922414855558907372029219460949678309380472522542715397156446139320717562051057479473825563034044998409055189312252581517064469135994549410789766052839379950219126026120477205145883687727742039393492746617423169661272448881420286391420227812419353329742169450946795452067395697738280628009153419557209296208702178162359573153985804940599130964597843674616880332762471313321871636394671809366747344033575552621977254844202499963393174861668116858002416101935718158763913937159153107634250433840677491100623988859795461135553975583965305392425113385151972957150725671949315914454388674809412700929742577221170197678077755411531464441588881354640461003436754633954381365737941755202298370463378124045276311595878742915414204162066248912616238500777039286348472623334350644174622655488896432896084716921233108446333350533714717333033190172115307748181597531874032065206546663038340247240443641929585156620772019573193519488591629815330055105279952540010923346567985970645405142910657105043026284793759359388054120084681207165725958968277943629931119229046287498933815161612418075418388765972717000319388966533656527359657047298370555651002680279238516795033652066530917843546800532221181178456832436800443266590254628594599103854757965209123438950325105958302845145019453098923277198489280787845546749643627564616966261836486662036715578498138398682528761956385736085204193320257641086585308207834609373542674417458791798165097760674803423587943788166111998959566679446483821547715844522357513096308613259832304456646819209725029344903578658988884052055288786406593898270941098662152737161752449269126472228562674431790670660513250331457206783440463795142601733349592062646181273287377940013015357157366237612685283211039112016619481155877955040394086512236041949757935718979740811556373467207427424157737740444109123848555845196736483504888683099313898234421248549562023391981900603548985180440671358033140872413265815580856335529235650556243406221738635871005910916669020110600851921062061521729889870836133794588258419892972813593784638640814620973215748876458545452905648569347625409289910669192256024642545291001498200945147538869058507821574990164238325826612333030842360171331330197402643659281051697460061129741349954361141507789015523161636275821160734521938551112723008960033993710873634008474458582811692917284014715929271271973822535539639876459247383693261128037429940138758081761750693604738088259160765499660285494158397942913044178937413498128512994331756758244076734176951024244331173208054198122503155476482578701650865766702309785271213432609608282808472227355161279802179432486389890602925191544808852944924913238575321489641284456505833651534398394353706322369086818474891634082930268567197857966041601215228834098644950300613637984752788790195341774348444672748004363482761808233991610087405112235165967744517830819216702751251435494699668726687370827849191991682025903711477659826068464297168288715196482705657937945663048499534258282710020287457514253134878869888080123918252754748629359202579750028182197510099462917837851103466716091576507689424057643488232454106255171455768523557408154552326601776743209479015645205466875325651052514797632011122660267524833213955089931268326349301368519242840309426023879053232047876793848815781799120758839989511824201625492439937529250292683380891296512472328149902698230237888614435318987992150720017872694765932161051852405076863648912351751671937075072001787269476593216105185240507686364891235175167193707507200178726947659321610518524050768636489123517516719370737742162435885629406235947704312005266062569762509684217812114888298800266160440592223293316241761229087433790222878045617013577237506195216034268628062905378649688713933857125624169640793244758313698859182729992757829492957513048250436660285323714020549644733807382457755582570927007591535821362248787395198064475365092283387321973789450989488122243166650106987396166729899209644205968175696192318398661917934084742578681546159414589386406022961329500381200383897674502086338557826679881065690369990815678277851637829345993619433669806529792215221536662888399402680386218387841389549979200722893711695077570617240023448728986838088894693258218633782343569120740289568718856687096061273862193498732632240960659606991760200545360381658966021438717712875530983709902071330847123039179755744838100506832809511893292721912316549409066402145683598744632162655757397928373087028606129397723683858149199392584157425491463351548204141285052561164143847386215794850259095916940167019222271520515924463847867368440341019760225485058596203745202103401958672160817127019264607046079599287131210748035118825068233530449698126552095670808845419410225351991313683529115972228197796519175109141257490667527198799284399037274106458867169811835091012056834981767731009548469910066421703751012964027952668079262013464908265708373127308877034985381688301804159107350878027897814445251654077081274884737965503318298936026105151709009201102220710016694799486064988416099255778210332925422202382431616937945524450771166127819572028994905923717876307137916207732805190043595063027837205242860716863197568319944953596546175823793319549221835571406382172621701189906243630164683498799430673248974840299006267563686639344986687029574632955927635822741739047673664683270987254008256582740793730134212501578722469359336023202788021334475471169254724427882347885720204784810966824957325946506938183932899440856293295484523469547324707209576815500031362868183058735976655244562923337098003920244653970819808809751677590008294523393382538737975166366848481990619171892305302932752820522887389977798577574644330667384284668342381977782239415152243638987424951701065667853026766643708546240614507510982382650823292192311694659360552162437012743002394924600084644191371345373908817105432971996259217859583689002275354693441992705635449944646484635692114739545423420930350956191259629427603323140283815641958123992168435705926115521864367293908114049884299540135030458261668561511919247042480677787488387131898718967382619247397490892216965648998157671704289017449666205968008681990919566483987127996000606600983366508501317267050667807381053625332404361561098011084767554948774942365851637194652793284979905770184510490917015335686136324438948796590343675903495600216642655815244439282787227173594594830789387202484734203222900521336068460531292940974975988932013490501554663997880699917008737158891759567768947270618115030196472891325767848161909193884597730528881739137963419101391228288186895766691581750664019066425759118576388754829343629921171912710549773853730155778381018844418606578305924104527243196692276439468819023029366036893929143527900678345492052288961178860518754083104918089177592609625711828832708643634672781816274725571485025357509356019445337057042972793165183243697073638748560927282169570755935217982829317630403988543895057250179465534119664384061183281712258058093138653669016323415504235539488039771007125070410567877416202585990840071768209894144867462299227628920255085808162173150838975538840534942791905673448766048309707910866592252931017597478538255714719464529629087845195651740959478943963376856887841336334073539072743766372205280224459160534573754066183716958052421718003218602285837532259788835018804231788756894023197519743744461335259745789740055466244243249759344049537626823640150573472695398011010025658251311957538915849382125129679967725362127646076391067226918441110591666718231748120661947722805350257938618987107329311431962195583590075732545492654405344858762379970486963982129062304652602371545697463982185040240616064721224738628536914542275828158930325786719200381523130703012314500162038355855970846362887285686618295880381514125979242712228006580721753759956097530281681324319088267581121397864589779915670771233413006140507207378747754227133477723187913877806041160283389280732294629861094389948042687763090413828200824932764378445694666855969135097280929656029683784248319063766489758940229747652337370707590295732296764107444779028542205710833186416062834832840393767133814809415308100383634620986740923141625772592601642413107683838536096774393896453881219871847087835760284657585006626430131835637759834394232563195673889217864742511539146483061056176185226614849862117352993003941962679783511543247197921009990235995010185045226336213662954175879041155291163005950929887093720511199532095191976119111178565685631458237425273363487442621789437342555944388272109955258344048078153363012318172504761120985862139119503812768576842227060228808579228022789927013545026898289812867084694808586907736873104882413520925337799281517828072247304329560570662234561899656929407990430103180055883851549560037101536288339329630838861183757251344292962374362569028623990818089667478407215416482153646698525111835609376953883824779268205403556229310339823461721774992876114310711261869817671651010213281748432268604928999621374426489178747080052177899145979368325769082544704995573654607383329544550376054556169384629935269555982548143695227451351596350128443816576238782190283447784194348491675433220898865725107216380125745592050062613832353331001746356326967882997952231221335922955987771478425621528196600958248039796074188068648146222184673502384649962094829002372167471513017616183486648569009580445271292413610774485501645401658821009469531851670949653202836855634394275525867623093990262646880252100234839881081031395915672216752103640311682769802044708468275102160076529128596181232892391998983761546540152884764023895640080091117077716866325847151888652134181009630978924681427776744424909848194620720991186061783788272560602774892025077565496092241537218489819139994930435616869362159642917710952569509706990063231006108564855544823176816949189203353825938397977955201780600261504538466022348058428066808005409727242488709889918140301721083740851971684465550686866825957621317618534741443776409811689746202037121131861503180534816370992805100579393958183960538157279905317356462047256467564657337523249604428666275422833411947710115861482251329057472336964545935077863028139703502693355867202542065320191136456842785222711304993084740155083205534502207111518292503782458415159542385729092055909315552709371573043650713919706627072083660506535925780753879966242782962602719086367858420342617942729278387207422703925864789969888520172854373296389141798564954987123131742107811174584783471481011302200669188117139063322377463914427871350133910136146547582354731321638779785942292590928732660398061705145105189352613846356490075823486329152025865510311034138140491015735161788607576439646188341017565444148747743969587125931820683929218116808835597127226537119526746391354728890901025277774299066816800531987062324755696316479419943187728998958907371744791382210691683031443021088327187369372236371598248511277737658543952206649876302769812346134536976210473975484439806649685515001824287241396293002078423904077017175308740062110388698127516133110767104226560953420656279648030919591712222568605086606974919587195285117201863014572231112559580580300595904517801620915600339271581356193961524505829409423830675223104876027568331931395370615940569008254671634076885187380620283937649414169522478976448274159243938907385870336831106474829591656363194075978797738936856825365656798119405558294689075620974863970515862806160495538019929879010726988526406869489610033232728420340618845421289794321886897072738273627785013727011496387088466407860794265555255548566482536726238855301957008990944181411968192782252147436730237577264790630213627009294351935375202448246504450281774735303130558784042890529565361669557574603044684002013025834728578786034796429662285633839093850405959963382052013134597759495495915282491367582655773708630985343103165699186477493523558769856167640256943679496508265951649361856390677613408634494961092308528159575947324469299784378750695779652340662703489343992200393314202215964047530798772485471928990319033113606753874099262658761458295245462962744782530607137086100932565610910629015937032345784651094254156584863367597171410368246906821364595022593823586898034205214584241562109771259419886051741846098105218023309134915930553236402118013539938273907609601881270857002216149942023522853011978515148254092669518565676534104044454854881776606291533342393558830409770803826294318944385077023904084750171040932368683097904497849323892155985002143587007713428715847006930247167663122853028391120296158483322876218731270254402750988697775241867197258039845678345286723372626819425913768922373279869636995719475082805749299080160929638564887577436681305993300301065165671686433116003817843318094769824924266082639256472210856302821228584359129114203603272060182523237946293109254102512454170051664917496978501765868001286325445737872529326712774516243343601273403978593022215996177517361486667939676563322195149342983767903749308251701618528493383442425041832303026410055781883185442893640874032039660088923438710023409268523884967322844566873657042343156698938113117085498055633424110903902940206987883668650096416369170528156585835647747550488319116484306459899663270339800109706271431548717437048112170062091860841624596321962758189168759471508236368927617174851631458451807054356379707232789574505387584471007564558747372456716260758755826316241638301758948123727346583284264334984211990679033276995061878866730634490328278376485909168680653984403931713825696659592365734822356876095046002069573673695394353734489287894541429944924229654199206870717179908202751123228830206374093324308284076802365996223074507239548291325100146231522838566996364648161993061080350119340985512877308159545015497909832610070008435163220914097131668390509307770678257938489159213209928659807516647762740421022870695803169101976906658492941163014490417552415284079855841920459422247224085795452489966149963129567459931787449783413501974760024855830935569788153697313632144525114082928418128045024919929598456172978864983652967173740653502757578465341870784213098057357585098708923218338602766809687867445876739370425061052945593448000033794844118691034384898199272178004569840882561800277402469715569634535370581771324966543170795487952577664211206856943407407369416521104530170777514495029664201508567341856133087936907990859888819541774261880314414174869352930128628687697963497164412421773800196909748627996089460936425306791041745935712831904029831131550593038611206192754003474299601297698456728568007574786825685265588805504465028247234062122672309876509524679555116757607551897367108186648733913555473038717714825992498209065563624636888744281635475973802009270337279723575620585201948873117573641520856887998396255395067204576563708667868496167399289905166395473480646884163216126962321404300430349787937658955255912612733494431374931875585152203504887715420612832321554250103695842011777060581131085740672176884473924121518906742976799528434604620851042298929559015388617177785962596590245374799644805737542590339557173690179397516001998758369909403534602006006114570812972728649244155588597502427490101997527856958345334494325002578020434444086828907507743961736705538376157878638538700095357333590259466811975123738983872665368795543001841504480720527649445702579946868034994929416867471047452363136504711526982781055205996265002245440734287139919498025383338505885393649941733636964318998036953211463174617170203880708663490647863404224584691355904242451402814259720943368039404264695762203519760525374669196864684057485227322214112634682007326809912835968043371248986512484713338659995815570362412843119237138052069855463052239628600169326092476187523212570099594164545017597913048315852269009244055311865815319784593140513549679750197159130563640796787427438869743181215963320242453695090810854010748674532233669488741744758456018977639584490217493459710477031541979472175590310489551507130337509226428947436615011461711285404898362878232177554033558151308900860023111908928317197946152733963981475579561048165472182282092824126224408661731611829531462701196213661995941087935835643209329641893562895075218341609495628660547608202339439036938294410706907378421593711008435508099349512584805561426027948881173577823141092156309775563343568928090624014704304068096745414285001053129110144071931810600556195293759944098161264543744367739789284558236168065730568681889329055524837773886978833848212690033855255772963294850362572416179456068806250567439834358406885865279847132056820332680158401186122537107299459297219831403982495464301364141209379446478463296730804124031579167146810717215465797595084379065463926894416436702026717333321428687279300067525680895947246054007739214366237747036693706479892806834363066623573549188363067408969053454196254921859594829635299144250681242195784939762493626997668432011717830947897645342821592110544192539567389068025874295234702462536272058624452991614257874992015478349251604342385349243843410303807273770776570147437343580798451121498902138772611307493125184849712899174590950039321906256807723932545455469176735002114278251591537139224752151026195751812555899192237756055625186257778715204024235643008015440647378686471774548533756851330395773050554298410274520848824563801811743244115088666941720292251387140525933292189039302348495217837323533446532626937774732504109205508276270136010762688057349283410615014321179125841093281226749115294969194414057983354038200794920527262073123858332785887564779056721104165441661470761288361000624384130531050140081010798755577315225042463587242081346517078196813266473052652668700975390102354840054319103030585050732848566621892307361016097987301096045787862725969718214977745931912172420855203832230977437336272600910791708541590654006954047576946452693527389589089465660935532169427129426114018933681755821233660928809368683610841295931368976682546341618079733799311434919945061976741403836739591043325083789609765463216344296844750471808775387966011594691058469856934631546715196731054018943472532735101233055566492446253089798552598896344445382941448838257096712360533891982931364903499133212284219660873657571369432863633838749656941544771070613803436739395432994554889460443286211704228102975764901084613036258098852044456528892538656183554374669050757948211069811160943622727817194688442239013643555822522433014093711548401136621388410824798090054297249286908770786394338356975808913448554837537677719658959365875154327502949340116362862841933060481710939239987919008842034872943437214946123970170343033707916983162457660506136245905491835880524520307312984242588018709607849181635833763214177655264846608626744947775131163374609853261567716821601314781904456057708920308018521540881268882246108542068433312797584809219544443889667113144461789314741293665128198790259329194565273687344836398893389984361211680689865797567488516548886337690035375291987757693081057355173951443795272703800447049007285730925262631673099074000684904599758787132093533481479980729780306859252749215403250806206296793680290963657119655454749832657557609467247229240892061371056217009793399279320665670945892120839049846047586480114455232781360281453445795438733659918540295506010018789625823206446714509639808919967566146598237014128736646880385940326652224087508860528841067197999140854487007293022017220260304786380710886172631415313923748994778191781040775452555369360545903637816192863942002266964803975868226345375812853550796206064636202276341001562539119946325786788360870252437252628303301021044894326226275322073667652910916281998887191616786697698617210689500902364059291757218594584763068921247043650275363283506500433461831897030508283915358506052517223442293318962943725776163152226873950058135915637995009070457200726096898837387536982426218631495121398835716735638806300562903254751451996618172677820789627279916563774802991022509472440941980146869018862528510042336659066430765016710023678735189804175086476038055608827119847886391169660571257581116143322031623986195399608106448911512990383218924496711518198579850277044697851841628073295318752217073754278078367450606084368877693049830230414364689139837008269396406069456288164169529166544373908475728196961464119571580663688131248487829600519236538166969144131643782128080377458223191425066537273186601585557631000545881914608634151201340660568618305399109284222097222772766642007099875823159076294391295156349672083809897247230420387327835086014741160482852042007439596077939676657454574157343814376292956109531158482092000199683492227462223320349229787977209325937345893185303632200218523329226604326327773869929525440037460654804476294982724042291465600529045986614905305330341184232774713475287632417746860051035196802595048933541617738765023893191084066521380466746652964357719605228927287905823336267171801047870741509786532744155522815509790153143256991410913299525027699164121847989035341734180288807859437047470037468716698072913698781051913482317431997181756973247169341124042193238323758158340750503251210242327215999762255953608171639659554592152006263493832779387174509876695534287878977466443638551706502650448577147587895166390526126187671738754045938775924493697246870221984680515191826034341463515337517354398346584036650078008251337619581112539605958941718804721787463604668507755956087664614979975907257254669309501812266059756338320451208463864464994775567471104882581862451811482160241731135115533763941801619860829325848285029721564124935435493701472218371490931352746516140422988403472587358480471003049710367861996903966400318902701410218747143973930479667127146967452485821961590443588575047471161083558276186011598867992523277670077913488062706784305823037684432240837285577758508216273267775521575385493139188944331137097187976549309906304370838121079727316041468874104427329403072777436378288442397759487234629173289643236489504230303395254772328529225182097863294127922776106997648396446154980303910368747636700744207201348680420978344656707808500851248926091270815723789681795389714716653163541792741324937455510490677088305382910466098618013354927364715788231751702295292557476729438071843235282789387873058507172169878408709360848912758296731845035233009100824500894600016837289698553478156770898606637024379918187127137483594244296364320947275727110418044334601305107022177824729198840954442915592472967931476641686467990945637704603699887007961285734670508717635799267264190775864829795801509614971798643932311870590230974516834357125233587442571650251307838439678124895410287899686721555835181821976729237267508827191325928904570539216996231573413598101626063438419741115955987121948557079154040991260843153449472936182597146663520940304301794361263079707780953877079498286453666763263533422068945343030626974857296018808465649020974995525667340133802823078862980681870520541252040119990430428919912401546306489607552348001929454875288055706505545235487917895598744025091300741641918093997294682210357018981186767215490449502844625996837678251688727079295334993551398511723804911695566612441880493518211954231454579329549732901154976327970042572529288516760556706957888189166689264962782660684281788855135682201059864864426897310404206420388620214159313343356506079776483728611747854101318195388209632637397818675015670201035161382762235549907816708176258006326519090723097311326126453948061274615763974697290381991575806307458753851733483346860760889646227012140401657955979081551364317926971432781160003950929530530156640538544014468195674168914395005060129899532520624256402569997354056335685117062631293788209655763055783267561616292217039451858995939277954633373520501688984643648882073146139928560157646190608827005218388294490528350185640650433641753501393498570510063500442327755328051663250155536001685586063216180167882288985927773980708234430121876498298821950764879374527324977571646794376825978653807770909315826869893218567541022181137066289150507191692405571751537297985467954771694404608728583402007168255878503502580689802794309461846725801862557176999143666925677662478882563671023905089297579824895222709418467443414664411911976248630886752269173795608464341636763558830851295486537112507449037322882719925727151996600021666938956050382795190662337107102964526112535482018081623405931612383383278721545090905442719803200644225323600124989344843636759371914232277851596265768452530758485537358308416515247778499835560996791452905537128993380417358033223313804348260191619102805347598662385415120389560611327005564966892813167555129799676336653554047090793988866895306857810173302660568853689560211807721622589219199243117304892522497125531228211758822528265092358229122520413837008286387959940875331422920255378831925901788817597894307727113160489156785086783738812236288755855266118657336744602261173633288022556206861495846722660537793575255583609340989163829636599800730784500136994588212051974271662951889363661788724519387988391498507463670116146235590918089146487824769832377597870963455931545706800552820706294643107638481718364124284488322241634530641777649280600316789700191373441459952908181300827357120244541781460612372671440187538225274535151552424500790797536879918711567102845303187326563112819187358142050423077462972254036963523357483065620485610864093427383318334634327351271592642393900491279730288837834637442360464419658158438405319108290323239391500637052537770106594292190766393180810878765575969070784073173239732355063441358556746002928122819448262638691858136721604139546331879072561693081540996943760021476848236668959583386445843391397341957739544589473799649939650197318018758215438818580492440153865707188767878906058943439705724396806766233077750215424777082377904412690412076066171751458329065681240190888065205921445972236876022617302455546374056207480813993774670094125222153273448841706368152443582561186966261363834029286644970066037996750179376316763918069437678433862149089623561820105640614012377885098835667084731143716888913942684794853876466509841171954337028921584835072586019765152460415435606762746411781037958055110585275094244729655712945889544502046822567201062098620677182166748688559677813336730489413888303965661219189330587140477845513287672803014322099270529021061771392127737590526124680357832336122316724513143018328278987695299046550698848503343483983359922741648106833596317970504048017163575811696110898875265050394554508189045782033398880552733617405890660762567887602344899655818219507130679827984374701471305670367804002790888262609687517984330621616836497577339489618134418824168865022899678081627975625692274980874020887688103594369299203957265613050681288387614411959186240022364452480039479994244058253172682465135209489596658726936634884015099283759846464753424030561559065105449169124218607878117680038993076090690483506727951214030034045948829208453567271632950120071121468376544941407069259621433285678745746838018539304546243136985598732642070733736209526825330022465956542110218831635555322102232583541986992666491353192963187823490149158700147749921910894650128017261865842411995774784463808881792358967236549615822753535499698413029394932056796213757769896654209615618393575485106101873663140267325061995658143840958843545927104275247448553201536290028879027363715117097611575104474448575002325858148560788985128350955612212441353238781623331816561192925762099918516879242862423080170586007655853464509921222138629193200629166710405344413253099405031484201600328999231910328401724803603264117395877373643931580547563446116674421959053416946656368004997460891763261639369972680056711919008111646000296009990629766649508010850800515867038581971813055231732463017352876930349789853304607612670691519805210418792169386199911313682841025843874830863102275566524082814123688895195062447293752240366903159218186432340269192932376887151770807674952389899214924574176299185804334862960608936311062581001413806306012314943627930687332687687714744549611824196603717301173226721154889414471580764346364476457590703340858879379388551175194674235340453941225240645707121446590466567348092426153884175026364996764039796403950645360330584671065916086949364276706384187525076396896156031731192926863383238674463351811330830743913035433722790714103079528227165884110344434857882180908028208295544281220038019526602186359524610566606314957612702515823033352249470789046610507885186132600708705312521009241881403331109803432544721875356433943220404659540269285044885564614251052654795847216630572994563578827156077280214821750447870011247793657070567309892113872193059290580864978398631943466325792242834020275207962010766746046940717056095351333399376074927130117650602222407844780821493839639881200547789380056657803599043114871016372770352144947284480659802102462962863743293337500534210984024858609771594603462650708927576848032018361905498852289280953768213151504355825172037286016959609587642513950138220984049612226242281734043402808939972622577393303661029868199221337757916373560345378075501813255961569355010328329942384997475152433810011519501213178050138796465628491543324891943371832694701926816767596061591878897636526032086512658522642452411995901898187884508287694437676631849223848799241374007672294068073105280395354023660352099842055043059212038827556559304808391165973062450177252527879079885468508425855517383838338519943442889159122536441186696441712424001358879607219106134942308330297896634430882711074670005236299743261023180271422662226187505725439690773814742635221552448324008043756966990710294726405178030151618910268009263587698184180130345266471055199507316064326755040487453177281647974984931681635188811325461499640318314012084999975450565440566511483583871743810710444468199573634628689300271371764306960414783227327567890305080957691434783086703540161620281849114412320084399928213181848433228813425512488866865448527084230428400988313855490100379402648447623636375364651105500810294066099152481479263173087744064207095391999167556393167624758908322427072948295443281512295290316475060981071517094932166168130222008489990733519284840900143323698869379175997792387280564485863635604716964436602044525970486822151441978159123227475787721639865752760984089988937377750893740406584561154045344889826356794496286422470716132658749959558344008024494005256475311275829458245552383399388616021670954090395096229843697536057944381677828156635171719015608678501022971066937877214909889193684543867259730079749381103429453581189213029104857204996735622116733366350076432627405882954486157569614320478963305917252500296559546804876536262815497576765802778755902367873481625042453157027418353906499723714308623953642833379852588093656358087875872114167358200023785857917146541612112026034272557384221551801587463057767793952936789125329777005082262500819374164511416847373657252267778908745799682373452773273606299464292416996715508622928060803167877150190204161663020493507588377690661867461629647016770563441830896762661887440329705177881452434012512226794104121776172182888508159721642083847933339829566994034959379072820339780087960497013780702940145706183227529603485302837192226100593956449912415092778754613668231461289469981672588247118985447614664135974724040011672646403383299904015026352712185799138187518382154225304799215388902846165379294723637963334793127084664272273704354107685379121319034331192450634520767333438091681290392671092987571771480282227330708585902259139290525897400243757102169955326576133351851876638602761997003980523930527428933709016910236752074517701696404723753863828765431904302903579819304468286320454301891421607505169966851233644518831394315814046520685035597675284062096864840014632988026383254956272132582757344853558300022255133185962288649772494481966641528190407028797109505677755838364707508929280129921465508984652700726965716889740132432879571982172311902810990922494210691151942704477358752026602177872997393804329178321634672128872843369790316934859245577217598633216922910131299649345656945683126728480958429250935515615358682033736722013612851719579917906788879489778741557950785828040051987951437931024097351375424452291066587300786546251418820808073071926898391350492537754374420265701651485490390378491533578352391950918422941007958179462613046216881844121746806220722871046251493876491783338925853594154399135800585902429854085572504489429103113066841061052521529436405894282256195150902988534967011852089646433204187932153336684750090937947458624405009441979525930580847057304417142280778565703712794758093456290877047988346971693235516960591551290394654649194697695658010447721221152971788542420630144935999036470488168696394545987395664956844680082797406485939762888615420634495952047787647960222248140451871122057621282895120964242624397691077791875989150916967488496901404178146248821899204721539789701004100445191637463548493777672404896305617608574901906641992085649882441665925913641149797211057092004834635621911259205315949520772857285350227717869113431709507474177404611259771054406639288875718393323600024450260387599951742135949797649404000414409398680931932864233231380731072605234702226995502975336413333363768383076991222391147770558599778428742569645259730458979891618440091187547381046980438055951700629630329433750112437691659207229530151254321394054433778916278191406215516820884736345341979998879516117261028410632336985345662271408982502069128670444116902582047965765068060833893544908621143873825659946434978803232721758292694516998631267358751095484558784631407597172019624337085219967792883082041708362821886710429402426005844004377358753310704188814221920924607149133502963690584664488320319474101734611287867351794220941454660418534030155181556232143165747332666107989803109068170082688732101936459561785851734505472858980078728721154172567402441979028843225315410192140135091238671110323213731459405115614706721289593263819675803769072313032161582473040701388589334636633597677154707019773249548814517149561588915972704031644349512185974704146717150973113294738480850210707300489521237484215403899818595132249014418572919357094375241592155456929631150144938470339489307624355383423543950785791770587588732868726361377231317957631881191749399736458295599559616847144784415189854307741455943009162727770640067845262221886063381067248472690244026426741339072193530058424406225946425394836856547845053434905296743058974864956438929352506968728255730738865347979569737963739416312512211357236612420140264683198752349137532591965158061938726661939160510493592652713216922096224639699245339494168148769759450227569316017372978252259321139227972644699078707972112927010072893164141328975540511298607130045424497219982559230173355939919666258862848902801610297741472814721799607430468636839435837620966370592178003581516991294767315483262434722529800380095958755554513635248529233660366613345215784920268506151949203452902146178514203242331042284863520896879742184540038734941728320117627378226479639784677713658735111930207072225600375074940781039463389519984544166314322973160808440498281354303038336316353145405299148316425601251068208565690016030297291658467891832210586994891004078010769247782572806721865866449357592377066019997260659525543327336425038947983366014319930730848093451615088048076463666752908667169362062492873981488799043653338716396911672736970273126537428408609734869729325527885419930190416842823213958579660248737540654392608495318634134694686789235833606803394455761856487011325964277558202631925680997158944893454073545166932384492149911855493382824457707668823052546979612822440415996689237159295093923732119547894507408067744489003806244345752246115557238942268385930515277549765454318083490238729198467486931626088717921512482924761589351414914158904235105073534967969487491863344304793625203651055672156988823952034980523015312238521251326166449473704612481860990143956546372710175562161122110472247926506088187921878564564770201918708174098274263885178517823195293419048193157156404001782600804746415453642585796882213147120219506870737039312153332239429647101433881763991811507421555422604821990245008205203155158803107676568812198575038451204473602796923884894398504077669391919178038513117904637264578728005664995015957625302767342474903557787303206946697620679371095314087874660907190900547871502275738615622840311999793601481740181407268559346424708186513726761279734277641240894070241225057591283320448767508382482335490062243196257292826480566009677509285325730388834182425044101944383749082928907704415181513432790126318627093441028058333197183938084511247877577905287996142480968537580976667637015694843487431747574899146388916335043383627398851102955909972689955904715112917945559126983594293067385743048698989855944326198964253434921711717619498688138115373601192528376348122187771094392593220573709562698164645264593052541308176804768491799670945909756270994574641668731299851777131558862076554331510263023608492235320184002464426949822200938856198141742352942110120448887865176204772310072355773711756964540267737869878293238488465868548243072513224599718195176378206516770173496390729119732315211045083889636900343634564977138841805680298414053230978368787887332357458437167785962319311821299654426422746033116562189958073857091407481709077707206012582553725598818255400017096790909741338551791505034624136279629433752798039212161244942285734805540929961742218675526706638715401971649592580419828457272339435872738491298062505229908230414417964201863239335975640856264721140987102756842328471054420476927372279586934325516237287061306248948317683005950316273539272221555960371912609270563209001688446422399745990762836038614515601146790867195227442253415373563043636807658209294481681575624407583542094450414818369400724787199371608074714370480527241227205762001482655673842585276152042257561677566344890835515904034755970552781149851302508741216556160585427292302899331654735499079156121786647178134339282499415905014092363201698408680599677236463118003230917231449065960183944335732467994721363667143093322687259227699597866342198486047640383312151598246334815753891362137470506267760949391565434449665030715756019052561493434123986500863349768772582014261603587642188657530917405182417491784121530322238300418806639385455889178762006878814048766927605976263885084187671723906882151375344690742052796875938629657498654417762942518703009114961352844389205145007155110873094664959499070899793052340129573493866881785927244230815215906606499607550272376081272387058512137274552888617735445449593851589568775195180268779856482520266240944486188286727054207475043536799845846802118161245119179164083882209778864182756810585076775657286484828360370249328715819806043555879980375757476331720000544959849872516688565706303352876068093081590181410593721378560788103151292531750411050960975165425371030855174854899280792792165082670247752463749983785047234114872240388787796856216589184157356593968703031935075029813828952996830357304306071207546629980584795107732290419143068162870295090071881413421458284156116327645897977943185244670333572201518300806773009843428145985559436573897199032628610071674691150902659464279237556249374235121744508031213499874102105040262541157631141230640337384023024844739361327771431778326487227872000031324379911584541073200832547176553357788419738811198783081161282533435001379109732645804567535626928483455102531756976137831443682524778543069370631432550964076224942709697276210616798163074586477313621029169131901935053917363387720959307728802113849522530852335642009147582113215081416345593732766381646209964150418142792614784856112250969744180739940121864957617087742985390839419901188858773363731131301710135777903347562044395262607677976568538504151780028622026017398315357894904544427165705596492052223188354474283111934696037119412186093964743696835216300841130921221376123619315550911877534644560429373792151668962024254716803778182746385907968207356409342994334271792080288752211254331790114149116004796389603318772204714551925930589486933504992233576520706393366578610808592005775957357706056346934576038849108050669551609381069436621287588273316132286483143147176721157046192356146500377405387217627411136601782358558451731002982077899936468177687598057719690442932656414928889506161743273954534823316663997917484984027478354053591200222609439905312070766019667274321466731325059919615374919120610926487819537779061425351892234661396095319606252617842571586992437826609161717464971634720477389613148671942948249029198941916758308889233973117415554172680947533102737797997098175650450547360227678621069754045059261438837781516179253790106064022916738026962573434304645300421104252766230305520724757393067927263937131887228801269585549042486632283070227740155528034220557317260915929275132872044337772363815466022426272279552426404790691285346647439567039015366644825118623402780402537808866611353566441069137697238823654053705720326485133071180018862177768059795321806543675321022250428000439940618518128895361407337239506631151707000571386315302132936855380184898696963028510893012021795064707248775032099948367568717247002905581456984051446746945071887173763680287347355619685317530756612015693057034430987614972306895286644415640748345880898652566166437972028958684422039218194317151275641117761475637140593686400010358802638912596923817062276371676287480628381602275941051146269228880912943302776649594724973844730933763274600371084359078599766718005586870287301832296672925665119592610059415810036508929062603999789107646931019522717446451994436169991555641564121510871438208088680752297850814802286234135318439205666397115246089048131844519231492910632815402792248937822825154576827162459611763956688646174239537158657446266439961554789051637325218257833325356445898929059519260586597986713448274478262666789841919627360593520221496681570436556904167082575274458817572811609561481857224369546475050830284430753170779235571329348761178390813029105991835522622374686711575705937749093797579381952473316322662359826956998047343344026168796547513042934616242661346074732526957031148814696916429336907194815454817908292910720694297318759719731015426199335646153283618228701515590331070614653042170066882533797013234495060714168352686098813122722054090309466460661858579999141539781448477415640822589035406449064635106154337194004013861603507145597360142786234514865734796217978467570218989951333364438192919053008577399504523493495718968461271137688957597933234953320895381453984677028512410913999962409428615356154952015641889962125930051264420968659725289941843503668188048075291059723360083654823570191986855092603500487657378829516292374183271323676865849464000596709506778345361003674425949188581955959269025123931107259512121156338241589606737480071832468778413078096938241482915189560427550175420651744208813401454360707135560267634995975759600410361609612137736218202235639801014559249360156897148979333658549918634973041034950079055097103732948921976405886995320189664933508204310048852305942984868017855565645389715296386871398239389278862831305388987044163387485323665505625430238286131768314743993446156093107653849475846489316215158358898933919567329443347903909096450020152545297422360933487377485709060186480705169912575593325182030441205733891169249497937444418172101800486952748158248607577122172413829852529767035268850421330346370320590111276927084231224737403990344676189570010259178589661470456118869055431800013574114545384809162384560193982145769801540367447309332421416472755521908773969174173735064145951846078512401813774545883762985179066094251799695036587235132911540694118558004057561078043579191051543895293017860705688578117217421391550953207211970898415221542531647919304616049811760099940434131909911892155136512261155018131107351940674896418609402848692830550221199243438663096612299837616589812747306690040713313153258193032028149674557028927119805023083429490724610549109579955078936602634698465662818805549010438789895744093141529641433776902605064364098326821763362870988262723974302300550638516752892264837509508861372198333534606984890685568590244467888633643960437818236493160750697952536617770448078628521046820932682668289722071591098008197780192649525383047246360795893917370036932896635802205065980285338702996809222867542712913386999402663357736086375404720211499273339955963867139414159950635550381622713179928761432989245958663210228050727201766328290281395136246392598794084119774242147849748879285348132922617580429695360568496416333588361246477604717663033985377267173732323243519297973342376460670072590569784778225901022471861849551087004140155276349224305850649791746999412247016670031010443276265309930152842068424685952359105309696810584311855103760808536810333170953490813488313117223593774387414621839265017156090327940281899356126944963967143320782904731916666780851825519771728800627735453991592789034010786288963661157080757926371251575321256434587976758227986056217853904634438782602247698316447309116773137698654394413974813448003818298103754950588539835429146322753291226062391782931996213986918817711118424419627718789923057350447245775383119433851793221285766035212168779011404776589767784356963513653291514930963803910475450116996758780279997955389558550059045533297935637026407703334811205596791096608804654458199117569673353817940202977420844671405547625380016657961957199126200807816682028859158624857236155994016255477707914111600676407826080771078947343728991156761306850732249631591231634197588462764728819202367627163751947669533254204908916102491648373349659172708001471152710129089029612110404724620656228209632836266708889728464849194505485241475581339237736269212766280901070396032994626272509471411769121429133539751301514317746716858402905968622217080111036660714630206206422073967367402754445111531868035737119706126321435523468555443824565325519496223092442226276161810763532712184867110387486332416707890468852233292111150197900987237667401554791675344748589116281268686736042229943560768269783317351763941137568187311853109391473316134714642957480258866120984333362644789232779921718938110490257508983329575231138511638411810192449913293008778472536273658801679273239119566773773460292311671472527543877323954096440741744930881033569016899447326506293568124074685916892546509211091423164339664349653553999052260304711487117501951086036214378879284074498252703324251691779534323933805375341542863344920057275796819187421842721885884666266028133915912265087032955629743121006084764623824061202097408858510971345024453456269674845217493795199836601359599598044210553393057994635412156592603739545481307090026816164735807530907005794698595121857669282043359313336580210439358016107908279426644878203528015749847777187536663886871469284922335979702018592163752637064707239232807117749755236536241706263154632700590266304024739804533530204093931304973971307917181514886323851603514091871517272596320603977518189877379429833548962149298830651687972617323342951860291979123542091466176185808120657850975540518126245478535871423498722824507628021855541643937355728734131770795331826410695802318126782729262172479047867331323026028790147648543358099932443723491884995859948625830676000122047336344668680030217744283089567321206573109092985212685308293535203316260961238719270474910316941151648388474797456771234335574429812684461432753371060377023811587306886288969394132363006060504289965200451060374867696136491725117214171045397236983765748250928625319917610379605050700474527519870692438307972081336510745808625339870452950365773947943751943255366001421055646414822436061646770791716585117656108592356346094854976447796211655113187009699029140731514839039089918159185783326502779539578418251970561524675181074563304570829594428891506667159297604128033547451551004399493399113574003681082145201003716633376952121337532395906445150652333790747504285781596952756961817847042381784203159924171121572817531382552899083172227080319334018499746246615068641371786793594805932728519643357368802741431586900765208723454663736398318691202096562075413488741155043517945705202192086628621570465012959513127937440724676204192266556744533344472968171487354493873384801665428264237833848317565438333617440873218792199714309719390756152899799193348168456648698943157601438028626335331361857237931672366063675494380052529671399740350994071219337375857120455594960284445640461306033622263621629341224576151165419387916848132809624695244456954621250879118935398322196378999498705755174877188610510452587091200155027181112140083303394599977286587045234191667304068557004717286117263358849682710717450035389033631066658091122161122795352059735631542387862792211740027929927660272309100878896448671977510644852854236760680678328702716021491220890738359867916779079846546847654432886332754592689976471361182191936371970943091897609589330741950915357899815945626817403109118621361123870326632874592512380172218592375964203971780119733013545486303115628764539733301035351993689089171658211844720253940470931783306012396416727093121636937919332391842597730527614792293021230131636529561376233305284546377449667838557241630555328610532755207843894044247233087001494007564853949389708563666247235115549684263707422419853407218843317118086247851099998176232258058120204907270236751559960385584667283973473259596127104496948996928070408723556135501883486098273344942119279511596389142170133713625405959158400657637103362185943540907214950797192642474168788661350962013130319398165644318423191036741420512556863328098552077093239955742204583728924383094811084233008764153663084724168976375194193998480863927695317901643727802977688806162490841933764103645096126040651273694733432136475166867454187542353324904525140012619910255049422060899086534891218519778520803538297935164736163639485284975628497148856270364254376152530348567914218138341546765630362935943271568888511396453417550113555234226609517738178180389386443090830539927386531988392370825144349766957951254066405582132495347608244642379595204674037169104022865060164401188212816887278392342736929260620640964091959614590431451723416161791510706177671741511297009743626357169179809791310760755444007274823165853639170769125919005551128507328081677051347490741450119502481084276777357730810360845003755565026865827089490664096114629969042922698380843496813891492479886224871671281240892627970065093741291428012018819220654215938973633819322591270713038489421629319110049071492253628218620356176446854469959430764190727133878182633847902690514134885240883415970409316671764584851653904600109634729323170245268608078649180077024542605338592009166331507927787324832590160442171566874940579151896771159131892750178044518249937438743299329143554374680946834026083464252681707351360267844117117547680302578284327412712955509267108574023047469600264457118930180581121892575725002417910664730201129469375495333839271076783815855808875670613299964991589394990408749778235503921051363016467163408622693653940345676951865277526856031286808815689169916046013679356000288784865017387036118613661682337006376249017187035483916530088806575237376799068155478888938646233804336788144738626369751444635331513645033652509877954130939941467601122228501278273455755159561984487267288862169113912786444182650107159343331816055288098093137576021954484236689181404876129698357403680117551891330057226994759192287243969471072449770404732967513384853728989198514487912693399562727628630157178270573552384501936652886942503015712886490989930558977451480649740071081376020676606100283353983207243594567205949451216844025305614161150472376796871252693156319309816082329795042589816674800878152648677364144935695842879538795111120900413882435069998882091565554032892502288051416967879299266268622246705254906674953625013269700318245101140735192981527091168287631615254533623132422680452228896149709173971135352554401236086188154541470853204672299469390714881886033268282617228269647851698409755613280910904929942058902099758680270118297143811306166501656069405094174470841365931729460368323148867837834015846665262779381103471856527342901126469689951352204381388359254084508757429340483048052570263674681999971113924994308238094814731925760115285382473572083149105271608169922281418675329911795524477487920246982478357701790581768433766677768902177649062193699589654676599694287218010978136921367446220974783004092718190513763561232548612721452226168051802932568183109314139665924531034423688433970673528726638300045419514644230326230190718975985612470235865005420759825248981990750316538032495026016937230583148173147524304359424989148791890628026340912272673533448537779853276889704761672615852883514060352527088519929217133070578576387493937455594009676153752177828011626903772652898962034412615988106321682532064438164061291711721200955674738391672229623555746124390155990544883226264416256871268704850034492114157576143154878838226244938257190720528224356540306686433949527866391978261966212889029317080915069335476093630695038779648380650097087712584207442114997169855615899897478765137505785362724536521780662897775073271570349854774716789029566639583511119977254308821083008387197030016360375482320318110345196341997195708016263754256069696618343629726907066223061431318636181161133168418495161296479946354081551662886453122010561796238101443846201413252468510264137934116621666604435554339672608390029334249856059230477254301604859689878161532425234889479927499568040575087859615846563996882770505824808037526244409922842655810719653139621474222234153507700313618665229024242427339752232201197300895968910498540544742769756380596262269087884764367655193756819519963044228090247196597798141122997611309966894840654703043061615428405289846055561052774316709454797654256999443256151512704117768402472629905184687393844031749092277867137465048775654003526182336135822096915951653100302994702612137983269955154794300452825040411617899229947911176412173992693774165820202835024261155795357710192869502646054359241180066807823341749833422352511940395786903578680997957355566463481841092353566380532162505873396127301651792091526963077416035393436148765086569589441668759310281972270842130060698903276812481364340882914506935350078426900283389692890036766306519621256911370825149526413073002057234260061434794784184662076337424740196523490639302966223377308206402287040880954039448926023755930275783818672711195559036264381803694410269895609970224026851892905705634115763456634535309178364491270655146521452745160957092696019819351482504230830933240208569382325737324655619783805079823678391489644132121190325383719305126121435120543467213802491720844572406756078389118361442061721960932418878715390653119345624231430505959758138968001459327268036990315314858981784218414086270354132340571406372423344162305201146005372433545440858047849152738356053700832984194419408785772894289429890556411184890127988174242713094173250224649989776184995844482431963338771360641700505758811206260189035461258593451545618175684097314733842014951893758158996012087525756276033295003011831880956429108679299364914087426322667213868491522412990329146293202682373490956625790320642804533851675572566335964328298369067971544894914414428445736613121471652577292832283872251912278185039491441442844573661312147165257729283228387225191227818503949144144284457366131214716525772928322838722519122781850333184575375231181388910468730112025332934330332281767444790920665632501883887499178312452779568780325185708787710821321817542299137029990346340824319822001818143016950158675647723184551735160193539741180681625549863346929742793638368312286209015008476329602715420554092347219774875557737277125358437929973367550413539009626075460177047832009209000043703047720623969311236199692306945192122807512806261090339608085511993936257664560584547489298456610516437763230204762933488331366455334573480473571567444997734717821981573926294356614853325635257380075373424585696273226443292539121854835008471872615376119359921175544946875172209534021714967332300854303127734300844217039223565805237469978119523847444933383738577485114274622522039346757212327850661052691327977306346288737262224195846716672022151680829100052670223641512652274077600461979496685044241492903303752615324755653009315314557741560785488843720415714060087651280761331140002151760928982489862945062647986397278120873344792984785453151232933405140684725574692848626315035477092571914420142218588780257279128331177982212336807793116875865477713999462395439860017821714044511587793376458252175919910881923830051663310282837236134127214072246237953912933883641879315532993289487987486153861391523074689174100662618607772267913487136322147516568508441991780694861954601934089370819232141926382775337591945703264502363043475687173452958399553670973947311374513943328197791122226939725459124938379823126607096382225967019008381453286290461060658685632097801508542233484811059061738522986205281789604950073257042722202039361363824795831035432598550726214034098596277860172168955987503032882817680409468520938864033636523649442857653338109795334202587523066099473777917483409964056208373304316767108759298266668435467009599704858953748415115221450224994544152838657802928530176585629101388144172669383790207050034191012138679134635465228748140715338202901919235146721268382751000173948051792235759103106294117826715838186378195464884312297363020759072949613132264235510849102649984741887018127403987203067935831231548287878038686720763454984951991134450991244247310505227252766832066034853805673485126369319466529925162902626465894163413960915097218723640275500269701088386832494142125712048869645658296361609865368598837883902802070607029639962089291692420117564629212717841443866094448415307132753827418051247560470084561419607860495448592558130716152717681871096104170286462445106386992799031329802393832292307860024611121256253749299206962360554973977933709055091506159958074626476930706146547336572953880108465930773709264393270961733589798755133298517353358057619820375607173964951210260568242153539432206578780654333681668379183925431029629978625583138150842902346041464285063318207802667408575042965493539544948651852756470881435132319597349789917141516937325688338933162833896451848870322639893055689451839191243082932515654023675385004309455227522986219363499930799560689684466187459894748823413664085188532193673114375894635657021422230371741481201272628291057331857839227334795260680041312240444469069570034326579109561734228465513830287770817092800437032752644557620090294898701726471822893276178823467995953896680114028668705263367060063042612994608494995638275599060264777652197025375830641181461287543876098578289963422105950225341504398260961876098352165231654331697721441251770038039021598137974891320292927755438711703391163224807524657249729623124765093517943567483811431528641333029089123777146612469044864551164926799346341556211882281756423024051694895444281683141404904380578860590107370067182984993650407494702785573862720327108426027326956900641201555809469137101298425529054495764506457560037403149458790821054735591136399067278064814591917064338706971477366524778443386302556983881025898793095019713128407089187196967493940026571940572215929586883457866981031818359493810271931161525153017409040319451723832245963305267862642100074573633679726461435297149888460552919078229572134569264638347921759405780513036734887954494733446456067966769127826799049420036288069900260352216652526648809722467212129461678228224742717834105358584909381808438207696712262215564925244641011600663839118183087308563542267215017218891349111443407423167201858015440968394172184552924703066633174396992032099913723079392087063326814950270241836323739355756594835586434275852715303647534674601181623121808611137993248354514822898630625369332793747372640469312673756534019973009076142621228650115856894482080371428361204858316174750390771287604650336123613522431214204911409620458582922554357490090271711431005620277966427328203684088351421899736766128515417417015505596692954335533849886870232490206106445807169228633433918553944346597418310331545329102591303606462266687977945573490454674882327531737599593723227310371044521133115338289304247739724195727440116541848431556489404892135805570855762755849553488919138564379163834240893960220978801958750476141645787338434431980873515751667496820037915379610297349443210947607327004636334366125907117926038296577650489833996820052846423420685449469930387124964664248581160442000466693398574168555172983698292635849104471793384468325043384471758725269936686233757079858637995117647437877422102959326217388171799211256496076654905036475301128460597199864223972784339196777403895823191755732599419379008549282598066076789498548433335533052044297814686422621546390705667804793891317765192204993576166388219632235722413875804881872875547783430553371416242915918144072491018337360725861313058583937963691373160504638653787616199765683527896039165412211971231637064638435087505880465755319672008048106320831182153795613800983535595260936370006453170806442028883772669082680094247506157736530695369994647344426417990880723658569162389963651757807623731861366280300067759525456983035935020931034010665488238760590630966715258031902701805651077417965996417788950664060278847170680779275557035102223714730679500650960753805342639820261540712721378560322743288616802417338945979050503213797484661490309530174023009549575261795889698360970314291408480458384201770593330872789882921065398608549784177022680019943172312560727966935093784616738081453471081329376345219647441631933117869064998248237276162056150244439447232337910696083968856032674365944761324366862391058343526372587026552727235468109736136753799885434022478297321958647384707984985141728538675277923065840917432060501099102238929818938645721604168949234020855940480597988871990753899448362457591817958726478548243687178428051181657010359994896167564581441177435999415574156405419809407770607818178732780883923516652729811729470451824894886940253978497040401257850170852522948003264485539829339541025049341054446143561304537123696168220242708754680322577722467645386906917358463290996597892708572413606852947228418998881119769492577756734731492045418824993538607544853832734931602494458301840052011005971211224881899260140903390584301410505598071884441547633560933892955827033563839189207244115662413634679375541673890893091868608031263789230912916607550098980840430877173868768493062385333509150410600038306016394885368792106123894105743940346062401637185484252177167545163976002550502264396115259942943086934986907462978375997016129503084380366066005892265852930563788669584667848757260025329183930718547261012014353181230082628245390756526384816628430671241409153532301737357772231705454533185733039863611629092807965140007625802958683252113035625213499854006783290579810026266376780517206247540163537025216821873552872040199635961887360693473067284096081288649892281654521852408328279128184938636352722030085982754459989899958351115743687878881270485571738148574030780362942048594206443341579016938395968153358527750878157439719243227798831706054634005330969611599543732039412995517719740924937281938691042471916807457558054131728168336553796527595104025829376600693794847630502436866930874986129115155790299089147511471436165509778108916891593890432286116309808961601543654239707131733987625561383933492789060574714538169156926488201510262147218325034091656245429353117328396837417555069788772460439855626108533737402877099728804761149157785765104752908911381780654692220721713254159467978055595740544953255877928432324750482025729610721193054272034454311190184326515998329511924254995688662924512061554435485187784337602284573185525530203857806799642333473943283255079768143174935290365355235708336227295402976036224596787022467961087290065369158110329772411271968718463171201531087202282912167851368328682889984100630830596997329512401834379280807586687788984960437727540275895229293668539226751399282371615964473732982701750908375680274466691591111497799446671135691088924379199309424721308073081984262593144347965790856700825628858836114463307069019106360685995185387041710623856804324112299406997697652171894899349718804503864321759828643313402327317350344875527937834864131041994965955257706690456718435502156201896727939734268216256860859224881131666473414298910138757127570483051459436636099246610627201124409872399971042075654391506863102013575984601467302651199034298650639676000696687958282892433978259058748567826269263303468372332124066157760295156537226106822903836613368341504999895934280932018654247036073590765608162195997593438201724618076958178347221271503991239373308059816434946231367174959999463042117638181478301910213344735692656258805710164468798455661720375874281490998433930465239312200035644248650280200221038723815085543608061085953817427853246549792311015101812667413846629462674003407290924306775649178579342775165295098460009862821986519350148631413113382340818641810195988872295935856034372242367239601514627896565485335331740074198424260136066735529840754402573177714954021927548762566366320979513483892323984730934282729939095492262868525828037625710408140414070921533779824712193346482520718387853744500723852593605676595762204021945192479291241307585464859181278455595125339485377327439546532520168622505372850013045372400046474447907459782510294447904759726899493753746928089331155435505142051612363683441007349842994707086534872826168261194995444598888503596079143671119639139320911200954133512885508992493392853794766561641592545275885347906803485930421014317785771172451137418462432155337224056541214942322346734100328640923722757147317038093058466611410528665349292157043843719387582548918498944658974892112398043559253649190865890669173908088675009132330542665482077157364025208162483016589873036086598083796157673641177362734669761566653921348293456423991292807859979878815204292215190914169078549736187251693099991322700067499723351557657951436647470237487661496440492613486082997609783626049278231738894979224685209775995080498826972392495765987223064695118767799160549567269969085152582265295227385885439302173427475574391874411376633994128594831234384848812794576013671006676165974395896325545306708168429451211409122120091086669899891500102055692484852372255421310716613919828276574298188291751833720841752386967682805910231519925312801445377221647436825950860888636443467208040799574561042901019656088083930982871606160491216360458690862228973756455741357430715910893672423316644773328296824188314921716494972514011949369056709529615270432919617564101018514059608395422101125300432032447729045095686728686928379789944533473254078320054283548804513088741363193695581682874607904656694590040744288418738123256769967164692679986955886052080637298383211238624681202881704348155814062949883062634593344998884038652605737422307385786640002377415312885909455125753539336940869444293940752218284710010776658095127567020147754082982594365539007779061803003710403019109218529328478241165518909228702901240416004521493170935775360816342085655233201443845388958342206841713882399532270635638724261133021723608875319692482011790652227508481546536063468432083525195108332160684317334365846805913015740878701822959876582283002042528355669320450198198817145826117159840001172323248462236802337849839057195842083394188330250004100260037883422114836730547496096779242970449998379947904405434971089626589676691300284990960386063046240093337979092035755162551666400571121877172390300150396095405184581699938643044980401039916128659347449558276066834824890933733862926698964697053174156089229666242891438192737235672603030501103415970150390759411599156179251165622892441767557720263927108978526059947131533570045904830124535860224570771605821233218529587582203051937289020017734320619428734214752378860830070299796531556810301128799258939183387796470067520270368877240584066436919090287438763388209714580101749510134645840281278011316813989780650900740767464220963899804533262076514960825977452275842390413450268461861681457953371759462268303063666145365992028030084325285149817881771272573867535502851338367923056743243686962027275690495694721422424679884360411922631691556788276484222391196274036714598974144543180061688629337635623975254816109201806289442065086508865174388445174402936157089106653051819134408352417385390895294733126909002288147617359240547275574100872211860248070655273478546467081003325288049487281884647664513871948464700273983663967869110872249068944525449930136135982302100966496626582497907417933026044796164678961217630473547094105905476778743627698111464819594676539533132602160451880568520123818538359935250905586730481695893931266888871072451637580786918529804644375984939014986408867291215615146935054468003927753771628002844461708872834613320160278469351417103718981359285654440473889353364342252995356306714864357582266150708472242121395749058812364726080795665391821078069759191962729961376825052719016801350182593650390431489237422218299729435910504766510198435496771583639035605090274409454737620008662551895379897398695524944209452836893729162255864458818572322005097340211242024270133813809750638707368786224134616266076141865890367575672804946851392949246947497670448286278503799394283278791220332971397543843644722779419524830053313308326594126816548143183672418519071645371183945618853767186114634510098763556103968824034693227431638685638936692078262878666463162305865623208034467033224148965844290862011917977518360789811784708762629615319400347815464050634565985845395933678392047177816196115197815991533483239756111621222104528968308713835459988065857801354859374904263956020172957868115494079887899895278594495312912475824817137108859096914070619330361800303323891913216840242371178559414793817512261537355292820484620119087835578241076795898728264838018836306051625874581323807170212707031160159931956653211055908684463723011219393528829932843569560659719893014841894192469651419504713100362091384684087143678688323812487187380582217796916687267705286949172329692975741293715765031048614982649963942542515355227892655817659328122813519904998628338917695098649870938852865224641624149800913360480941616720693342425001725333590241224520696627428380607915709746101932343274422842790300921971678197965979059549127210553864472407600831000588081819072447870343657454279475046660211686153282079367042283157677410978706565288995809215120790091062488938646517486033663048808838585836547541959063529016960795986671979195154726753999884776218884785107366055679223745515800961273463703729547099641448954403570700509795971249707914989405750420165030739210083757394132816578085719802851130424796134514504277763666054870573901649799638800674927633569990174214247086042763368701538895425544860519661560114570743110126783606189763376540859558441673969989899171468666484090241900149311117346206295823077870579486764638556758721099513646830997771609454655720168122853937767374099428303951557494531692065820371452045827753578337982711615753554754759598809028882500151326903062183753558815228008049946219926313951475900767150444120102864042232346757214652225543337464540769554429637336518329440811481655311231788856853449362565109233822325088751970064021785626240504392039311551274241981278661180457520379031352263821500210772130502406624183002862477655911114130894749764170442763287774736669514152962797298473622901963622315436319141841799696896280359277506155139875578536726635378140081715318318793314798031663073541838249854774614347582122035033039491346267250843739731331346134971878652215484795211328065589745100203248729792239256892753749027042598668561490405375284504662614426425991229576994984595616886612934274152168604536950858277105538068424706396860778132899310628551128799543943367009919152088861445556457442279253309475103278639998286086647782469776693646959682093306304832523027286162884091854021075857505952335491745175635055894316749129117086207384696004878978263910905625739599487492495979011090191614659080207484962639358279265058364767670838301196885550505186157980972185298078202754679077735284594885548642095718480957735502641837966220105606201767241016475961823177144419881009610279477760819625624682085457499375939175577255504390164427090909940333682021018189188094314468725119448839760726106428947637705083816809284728704530854716107278666310122036688758290646249653294421504042608960795596028483768115833106563981887154102229185636375546808614676806062617591254751326265896334165706265117268170549301094065863026692204229894830237644323671421946364900320018910295105537319742039399303809428707866552914769288138564587814966477980823314826640216655484671340624018597141217542440978712771828778534134383738258099537774555668639030970006149284077302470091720199524620624539198585923713450742399985171822495428895132343503182334483788319295955334879010992117189922536529429365336258259539094655296358137449729369974651187533853748709421770808174570174225160409043884612157412445285020237983903699911389696734778804970420888639312843891579868614995357206376948214920930628125131228080499666262553224283839917352025667452522990840994632586468341113042084589880324142878241486082621057749475330037706021516825542168588825520528913719387724986908202539336294047304750500997044070946935891969900533478304463581196491048316381606807432397475188737745048539320801189209217620032541285900192128507800878010809612186997215672787878360378342850502233591047386100379003368195821534795312420332192379118697973810932850103678278806081274528288310391831570441480372715269111958913827350206266167881367389300589434987192627542175867837758616929115641969549780500502717441482142253177166456489762559437582676430949126055292857753556527311492956087911082159619401757024920446262077946805377695544163790238444286270760013358829372290589561353109924487923773970012638010390621036297100540090233266205286855129238893654007663966398392572450824496898926245992439438450876557890902818985683433451099619638409116437670596054841952535056878723052067916205797398008695875004656119615450401629767770096547018528433497764467949602803722422923120925815523806451507317582639784897165956107629449587379456851984590609369134973227024282382935848347620097279573203973908244049026524593739625729544911772960859885910979831916191923715574314777305613275865030186712879223339994092210626790946258508116928279669238172379855127629935238608831771468972857155910479691135290085367737548995512471868903957446600048479540144780288223208242567018451147545838594639977604121232182945120720779081768233151618455421959874974455890151199270623605189634073539348756409531560340706935958257608166769558749209824048066652756245519232200325145294175539646827190235219576379637897594175052158675420192853655966620145045633855278357125671205128227519609295390924578418855401271282860622031840304162523045733499198620336839418549191744312814170274683480533123636546408009522798679980816786143876702299176420421935770303028892406338233711883166689234725665314715426197369248818567744423683067628580803557766708524939432726759182713058028204744986831092388451839656929128269141358022850879202638155759445885778391763041538247774502736300479676856895905742907753282403183887419532847250575823699898418557360973793479262107564800127606600568485628952962703650334072849924570768216606004308519214499399461592740186790670249250918808425497538250005736411527656278820683168374561361164661059452960987647876178106573256994413006960404412757484805908154315252191475930781041409918043677066395667263443535624561935640751356546727167909411879488480868092309383287382250042851308615564673823134489119765303305903494885070904364085511708968159681885355596836776708287592695900122268130634079052180831417534288387501316529218766333357431437101016347796658883618869883499832898116400702596550204761199068845930641188013743352809379510983052205865755190255331324739355184215726088231016831817640972417966428217055392357331823599721055914675809909601571254536259146573583451080849769670807172669437183081249664139285293242058148352262744693758585695716870345022377577778359815858095456674554627297947307975693205085626405035283025567228667754448284086209981389793037092532642596403853499617054638608372303148948100137199901319701262801084969868327908059952507493775423599997878374465778371237535757852677710638143561367890794737247924261815992801915542363584092241092695194986758370140080691259459445559254670473203928004701116001559541702028795035929201770396860113456304449233397743545571654572714951735345290462215877669321039725654053386823913058096600212123248311387049072616349881777525063398803735283044137885040535291419573448626221480332949544888908545079248054268374194066918855516757216622110920899731852667678293526613290427617120717343300234525891953735574750926874315293634284496407717856739958438148942104628518103849643427735519244385401105600364091860906598300233736845914995840144499012936937258939528898348115564558106103079454580475664650489357678527521118340799459874420567550698461628297481692743403195744811212692198913243550319837054664442496096363374848655871436934240008426830694664726867821605430760555551571130105499636942141201452860567154928145035636088579354204498831255719599558707858336533055121083928499841126847905712972202465501387082052447492723419195036030393946034767708515347254338076913543021032331182709941052543731637179189960813384440367350920911106317337658740160001869730425298420244888527033172514692497475393198235035252261761609438480970535124570875131868926737005074427741207097904073463122620529000639189290990331964353335337782773033800956435520237281189341422221316384124662187626562926213165374744095230545401691905912102983325487384431499690081791766624445625710550014060366800133249580906410283487716419356471430409550576380385738522098716167959104852220807083954438166529535008774606811360273082488566261392866772837170303237832334671640641865105991624817670706345653146764074492658990400249294338203476654827303415226579042351013109297567830484813632976397632274673272990989392744963857214412908487064480704661630671832626973018955052261750367044376560638608975474809199526394403536046543998237735619024650269312958914022210598873408816322256258686174453244115894930355509977482474151507373411947573337355652762741851916424514620104987826294536895088446232117635800351184183592675986429712813985384144690969171907995167404678189358750274435035511807996777624987062847592913272616884488849391411287453205724835916236067416163446388013123511612633214157350735873789089864603319101047904951088053276243634380195320531364134355459364704198439973273192818302576008576753025832169671464683435884003914203707242670826017616253390298986715267562219813060352959484464640403968856006481766109033056079065038768968446731694854343891836893537933416898764610405060241093598555326643129997593902636796969251376936926159102285117216541488921572622359773667701463984585521047074763889722549022179557834738536300819334378988748156802769759994951212544157027137649027751507877994910956148957426227398794033221282575324578456195527149717737489231107175800448526108753397144093342364167000739474760533876638025429586355293691303476986899061333624590847353805299916952374065057657039349015473906556528925808194469628401221392455111987603807405660994105231164360192568472205328510725875883708878783540746177976015317304950058293812475052503021700236109573670907840223511622259723813014440798479181330321054432443110271979100591373809348377586361399771943672006559245699381470276191846661211804296171866528310695776609243771615983151245936172801039016365520466193709252512536313965592011778214276801942804765865348581587470311992677097913350491107205165243246231253831574487512954156035527502636796145461093444168535781027313899699954686734351810344325525951693002330050592572799781590482022358905260479203482507504217173455466425312528525947844068421333789797245599838145290249134127724342450971795118644615062815283928650237212926436840813268942316931518881895385268180047631030778038992441215187198582722254498999677875145879160239707666604413330594001772519682882761813890254014214115403222188075221493138730394389483863488048858725731296054402267540119444344271239556902379071500713861064198583888795688054863351728084446447248132772385956105213013091015106264293276316247222859852571026371594629994013226550518804465739898003775442184629979193304006051761618798602655576076891495679624033020920353382300641985751212805490876812649998662968202160083935774256923900145096765518968300114985803950066246338616802255066870759127483197530001455406015411980784113494829465680601707418219448269420291459193117972944253523513933101121868831678002326637691951938989304956559636443049982636233222213173795863375272901598026762438208490894364283124967962162500163529966893044625845804167249071090414279544743227764055860644979937748159790612922202930619833526180042611796654967580548290181068947372216120265716263043635302282129337245083943534370967854324380583128895052786635657171288036985284548714950798562466555779317050790289986859714364593077973507014015227544766934198239263898929453534319021801693875850287786879702046168231973519928076697586512760646823839169601486711150096038459388200510615266462562727086373994715025771810723089620436264155255715212790458354295905910120518508605199833582952027644524251235773515361451329122133578341196718707585660635000297664587218996568468098354225556797699786152958316206574320737210996844061946085275213997207746028379618294067782659809969835866089743865103656242556250842354354563015121971111673283365507058324791727356514276941098498635706661880252843453611977423490001604109135980658253251047772348737585884666978580299992241973665041155119628160047321576507005166289845399637919414471961275368496384841840783539219495160760752984767084138274604403017707579996667675686125361051400391716817256780501389783718658379689761501720984806022721512087636711163552935619613040209273964185286936047265139668755630400875358568683131412868609228255512422695956799303502490113667709364034990374845874198910890189457051985781247844035757867139319708554989380999706541057916902095988974987384472726137243518065616499316389735111970331039397804092809479973433772650212249714340982378236519658928862792232779903941820506856983767116623772151441202276633794917374373422831797279401193745390490579714461718360256732214055219462186285914543896562340248945379811955964968707073021860780513193094678528484442021284324993071541356442307938627252658520849226948439939485305352727068233586394860817057740751697385212021062895941771607925413069913460814382463286693523126590734303668095385956084501673932290965428288540978637787221825907274341956466116595934087134481202995796040005764146848563841920840258326855212379549624891158626009400987654135858706192511365371948148608571077083760209723746595531144030733949423484486152523722666253172090816226940002112275918342552982816899719687610143851919012898807424280528355553325232571548587561447752011946801115509440542965731019362159591875821948220747561530783348030085499433087398213402707000311285887927967396273660920712697115138195377155464106337455584919631691755255599189224089797833124273545384179602784595898647060095284180866467711094641598431500095974947022075958749369609348923513155308795226753192288751932690569926959011242800843780897580223727211128142771580921578619031438232822215843119736386797272276849581363281470182765236169987038316548057146175201779780107490052009862225386713437898798488104450302717738606821067182348566610328159840918571490847707412577372152962362895142819394934492310024755294687688142282688263381992107050031482296907812706850236096795245615631762537844390868388545471766250548688614538858940190650918410158852088336961298773167275269197562386427609513694583842618521833895705186413263202522931391348380821287964338813629845539042373128573855900623287197915909121817103349208828736572596006751034516917303484066477312472853649869703225505802851210314581397165500540219991258467124752296233047947620417483573396512933884625986054669020687274310798920093600862996258526495569263422443490758898712075405572391778889837474006283110359893639753683143163791553508445994998151790357191664595797264053563579622852232320999562529072956596862566647611821743688936552658420973588048382356327038462917410427463403276404424721791963389233300452352920028757301356303821117289713316943637220617508581520290849724636905566762892184262651781976519538524643036425620321295916089585335981540706502452521657088226438896955320033071238601771994269799874271196603530485283581844146085491345064443171308666656732474479432280547339137606275818904283656586598954664885617098590233571893647110221915544801416081086328652657202503734779658698028969756875969566551715729978174149125519450833779497446698060268643181523422924316776326510155053746777092041564764624751249672301142884839539706060560724653142273218895838355013985022479806163823494536612899404093559178092658682360641984947863949273925514675962185564843402871639984241656407922432049921519352709427492550972098376405547995076369623700896158531420828549780644065756946107401242830116770917540880488062665750487449700100644817281703371857168769905205043126912675894235464242632192681612607135255937799846876848766637463737084830913023031875975519252439917826264027996616367094369112530086284350297886671483877355700954085095109254267237087162850872049910014666606934352543968132422775052041208431177836208642591374140370189390584913088530767180337775977981545040600450842816926539549424241734396825797942963322331213218107801293219793602750388852631045872578879049933017249371699290336354529074965146405609127548752881574874850466564788157133643242701577120650882647257091154529355415106455103509471072017880017924641359721384299487104597755279842745069774265641488340683008092305464626038948326722396040624646594574202522108428812826688967527898024346826557896265626637974536891092934689209248410970235713162753302389020769867314325842760948183881245857587340140970686718956181311222947002197844824158154450981988915294242890693466056260795656643943393427998358823571167575116329255621499470951835223312458109131586557735917584703694148488150386326409866052441608994421423724467318576854052616459608035904616045947747232056287891088699234201957552645554915186288103709855628981849208453628176074175578224666387907260467755483451744348189049688056376503250353592627137451498862405482956247369333449623309027391137081058407123726554039444066616546669812794016117438031442545836113138700180051064222504742126749539970759097152710314165536334773200549635491466719499256643771113519647122484421338334482991474019169297097827330482096570236574416621640413859757199401107550548138356750975367702086214802247690575931284579612052010606527221595997455895639292741610135447771486602722228078789190310493304860642348889412653650919804680472667929079707702290502025767138443684581563482900222665872245389242075867812648074259843103723144835073934916328568708798935308983035538438395007970780150899316677212153557850476824480668120600816092524900550656068820053943975294042977799777390954812182338828159978628439344893791861555638458479425929894905438450373697647333225685242402160195904472401639944492589154522209473819728573560814162944201208296923421367519056921053373592377816006656687636414636657904357378244366516685104935195776579079193354900542453748362582641051684378644502959183589839644056859368882636863710502768783853127777056659956030015723582371471547219056714260143368796646843649143949995727221505804289921810098950799344944214199021446892553928676917510398246758246373438052397350830280687187344606418762993203121704070483046129164263198208628507869517290189970014342896826244178078191626441719504450757666856324245674581755185913604359995857459882503553846674132820452537010805090235114840481953058880641604082355235129412814048454488103708569426260002716392301008603721424248429126495719569873219052427563394901622464546259347456703005672837508467249825279836734956177089836516547827889426186105183276920850360362178003391524933714844455014157911625050689091071382758022446505098609868832767797118325793918716216767883562241988675386839315756589776865201639452827388674406517875660068949821735574807444325577590692736378481805133570962701897152058909708119862005227679349913304058284567203585664724105889455308752236461838439640259601125485287660886628483076360128700666722802670003614942302612541655045829616993163843705829675070532292691091611967493612737291631205863688479052509527351543806222193273002895992407939074438573669093529492586894401073422178024370771528161242531908822717327154338237401474543621843332568029599407713014983323704510969965453202745335070217703707061138191051635880307474770819808265319510552403434618908040877285588710261912991092295950882251819205851887441986348625188245665450780329536348102634843303083724181136556278301939101618351740322384509791468752162387714423922323245576364107974700125539832471226019053048866664933322848632905380868351709643540440256866791168844434216940251772691672005423658795245864872919319419639837059108346595565457374554274722525638720491964846804561216346755578001839114580507202910409177461978829650486123555287269755200042382038183207642553640963208933924544967598152309215189473050197853510015299573530542811283648423659474359596095956980162027530239594199533446282082649792360794218868041106024158741508575194580615688808343018541253781954596974142367787418706672158427522319352770701887762803032337402862660420730505237852035421042577244255914042700874907643524826938681071637669307303727237417175424585224773575827029599664985410231151013874323704799159178790299448550168255865451538812548574254146042912012322855614889532717717240122627994410826869139972987438255681581112623873262610426424919146730313932407899673786143290414208441146741535167426897337032190690287477060200884221903212516552891171738567477731136615373439175196270795492161709378005434045787378968957940658402609222670666397470647461914851144652443807415205521286862020067172326368471796723154915335949245342892887485931766426993620967340749774505307056843141013326328777592130576231470087437384507626030587577497873242071406651361799495694560108192843193736732841798935189595423519702289347297697710497535864995673185046950987396628013953152473360674595746536734225096595010987669623734140606839350348198382718211868440601761576560254701139537357267834526945596079177094497172723469473343678038722377574791686895552041362153801428254867377695283703841427934004400130568978355622798607136070596604468533433322470819960517276152201080667106523795019070974937418216335299386518917007788988347636092361880526906006408280797134349789427595928872026107851555411239737304609759231788346880725383510590800218660449028979118967259367552139647290685797350736757182169740366706989613457874506109712035014795653751641661531216473254416789277507245943628192382562336298103756532891328239232227250679417094691318566996226763008474933294923772482025168055066631619903457800502962160950971278313497549748497080750146928617797205392087735573542634465404691750787836297830371222126344995376045870682546656732927753972286036781924732607587537503639605557551524704479046892790074174408099162153535237955159316825039170841157338947214833770587893695415348273160717030232024929094546655312055250126322531741427372940893582323130414035967091049257183835201953577511103030189373873667295688347590028046690150280415692206279410789768280962696610121374881195563119677798046812493064783740531627476062834586847164594382436775342760826955765323442760533997129870805208989856144206593472215753513573135315096432568632699760118167688723309047847387826108830027187650260826292523319447690994041670026400655559713699181466979113567780657451057296471196382643806989602338811353072149858536870862858717892687962978016089416393630120941635523027773429963015263435775125041351983411873620583345473118538074572684337206905220856255010506100937942856140474184559211793392727085972511528800569402805361411449240209246208794874183622485445370167347935902015006990894711195009547716996064515693409809576087230611679859305447424945855927637542655079098507826227452414280564196195794701618141018859396702928840881750713269491264514792458713883472209570125453762871154613584471013113232014954909446401476000302376328571713953654714900135558696330692581126404792005317280921179128700967881389373295949068769162309178222864353334059339679160242893274844466315594574856113204517830646491662241813246295767509185902988333230655145023629404347405492556117642216093884711734189574071998503527366986933866985170257393806602302791062808535254935316619458529388540134761981829790192702699755397627097213320775214288831363827940377954810436396846216952494822984432296896920853355530853174095397100274487325283527573624794580127804455036106064558578035736262525563606477349056863832460058826457299672867064706881971880489959182095387698672412610581231337188328153873053240635171604883731863483194487855245340213105960543269787362789902736235815268667728648413763217540668998973488261186018002936002236261588495903893818383478150216473108913836953738086831643699087980859301283735287622060053622758728767946579168057635814324092530550238865482949257251276097710430841424132714922301455502491538011651570107259919660889103344587780201842019868725579834858927941157916548984180796559816529244002860008928330899598461251541347364124755370565807249607337289686395655103449758583001718801392934081593465774074916873140199038284277122623332446058875673983859350076951311855631684573838655512292940803068422036256724591811386063504801552261670635649642867323459656693799243587293291166884983936420697970390191593194559703612592627063708371713607972229244838973659949263221859430952934455170540094592748703284351993881402670859152894963595076363807323470534623093244150957569185048089195717391916531000241571429356686909706755384850261080407434064574263428325221102071034503745383407217192728609307970908786402740375603419620326095180233319446604704393480054063586910294183143819807662636922920151962674547889054873008533422088159740328925356782478045723448555663884299365178593815428714734705407762504079807108683257127209659524702809312984905979030619675080599444217988506983161096380431857573493208970279214433939134282900983890292760099810349716753400553502665754851358206981718943173652187372727038665243420592696839958587716580753629304917458210275330126702362227330521370927475754927540322486653632392842887880718119434477544394315746337377421905144626384014838452230601326365027884514717047905831805834894085694942499441515548386334237720406996019335803137534497602844499515410901138156066413232943105354035663349825009005341362149597475298028239846197283670062105846139778158274676579826017847296576463958941877424963316958842283911915905656402281934968017581638401394292081420882045469029946376520599881978317544801271199655622131732442716080219316644607184506702451604612011797638272392113483394387989629058401796863609432553006506288897323925136163270239075239598265348939946806580594876864627514109406499311534198732172991431259100977718868694557124444935828613812597646375511342798457376202343562568983122530420590214907099967416032154670753881650296586399155315134290551333165324830885034701954905567448410103218765899567583945582382868831081418628354731947552527471157540254348046617748038786859837871569491342785308294728873541204319023209059529543286106613269760762669266113521146625276984127734085241913826858280955075837578751829441953816699647593380581097441970408876883252573743856182591108975019643147937257207080940589605539709828580044556307859986110829784519803998823094162509868026351628228075608165070483489644168361836594632976919733266450443327026529644073326083594871297205636803629992269220555502193613130943929256168982589380953115434813289518491654287254628635197810302373003490379917930768861220453265131810138168987919567846678661443310580143812599127914158876671702906759990712229281727452785443191763775186488544690552141829475460755373456060855634642039617667095752874549490120466035196463687357729297428234750549678654459273606276089892469782418907136691030092667819130305591951169569317831975407962403384211046644652404581868639326096463530334711292131543695714422067237270190321612831636606835353591402798852609531474419767057640109075306047213865706766549972656139956259081850853030455592840761412465221809965435307163185074886478933137159804019105801024255417135661896120601106976120338712176953627748147024046287959447965689291666561516291177369461849461776831663594528511716414008796109655867194211638165457893559437474165960191040265069965376089108849054090880766242236244525313285217856872117107507287258024370274958356646245635139772059647787347672137096977874372222228544415051625814759001600103498734216428737941520917280874385287068745299675850634623615656838065684685866591288392993987491928045097599357621915303453396402416281637564573379859690128292741879627625038064030579982239393509589219952785102916463804783293620919278040771504187300689178573817825379312653226956429848057505704338593699343393456044962325937243304357667147711664262056671619377737577018204936159782065517759604455742714015958506242086143202210279470032864409749853119493397220525601724380678398080630198033038714010823737020217802399919659484742081004162463139998938726781296983713965334369780639466764286002415282487378563941292793538360770760830075008546883668496834473813800019480999463927939725480926175571232307228799147294996278293181211799953119139336829142170800391710839203996253246571242671148076218732388866302732632605102274855876858248299627378563037502052629488316960894901291631372634885804981924875455352488732623943936750450165476893402068214585655661710507751194373805894134256960413139475819197066823026324234090244505409588341087688988058360019058008561994910332388450133139604194546882835906148062791702742550569836303868190408076986074650884423677617054622608454397222194035542026520331044552690070468827745821456966366744699942884173471148070234795179430778361527574001167542381049782265169967932701790991325359692564131021203176759602636795510869259891936051529316116399937906052216218262573447363342026307505726425225525500696250372133805324484465377149717057771217385550214036410911783897214179763547317648609973237020876571662328627364066666525224448442370474312602701940529325392038812456116783922607147800119571847504556116152503844822082691866745295001945479554742670311953388463367504753411924305172890558306396064273009317899033971343931584059161008586393822138202271708192475778210015039163848666017090813909135953340619014626904240956805262401070564777661840736519965983120159148619124791045328208490037696235790452049281474814484658172687429160111256780098117726912220907023785148661124371445919846685763094737512094243352004465053297391251670830182554297130226067466098005260391962755798389509069243190047375640183607454934859101794475577162863150554887610286729181867586476644478659627827294039993209905335496913847574304220358026682005018352485651517034209943110726037475082164349588541432104573557419801182940065163845907783130947300992993954182718180599773199552253765623522616879880482847203149589062569689442427840761719747852121117086752944603670533555703336195269940643523308190957437080465607841235006193415649510049733173836204004227344378915789653495861159191813589724449560707032232278280157914855808866326700924042342031392716468963013705622185503990346229467917697832970152412757358458013089759525863985502154636770509007033290797558326525697330992519942335234267432452628783434878039320990147869741317281125496445904277797369126687707533793810529597921956009451964724521456644781129408884259739950228931567320489003595653148818181335248844869869480061253647427755000504204046210344255558808662144252379324645861308670915261439688781633677349695124090077391672641409412421645618536462085838052194808988737746342851400043979235067024246706670697307923553229765566845704762902563225978319618333972491546952552514351434797307250589853935034414301037276933082870107555261221323794891532424850154784570097745683673957064624532316783427160599513253350384476461804529889100892576142364568920937121623357779190101698527465074331339403860558383560512529911464752510497400839238188040952466569782190675007745127340413746948598903243038421773757608092588363984942852491661239742134030663996839945731531459218956185429736941639291274586602149193256062908354788945387058909910287768426344909242758195382277154455075508282078488360093885750407133806431446435106635772542001072151282148738012783255219477266669643519639951388097664532433272355768426415313809782298046321315377462523540429060358017056192744688484775984917808674554983296585195346162001081254224267667244659198500373724670009453141832851380224433867264250159567592114147496245184912047206467560940593359887917979059001367488538645068696206561499083496822578568113455648395727288903768564734858702787470924437841701540033745698274823246922177670738059985075586166871378718683096809676558370216611140772207852210640268269888730728960516843783520367402250033012942208799728073355203320849825187947636617429055283759128564164974137281936511433254132159665447975088966378440583413844824557338593122367508775691745807770666376143138370336043345867465015719999493570926314983135394760109974600000537658144945733267458610633049321502973839393544273709938641506048173133810760582530943941987857532365723323047959249575058023465548576017407830040764894676825864095103880437439926955341506926095520996684963621960975419902566892730018303988411552635487584101918625856519589499175436701377526296212355626089075981447245106345316843742039269634125122549425532446603922385414921802547488287657536406695665685449904948149152805038253528556467200442522894314635745970560541321113477618345914350068040975165789396711785485165229206778357107525513953145282312224607743264857802147106967125824905495325200298011874329803856098208474987810516242573853621749468345607944013868042725973721779959761348492683692590494544728545348555476728550926269663335154395319199262090222901179165035405320535415573239628658778850100121050944836436935545656529870251042733731127036864327018539304622986390184984977908527046638100741060641993467683487921490182379262315357767600452539830948834995312973156738110357671380950602689881032606604431764355029953307435121783536374226307308941189098334119638605515220249684439394253053142728238451977244601660403995835472791372579948769056309963892047062937605056521820542134579977355489353836803365282076081251489436246900174250148369489103249786394191146005402306216185569908610246731548646098802027810734737377704918834398152960696061717154770915580453914721379448863070275106259100795373999513948617449030229789218152339558821015764964020945919409001606116587411111980734335103381902040120299293240314432987716472194187589256763459232199092290155723933728886071369406177616450934567152280499827475092783026359931981639916855626044956799351948320384470396500989985380112658613333794775521303288916197879337327684474132831621538213505022329824795198558425306440627327567040485421579537173343830136579227169765815254227253190269172158356347906550143393222118454577433731865452718559410210622948825204347308783812222983168723577837337344515599482329233926957892944799824200949392664270739432327471320097160347570744107285030796303907572702838050209591617550700050166277924293181245052386723996858519317795903884046755651332557582149431535179594987901759399540186995861620669715389333257560018092077957850127158525013243702679838153216831510588027374558939822516507965568067405529335804164586928523165289250624410345072547517466969576647599120655684798317788386244416469541919134116638313595094269840789705549465807294598318386546217752106311455104336335366177573050374063429208912775022362094183093820379420494301832564881514621747314953122724966519403326669465481748253417252291247497051146161600542818805403541989472345725590790141985182981481459902714051432660710262296349194812593421453378987245830976048618886695851303907291733920772256896098365209127931148217974750644655976134038757592240223960347357084918337811214989258295323354443785318333610174372171270755616191438053272660244948668475034380752518392245923957178302347141902235035038079411272774872895040023080474072245560012476207315992125045788619133864990339126851472433091060855943660562484867647533010336365985774896315464134652817637412615811007817367012495447965411601224900939460349933099940239274943813504008029448991687939366761086755035469238657089414703946164778455893070118950360169684300781588665329135620556891697251578127543955416215195210530013133622187193814571974435467846367988318741333305512922100157473047822274735436233806082009833664536855868925633157469202431516831234067297731417050798536830021146553627357812063386973246879064859587581672286764887437654650449048380565180229732111795405654379446150420215634066456080621749083449296578888295379303504726086216823201549849336065885036959606666076136341254667714265766966938253333538296866778018554763758741375614974085168362938644445437282528212759657334188069780403863756243213593533382769143640318722051944488269989986780437905031726519533324288476168006516298029907502324788344342406567828812886076963740649602563071565676750520370530839136166283921641845098284467430512284442398334641301530273921750420119266145727508281390376733635763925446052971601765375773898946913977067171842123029668128720497136453255289930864012330523226054081611387889253194878617232763152748020476997010841422239979291101028956919632942803327708353525389035143185882863193742926542221292762852600422545397998100595536678399989239291809150387773614009281530819407860664748423822595763528517849241474448436843425206682156596691976972880573667036215635512499443612266893305803948045462775097887356727161237582571383913941087243195519516053376515555892535518269797147560668931735310531915212298359173023026758392741649314224393897443100874491196222448073715852494755275828413716873388568451397193571743513766510489523902901706309271226468406692783483998862859594239679364564173558718401990187572546346067620706262789623220348053718363517946910877638519911078379366902264789614265281989949894409583646926514431656582124717920789203351405936678284940177989652979815054754358031775856225586906101230234010936129553535763584329974630792884081670233667889701281459588474281994287498661437711859701046078611831222856749469131907428199428749866143771185970104607861183122285674946913190742819942874986614377118597010460786118312228567494691319004482564302826200724878752539439790125220351799067010886444417333294270385047776295948438149909989126253488800224701126853866059437662227036508267221232223515725503765038540952531017575868733835311996936024166003965092807274380713754704848445688684891968721231098199098730747953205414010395973619696752305244216405619005267427599397913726868627853543055179125750471576601849237182239348493919692953944998838019657266250365175749403311969597941172125762371383165114796260557917844027818812255383408963982704978907257430443033411791081090599505417122077373797477503036812582030995844119486799985794011171393324239526270361992706377241703397811133323827156827734201479054726165434019322671442180196105337050263337427319045518794871348524986266822221111131891445576221042289834739034998125977811080901318642567088910367429803049136365142132498203398923826233114577540076316382512686668485031584111114115588642679072134604092217050745982472070245524314035201195653139245833100914253634958789790743937136597095527255566660070242028391007459462466313074544675113059937775120411928055649729151234915055327810229864306084053764409891744431076998717276003815163442860652183069210091799279417093193629424774580681733533597017598932860314853201568769791565212418967004030959172775708160301869459714079982443633328754319221407359969526268303856595845208956554977810132745394340864386526954140660420525015130837808664572997492569037617093002816162250318700303273714486051251640723900700882382390681147399580435559035124122182329827436677789038538586239181478158835325813789319130516472390159051500732925827462042891439266753495215494292409278561294142586937295146893142705444227000932416109334447817626188849164416925608135907757944738620601592404012063374998954252911634095244853142318247458686792135102696628751705210646078470497466615451881415103516734981578308880506290252472784913288358585719687703163300975539049048845664489746888824842250422741076906915478241586198518421957909459139269455393497074170826012991361372933199089961244761127027704388927170172348861763196368502467208266987608481975265151178468397433083172604878540303329427864436091148976287974130203367539268931859458016183291794401009583249805875064583664127695292859826577033300623458265495553231665323056373735121952849214896392942381059559822709275997303299473750568744987281293470260662447761583466617049162697571797587242929114187975074878217153341997452680557322560031417046342203189757820773023738624697850416509797584452716458522043551397592875295089546522806626969434499014880200418118642039774220404270266955446032990925495943520252796488734580054345846849452975353915837929113057037617736633757952397710873933795473321185487906192685422400839536103687789915221045210650200380051808347709316151054412972685089966422824644897764232319476756024380976946310016887760572567989369280086502487446760824545957501328381000122974730565399913766112760678583451295803038405025304166311739822211379220747439396630034070496076432882198733987733380285979360982153546559100724317097157060971059686886906647906795150810115197051363575163611207596373863757385849998378645305790304439430129504109743783727473215821070222676757039661418608774439690962477761429826812572551820738210629142917928982577970023307492988858235399319356394252680619486420670833245104681706704055421341876516419219776188680295892187243673912979296702170026047079540759988069653829470682629475007992091780545010872131836710302140341239939886741014047291317644420908011091980352443211333653582852718284326236725037002411625948225597448808317606737015485628911866544655045630521377904505732818512019796654094302700497446325461212241411283293664379403219844792766561092717076355940122055359024467307073784068108916048402263161316537882261306234764932281552291952234092518396017149557062533930191906745971899007765435853945373057085876733937752255618875908626655726071481360268430480946337810894870533253346931528652281848501503993800336638789733893411288434577352332199976257543876194782906084104923170869792726685650177178453576014440687171686900952806803431893356304270972778706508863333729703100159320223247970041018149467646133696884479094536114901744629897493230037580253191769550524162500655284261143730762265420826822134594675370336621842181656644347757209630013688515145967947203601213939946326114541444682752648661586756681602323921704745125701348659061643086005885568792084783360624630419584641747083033660653300534206204283686318888324266816035175214007464026900758761089479463515084495961700050182770896682426327475529391344648268756009627622242507296272188378746955853968086987312689237481269813501287025948529870938537227129950556301593716628582188659160520740380572603304513197216792914771867563052935572768823902922662197305804873114011753081338921701186180117337251436635308756573420894170480721933598874797364268619879410285421295294104365480616664665609535068126798608377234268522061587747745045440859724123572813629395024877213229181447460352824090500401017736626986417021816703518189746705120427960543666279452174941485648640342337595905490601360969309168410629163679468923218912091274019517061803872122843070879607731137254413060541729899505483788277270466638641911377988697406327767999608103275565628709067701614858118516715255720673109259432660248555938871841243042256167746151083897288342422589148505084729051760618997775830070656525208474082088421733739107673981148807733322016588911410051585422388406367286567250897128850384529403162918837144537878661305400091705011115471854363558310332072119813348586311534236019202937183043526169084401955004814506589376871523847124185820705644135304874205156145120866680968865536473070145171155583996458356780034909490393274451441177991637963103382544506126729662982076892834738348275637617138396079392508938287519388908374248283953342256640130058887766579178359774040670750177108719391145784682542500121104011567813812956625725510917646036596778057996130862820011501251679248494760484988420373339395434686685902354575230954073815304116759191964033950082322121220319485821924434755293375301739351818146692053006768354983260897626736030117845855487527030732200353241223910296706648167195592545322134782497402500270274805998168376214118183387608348792580981381516616041464208075202053745495801305135529753878317955606609534527502899952843052599586314977990312599592685238675997576441360225760470651198719323526264910813019359159967624775420054683329136080933231845309103266426957027363688615868419863558986966216126369423462698706529516460365908897763094369532892149718025971263107919863423433683379854278159243753610595231367670588425147268669259622556233388254449153389514807803531600962362723626293210938381213442925961689776071296109653285812638563528406918707269095087199084875880597680615434384983307862237329950538595446528725800917384821639524761866919428440920203252858635973427365210841779240653376994870919040065362840026579910278085881694281124198678032126766119082120687694390256898318550295073581362833258813293497875611996570647703233546013593301573718699852759527884015523130446664670070445701673747302944778425837971339579810234192743011416633563104720020623034667200434736336209186074063793874108377983726591022622662816683681746145088810586794020916962370702672270785567024669662152359232489065565411423216530012306683158137095011751649747417707710478671144231270308259649702806523097265225953502609376032046418104012825702971529099663017972874967160781873864346043656031260091308019905591344969824305981044812142232391988323305174876177610603802422486933607826983487990531871201936565718811379882854700036618033764616418080056211065665713544573803557216270206698706659611630266928133512859723422734740435504503018436615705975860259189729717629378207585152143663005844137543530152873638639375592024940199122961478312053390204021524957162375177139207404812163206956168783744067514276611819357040926225442812572446747935669902240001616279356999773793622293288995109667188147254724474423324508328161135885062617781347522637741668930679618906981738542620711683452020866172255402151315203014261536352924176248872401938432847031453356855321163460324119109690049806616365370483004401011812918656108974698069557691913585155593833791589067981878573696873349166531702934832744826234967893671344072677226840840390785044733709169016194834174928447685766055823894997626657072609591728102611237088220424048967417981761059712165243418987697325405183576390689675246430494598140399601983368186282170586073372014699356972850002318515413576999413002897984546387206092599165675004257455772138558216066238188184326085590864884230577290245837548332719465922189060822557719303102442845088023804118245874545954059911879389866524346777606716241118610010104090734913030671369690732159434848129745453214650616117015870792378267767522436635663919196042731264289021440187347592854707425670344996917675233598478138865565705899983318601234615036475938171158603856970478924993590444127976041889820913034833021495306782619690302406082509918409496241117147501936682547196684447339851530387850051106979020064973535455938575707883336768892461107934627144419802729030596670946542694668000365572482505385372657003464552984375485605766436548468959198703255509085909374209804862413099267432372863561176180971636873658852587542928998684070667409131052333116913901759061177908405550410409730126750877167686004326404717317308748944579536828065166828841880976387687751677225401507003933693798837135823136755015852875240337553986870947839756157946308525991462120723856095229220102419422643655009643728162123659295649212034193108558048057925207056097073311003610872573365512443639741726877515322065422563933914249879192202992430401513532618304251639821759987994032717706306529601965946603316609193225213978517420275604532822558009110705570160851977806571014316301211880912558064986030948049146676107720745502634506956158153283070441964462644401978953041673808332923846545153725133316840331525638965894711008798811829532364680046133945376701491217704282194282850506622188463050880409783570115326654916255249526385096275796749475771603492347359628017615562674390623303470044538119409528697550938580679702661145684844846308991494315152488178024416974099890603908439441850253047357246937305616185379340688294601425402211423373139724085744945862377619322551855689110364637684070516003606140643570811847797770405995641200104601413000890788089377595295745047655039053183599146854554075702541944535881728230217184087340156065947706698217296638659132127716519251666291242160026082404556418182824207155593041412847921238148595144839965671505764602713610407345488817072271800832968140120396622375240917625930501196457437538992864618902187410750169415517307487965557943412213401861945711114145143476791105087385843795432281462392510321525178061022002985061171511522924684406233670927089226453241078178623493002036486152993070136846970506636958762130387191849673626286128773135307721316622088806901178452231994936532272443177479044080521012426828275776057685207211032353363551733222846585385579072592997658497868869011934529274642275255585048782417415962774392726950863003739197232432809642332098580674697455115723670387955932445758453122600239564518634241370010986150265195096501276333828196736597643559400008983705072192268375625342457964215208141538140352834232745745282188653998454027744122254522942265414501024628838852570646391990412738586374723771970181661501559306552580402449092982449535013277809532564263426263432798995168669229691978769462307638213428791853401663826586138981055665067401063420828539478180020453642269679016347991779681426970196243141837017933239208206963911456865343575178937024664269595259600654326091604270903277334124879376220897854569431847419434510620397466555147205617061019461222686681596904838394290430992831677354144429372219257639217779234223773397148488181910169982018278621131812845363263984386215655096776531988541783185586741582390043053451170737372867280188233545785306959967788067417964300979384132540544812380831903058654085153227854231354283742353758721688236322055070652706495251356963675212104632064184322393563779520998965454720016968351074307701939884197870709476949874864200855470745726706021712740956692665431438337769024013142789997756778724179571357223060632305238563514763132557264467597733776986284175094033938121692142673563864623543402066943063507513940274428897658237003075649301065734518698212694757885041191961361046093431644074153374395772435885256502313780947543195773054518785207209863861162273043345329587547485512733832797221918503504787189788424928710689618210899417158677612083801516188865145400128585971646301364496516055149382279283444908376743281989211429104310611108686921655279207982016493293745813421507655118784892767382548793511783235161120855178410837621175281500785185477818607679428641484323323319109726685003293412891404585820443155761077878576257742383848993157237395983811060781246778635855689965273688452409425287045964359207605793466843241453255963562487488211791208183970347846417549291422486198816983583681912923190240717129570007687463345058546053618974136529114874878826670127663175041210072031578108892437664036773091175530904092817119613621053923413873342259376787685262571351224341348244924378633188527682753743104903544552421435713693138564029040006569936253681779918785587184473077058252974350574866412708465442603847274453318352984893683898897808289018623074484047084490852849403039434295546385274085475901526881600037477252281178116115742371398195074067417534318414635054434243835745192486115808800396066834394019089873781924404002198322845207651547921136925507478741658366024221854621946430775152186135581519887540463551761409590543738570052501358093904859672162021606984416156907877168406812741437661409111813963108559915166148107954451532495992136682549963271237356256841474541431231206048819565493502823579799437677757183566590069020417993369091728241049062313271244249416014285160962807790636038335841419927091542276842581774992219930572580325951237712012994424840701227968679444734180679258265793495891476788837891544093263165670060889473109325610561988030860548652087745645452474853531540501116812428474957904372159415539436702907125778653689754228949640116185024437131408434630354358064772127114350431362548438660924361550031965108550050907158337041502556889102458400418193352025212449845716767925568221802326639623157096458907968699494137343262118149547389785624882172010558278984533333136548489450888785675190404459592653195215811924489811352902213455038356598271936949317656578186760047007731691816455034194766774380181590333099302566595666806010250926530115150160622468616389719309021432141704002191457726858407865209722168098063403409743086907298822309751951983100298612670489081778827687757961178330223290184600190716087476842315224050774360779330699714208266188407940469258063274247275041565742546714723309962603957286538590552888005911222577468976219282389040655521371974945223212768338451551457684661127766882078834758858600648865735763165275569994119108346614456186706812749463392864273661511558912240868597078927007503394219875836535973430041069559226761035533059931059176312793511629714079606501253293619401366506307941570050211188043581494533791320858732548430463659635754453470236895764075477044155714931768679302277753119882184837301911786289306940111589359951274829912053068129551929824938272147795541012944377345175642511716526216166999185835646874649357924097724551332802362936675709907697852514226641191193585434501374096079376005086552834228065726478022042061307951699639533247616622891546684694096914515252563415426976727096542892366968403192535094906738450902029724318091231270182551951383460029378821762077676614701791056987095327706600308416181059206587486560051483952184824992543254856132508585197436417072553803196406928071563221322173345451876615575526390318339396568420029460701119129003740322343976701062591895494110816617775621921623121137090313971995109300060103007153333452901597889358798595884784180052537960087983471109265787548954190753861066220189959789540593437873947063842367677502183369288728660527834544522024058057113629600759746651977711112630969469503423846510531433667095110760686290587829078822087133464200364390366332980988500851337814963166188577108066312558044324207698647512216582361620834681484140831525275396050627066696526301902593848744034126606357473771924725215165229394066955245342248129991832656594423759120559882004728642042067074222872759074097139821572379632145499167296730802864864484068322190336849026989929710200920411865787025178591835750552703347688775638585462739607509976147400572192898182966726201203114582608158553826922251013825611025429443067962436400899781005440067802134276707642549925936710102284674866225941175294051667555818626941750593997115376753996650983301615736970922700557309695955649272385182575787553417888752639788555964624474923264074821628542338036335949374899526806016754142197883509023731057687503281918259052125331849318306100702202678580527851563024324195553938565711330622522462341479711447932578993736265220222845799230346011771041574409412468197295002911413986761550352599819480735239154528581118222981815649447927563553322350629049623760218885772940818935145056394333893533977655456340866555282658136000816463334525449484505955566705163107708872505206626022560573629214451674721138860169162930054205124206415555272401945587359509752625533729093899907528808524234255268789623261274535575780817153091024596353553948147627719691641984261118275886258905804366154875620681637434080047600164419843802937341468286777176160414285412606425641580937439615912924271363136731776124458993385917773061133298846655245748283492523119458706998912381060083820227026598562576333919033672940001264290699668384238179436127469866593189619045322223293603166329601494368718280932743049152389322562551911147300753148128807206426842226981136185520154479808760107287609450269249454061487952597780986360069669101377814123490020686919838926415376722551768749515204014883031204113020227806459645894805871377996768873493918703798214391672064590869651897225691698509990310203096657363301877215791078781426445725617411584185877699635635291576611517161175561912146377213801136522636271278503521453330658424042719346570805618056428626998831932727372468508080637253458677431435647134329913610845871145670176806024156398745240385833637939835633934944595030714427694213921659335151610028068260018621710802758990916345462460226985867174542310977297306019504557502121786672926863366512580710505001747213369207269807192779063301291903342918220130117130206861246373615361763948055611226790359599834582073680303215605083664016691546402608726050665198490757496212963311920460864247010599662752040679908521111887393952622217171839456743584366250259407567787455206883177021018226392892933319946189556214339398753777418233490776385599354008719353215578106343492646921668019730695877934717222544807911811119639263927648001235177257192747883057839711366906064552543319190322289193609549718432491009045406627292385027405633838548590188268149435843645843980262611116171765842816097957652506787611795116323992635170032619534150929750055340488664096583519165979491935086348821926159814484369243754556511220419480552682307533247697408847277874354523592721088040526258353686891993198446098971608446742636735916800552847863406269127172173171756061677171463475561619807884390311358477716426051047474576636143832085499367219745739979786652277503539806189140888838590932137437527203362302578779561047292856386085130915778464960008736333920310489778169199045483721157693261472210169373395677086569137611108691532783540556894860507108229542480918055808095852840667352878148038653802146646757143896547580860434512955393551309586932110862993111060583993942496576010657495240264494636552444240730599036528490896664804046794551760568902763171719187687277257489033656717785638232165305692129115050326412815732707501138355197893094089107488034261090882741413711940912309437167869613636072477657104623486150406068547046457718789166038214014347509730536910311084407969550456237753811982755215952136501877563397073543958012047196601951288251054503317305162163410905181922605255463122643553225929574757288200162627080823604244459035813619904596044916754037553727206181988999514777161493276079799935405323179303743527584995426817187213747300025933561536192111129261638916218469566956203356497059650933237168855187842033304180750306650556062517416050526233166409192522382588709552189028812957505217116559791713082534046084330797746547688166691968144768973284839179217767764271032151745244795073588076328905416731603181192610241700381775659611825654152518096798760261634301727837032796173292508134704765485765605901072767352138545982768929873329758329944685365659919272027231284196896663259359477266722350011371950264673084492628609598526205224095218223592003147069826977926672250423655929192492054350354442390940880576201050465309269773134941085727997638011304927973986558419898876583320159334396104687507963520178472987317304408427266965840609618054654656319302505014959888401925085596318809233280147303879129195795825101292043776533474108918075807247127240276166629686262222231660704487522921471507146159607733512382721669154552729130788761367040033447710520770059428997271177365919242991321208097064896312558843911944264248345550207274615226720992564456528346798994906603417413684761557731344073469800379804214122671320372465321073217357376049193206275564676654903913028689978015277912027247510532924595527398642066245295718008680915733555397019651293100483231470413504942935965118265724049820443139756703147053709850613146155991545967908038206332711270539764389461306833524669156764448058479053185626495783935454683629709750886407255782366929906508127064320767425390436885713810940745855659674181134810267297801287659770581626728457561593281266064575328698356754169437335171869154494298039532809562532967176474278419217105496385341428321986214861895267914830400454230243724462494276958818851304787948051509240221847272687432602896204859856831807437521486290992133913992180695380744363471106230210202399080166428312197903931088989028681277449139877816012369634935383790483373886164973988642408564038860012173560371256630282419328441393715260355025536500684691379951253301570881693176198059576609611328145362486381437470813760997339279340713871021835604437946559576321085972638056113173862779961866282810658000636060566965160500275463200064283833990047068610621589780135918708023883757689557911171327021871913861244609228509466217880091235664671425284581316883233438617026345453106357326861714173268252109927195832490783232192898048512298230337937859269722693195895033354126067763684519202799011294351329008525896049061348176846124481858634526732494412395033702428955285667455763776548313039154490724174469903334896301032696085126405368878222121462152194238250907818894026435367515689104488568329212836025815748009984583205487653084082425613508935972296031858838858038358185664412153867087676012483101046308447443218801447909336747468844785641481744590912453981032300885920637101563587565164309596112739640158617697813140879507371428831776043668981962641347500697194056519504550516774239794019689986252789008523744580732886706974177396357254506098542345678985204250732286070942026394841828669256606166544407204577568393932312265407812478316668801803018422504520053551868684850558453085253849754261205794305353308074775082649608852944557278500344139558937933505118403022529870616291505964225999600585648957233653179869136696994427866578912525684626041479811086568557173907213307893310852590333311371858772870349262790271567329168662716674908199318258316683282850015757078016119316922193151475493775515980465409283999109493742010371708560860588178544900570410413604043513764246899815268060925540112346532950434918053747735616666710469298309567892031648206393173922124840551203478063211131681337322406321645541558823784609194273808850283831236226654974430055809989829957425843235376429863146563505528356047709075747328263677043963097923465629794934456641396085146437130393213677421247090445272154068792154263064259726029201899465529811514261260490076386714173023572727683904155972345066669386646058829201247114417883178223482153389187605836327618181943322769555311258190484751746290562001346899644071619823205434718461102051131555093022682510749199014960817856260510885903658474515037638491513400032951639910621924055728300810352176197961683221398169240835763955621165712611219290508716325525855864961663825419359148218187619592329205699550637645818268557522115278701180299433546741536276207749785405413330313633542368241010846476374906388527984149007646469764854009479635895497546144813763697059163569983681198752505479306935320757076678014844770142471624190816682249007420711186488154772891718653596776539579933503342728214605416964960098470697958559264304287036366471307131478233061157641991322242064609989883076268583605552740990478467610760424178421506285175573529996478625529542836742987066457943375801014074021161861448432976574426342852870477855630830963143527878304194501970294657577773281674685808745393160393725331589928057943463140873586086177882633492774615118491165513068184671367734882334108513640394793920887688633633946138235834479408156961