Un millón de dígitos de pi



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


3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504287515063187533002942118682221893775546027227291290504287515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646412600243796845437773390264725128194163200768487362517640659675406936217588793078559164787772747392720029103429495624476613082007292507345291707642266210476730378631699542374551174565220227833240968035246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177882310276598251093588923591620551087632980879931651725289380012378174348968321515905624933473702068322321001186373957705674738671021732123752243252416263580343762536068086691635715945515278178039217743228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822018147347990223590671381469051160519223012694823161134174399447148330408624842691395023367134124251238640266572581309439676219396554073865242298978797821986379182997095579247473203032391164104459069079778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355800549448948848713516053755934023457489795166024423383214060300959371055884570525157042662846003544028236787685509826781617655203757956554816778960389274983556087915411777494235734007641610932940038999821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700815488952265167228340452772191069914157646394852311267947308658031950764551976756289574288817968120900263871452578583152776151090886317402436956805678730152354278047934142664952238337071175112653755039423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161974055434365486980054448792959702875903522584097826835986664465860456942413907290952662499329029734405681606838057266260572770884070734714960600645614540707344327825140874742755067223048453570060922143900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451129159136811073940551752080196305393507402485095537725003670546651623304304250874423242624046321150789973369299854070416562610419767002024150948924118560924096376044296120023645907064497706272079190192359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817122049303218537406272474215197403057690436026863607807920047762324295518294735220272443763390277213920877670657162416397517858592544269234285352743288563368507896519620725194165560618703705502184628454342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218838685793483961151297160581665745096703677495836666693121883868579348396115129716058166574509670367749583666669312188176367964494361713041603724305065848513174926405585519401800518090847521186822461697614924323831948643441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315438958901530382714300192958907414994359289408309707707836287591448403704503861896697581120185231923186865996803858381237032915620757883594878094168820553160512819015264759280757495815456422134145937816705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037214566964440146954517385743415781015861878383927855260939913057025557555906094705149809348777332007279757303824598946680968082222134848587382299928179409082566520958165547247524456674369759447468637633242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931170243712828588263048629888449220741564060714705913740552466575697187021735528724543942771480917936443765063786186132434863579741125852086345992780368879249835436329845768765016506511534500869572123950754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106917187133573168548563128085783443562367095965094994696882066118511808603420282133180124941099150260143545001743273079362511307029825049941799428445114647932915459955590958780762163666859179106543596606525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984076094729838954243393262315323991898185226418083129633354635687482886346561850481063228880559673784456200094146560349928087940511531005758712955257196411150685034077371060438037125957559698594936205847751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862648634368915321809557220445677713736831045807558452961283283260631962972852796667436297480082131862792186904428434263073576070399966943078950814726973025381737569492275179535432615691204059483286094999236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327420558396977382315073499610875876370425556496408685507194225634496673243065625925047458176273328181601701969816654242637876360145303594653845032547667499973734083566513818602515652028363738917101654541488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678644498319642013456683390877594300644248562301212461451169792193963440950808322928129427043659914648274998437594211302041829730841717881309037955854560324717081919530277146579455547554475428443440813938890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536534959479906333454075437181269939983371921848541873597984534893459226851506818266249007802933501265882497422624188535252663670282766249934982948874833106176420842901692305289960897860413006510902817980504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657576558158661140919939486159920915991755334178303334764313163501270539069707932656781241590643428472136023521823674121473312449994433415591527431593168747788253315509277033620290122259779480985539220006452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818363510062146681858509634888708145697672202016799119946241777668890791713686594596072646853881077878300216136827669702622345941873747673353799888440342704680304255169412715873932039844437460454781611305662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045868030090424286168202556214094608790006519109949557081581650582898334073946608445756578063669027284346201858732825292479650528668140850353851983752363745192562279549029055790703028395010485483592983454281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496359420165433309409417719632623411938710516157010179805355167937086029136675698609712412036858381295769530779814136570017476135696698614606849143969957383763169582460251334210807262171360194301808720988855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783454674925830872998544742120644509523324505087743149616655525179716802099172002640937492190756993689633028139164720896358177173555584859270652450486251641954055080134351032338981337830249770182275490638149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850649124350526476606760034444161818640367008377411410109432058895559865867007786367189694408962232137403411359719913313594655368544669236765258901210841377743248219181274784789228726489297003237187345615798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619709831126596014747372533052685371774214655400587392462372761736490519871336806772395257078136068668326139501432950947485159472466752720168431658660880751276858475554118438116901162200555211348448896066825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054253143981845737944948678013461821787593907699960202908396567728784690573640156401504769644899394754147460833991869688927115694234549265124664550779255402810503762203596753055860185649205606287909076945333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085964985796715261701003947549453991769879132354655010640735581699940975624814996744327842920276264418979391815839456270817330158216022551965989876937616401986120746675504886111085572676450705262244613022233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413435543197372985621775307202262947555248304444534043488887858117034134534252235431940787797284676018158322709774518092934219318981581248283265895004070485520609989378390034191416304463916388054965878650137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288559553092555863605215895737511408956490584415677493710585964801431587461449125054925319116465382158519737009328019453032057262845265804604633781663142993307664664653076059054896288872418971606022588261757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117691922085001511673567010195897100179701957812089291096941775436990436820256302405482262540190569650771058157424072149633956036527028333440730575007367456226058464988611510168961218111905847171446106871976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196620168762219134623389376259952702567213862211245898021213050140728890430032253550409586681872413936993819306914874471718664618311194260316166407037731648700186479960024304400324224180940227853330901150988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766768828757868868309297600101197453389833195258861963013291709438581661537417179449631917715431250695985348128568461937766989427745917091880252001274990555940728969659479333167224362156789677696670803522903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375700498853730459639615273462939697495174806269645179301871998678853758141597579931480660855723256837430528276417567005028804048942989958094810353483393414492788592526219241554723199714338508663732092663272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248042288399029787992541851749912963028399072963558857989059331779590876907390564602562353356722155225946883829845288292296627513716242217295467867071584092418408414755758253938524096330205134970474069539956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724819511611987725034456471073851343592735553871246237559819381321423844158192907004638977168388720791636174143249707910965816274642971707287172514274589835689709553462682016908535610894489840710058192030217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993367091210839445350624592243231234827854966037465718801489293794514787054060792457590060121962212392872001721558866634573497140953372115165598575794172441988902616701610161155783431502546032878119842402748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851524488384751361818066710831616556420936927052061189851729261714171443465550870630606355101294940030975916779915842604919712095432270267843265429657240327208871432199964531320258710967716512854966996255269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124144162995126594563979275938038380478262316042432539913285112303224703756194232173304785407857624401329171799297924078339071575798142681686465538294684739920588863165593491986789696284044734496802407709283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445119035099497449397361718157527709378020923666813584163626831926340671418279742134254622070541560005095967404561684045177174795279035325493258912048338574659009678173041600052108893461076875400424197780308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293512392555251021118278857369606027693130146966143344964230211438248370563353279385889526767207668897127443581563208810665014956814355879657690985776590276870745365927636497555344961730807816098710324801379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446898788941882075129222575650914355282887461419509786242752788157156640076372103780319404309584427254926998716923433189002214150311399876526068876156674021019720171960239086108297492763956954115303227546017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765149561444710597196288988815710941517170151811474351364385400511624620213117480079198374970010047136343252328157891135545045337190527506822915618500332846956792622620819044247334036250389279207158596003936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482717601187433564369024350308563130955905525039049273161331173492258464460902453507919018441129932169977045183285358648042855682220873721361649058630325636891308410376021567992702000532235543980465311933977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828581747969417287299031101319267557389798409136425347969494348037770336463495847686298259010347072786121862300198660798778268424593383563891957020685352160321163523006498874460020017041305698536515466875202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135985425357768877493274363451475448864086881803036965243175568830020586077325695971608648541583446843248996307701137134467515693024488548207712413355773230694945806726784523594363150787272815790157307003317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042225953924288816455979657003095714138910693684503626823105398674375324005270153474589332567951494185453780882706345729596216908538353537038141811557381637820903256151986974535764641212549807600515614170729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988286306428544812827513928069470275014816328972731434734852852950460488327167397898156367880478044360210900732072736974934463049973144257156043313369038761810094887312071348271081588985748326585420751007795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451648289675569835893552202017367954807578190950269798127114870343119036311224612829530382051287043092947197459469082102563478899543177152437969621128122450342606639926885213307919637027778044885792057304699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257669507854726034938298133582528178670608512656002268871781125359782933734779141273628418865617592083287944741096970387985473698402545806329483502235939354358748022398976091629625011047393116944910066690723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982872781230113980809386701547488580344563187131960267854879389331620500767526411204439023758334272429869965478636853410284885737025472550236566341868091903838867078790720840361940216467012153483797815183282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211990540758187739439752836414395304424591390317881300418879188711455314826746998705558793104024038888408385068734162507165727418513495208496367095554245043948394804597915622828248378793415272036226336956180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231986802435171993786810036110231256836425607959741057415362829718004649774857371837863903703901539737491165468549971645394161121641761071714540176519056505252066227788312904571969320599024137539598386198260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716793229601564862280851840335235017060858951291222324611783025316362894394607365277133651163164644619909902122492241231516899276785586373631552600250348848781323300191018939961670273141699962651194574263676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515255614118743401804194614139451471287252759239125596443735683397289633126767823491035633296129471910151571431157954909339032614119186547523762472153110207936911584874220582274734320173558507712243796985796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245169998546856221570241759471176995291655021168550010898576193463945590882627077531146577522388463435193765397349848024549760760244030808448901068387869726123709783578245166801171485983679405529046198262165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282960969397681373419770427812130014732867760571940596997927551246171843495698564171287248118346542064231871455182415286763056751311626771773506175112454633879942652912701057899567180572143655791835069177793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515221996582075735131570759236153986394592111558640009880975526105383825689927215847850417460651615113378833609760121148487005560165812492470682568442720454728963094203066504452986462235942260085549915891499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390742309737209162853371768062164469354323179178553058331714208479886303408465726426939557002685760575393478885870946005827232305191081175142349126873365859607998917329289158960018150918163374008060354752000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557821019357136624359908836138598085161564174769460547855400819535306708030896976304529468682332105328782374389441156851762717116363094014799096494563545929501307390036268210073263700823561506912696431833517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772251343193737344123661858694458806401858407314763379294038634043591941987235526301565460805186867606804316084512845916042441326987912538560299159967278766195195053176488313469325736689464438255813910848620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664312235643262628601147489086817159281066872708400820337718692153523526926347226809082598988984002620815217828261122931311820866007099686036540981832680755824776706950410997586143624355216194535302920025466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011255021003884531192365296559946190047484662064234794232967006052900370917557818870819352214687142723527763255989808694872111384598001412384216382782441273654244674883338167971620112886191415401936712909478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065077260250951829536765181182368616944724360783764294762469226319498921964644068316928766161506050813846319415116202577907863071801231159458603896562526554223346234454507394788690268159497513116885143694521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586661022855156485990882095868944436254698679523822686115969910056366082926791533753816066112247869531326158531871763885989377929188902998793879810003697307848959270625410484859315854323395683104239029907026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753374958970107287350127078898048163504567666769320755305184043244610074032167647183608370847506512693070766084982529900031785030585368213951273503863824605642510337775580986464339801718620814266307417259222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738204774162657106574082164996062622749618795334790706598897487177956433406484174564574790692517014949981009535341354890875483632757952240720698629102467170357925144176670388660990698572626058124082533622521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196532038619900511617817133400107057665268991970816920221946470432379535641186606392055860903445706415179778214505472227885298721019785884607004742002846887379584422894997433365627187799172113791616449254132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580502576754040178579585244883117210508927708922727343197382388468730716823024878868858551010807352278140537140652075810727084816726397709873145516264691142328610303693298433030032367616271426406758780673188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642020288573400911495523886510791137149533463976398818394880453007507474037228093682053543049495194833283347007516197900868728543996298157560589163762472306916287111113767608648032375245966493041175394613646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688862972175795173243380278061747049630204249291661917188624335559928209324391944571188632155632016165424705537593869662465633412154101403228699093015913288580883124124288287637387274283803859071029274863335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764145722078592171559140103783202013213383309638077890409572381055882939279637438166068683519505927701951536160172215890428785678482068291944169871819286273082704441630396254713053284388337913374768735826122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979242772181990855627984860561745368447892379690797559455515464685316302446232567403489584546225674485820204245739199425309426422450420268903815015268360241255980759752364816280930489127461511962315461140082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296678632462137991922296145867142248249288064768032108647799410041006003390679275237362546027742960073478803835668752200348245769490845686269605771570191917489226063520812973879744383548328613693956245039297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904558336007973927741092665573923314702590923389065438842235132411538801855923495613993022391964505045036935292701156630515335191864186482344249991927202729534595990630487236080415957600296681211168317236603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014084805435874252617101768185388355755871741542477544977222141926131552526910917556333193232224321852542218272914915981058368970250352281300214119248601424806807975369964777193949068046835528083473276103060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796392228411269794513477300492498786496563679490992913271252897765191817542796280608493237552081536111324033971316550439188796019838213858500077324246177884918758145964264233788979333081948816004011312652563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854360515778716004955788656579706658855104288246636305720777890226677704251268157197953322510763890368197628440286102588053923393294746720240885412764923864476021611626208242129916603622991849237822363009834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007409797210232785395756151283458061654111179267104279905793944971349463289504565128688478418717580205045832838748531373691135102550620102775345809439105001021833973245650472889476879298925945019875076712236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551872080937469424597311728117210519289038963703942357768621276682109318276366498404212493814409795986311422543648396549998347908430702176438555435125743682822815303222238083476795111355701480631820045322072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373010955164150331762820019691641154602682072366925527514184299699205398534330730680573723805041671972211273740507892726634063885068673445856077326664838457802771891147580132310551987841336521851907146068138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458776608807784535718393293719373932364083563375766884682111179935055410208556188490102016005056395416874510822060355541081766646052412496622442280454524321603203601946413560979200195902404979292367329892455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636015761361007722863196388526462351255380773194595635679653823624999265518043307963596211067455285214290262949826567553352731004687886573104724664933265679273313451229550591862329373933260860774513507753090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650517171150827820093278835872259839404630683763181180890442362621998812368268078579526219721668720174551747262781803268305854880397097704793483103543985590784355277667603313988460527150313885633246768892710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649359149783803779649600052124458347790017560424658666519980770288394385163809550430492196032443609034008517466042962743097683871519459826447359402342482110447572911177795877313415536095275957089861258677145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532057540308210145123820902174669757976534751725014658374788480805377351504222240429576036137543248619965589193922050469998210629316096756517907513229607778575533102658584257608668676453552092774827556754517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792327185395398097640485278467438723164329100290654953086128333026640075801296184992070220025559721569575883761687843643467927558635739722535648841330601192895746428093578580811323314331152874821797660397125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496964821331144731667650419767811084909664694257170694570078712640144865224284694889761725674653522050616210730010192624831468212035516995015220073163840041320303332423121670826854689317584366304307843507859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941266795136740458774169455961407626566250299006922672678760365871379327960418488393933934692635434154809518362332331752293703521029146413312752037117166754872063473892329378510729029514462927415467619479427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188064629374835443961440035352331030404117845722890295818058103212374382589870274737040106837777159251264535706508300921479258349892475127453622006105854575997369313529707814374284134055195444672148941505745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631688258105785074635656204791466768055698438455202770996971988980723371486956356703177687763789743273492829343905145567060744607970476931646278121417138182743785614621970880870210642110573778514713588373773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613228576602639388492849598982365657272042635720263748256494949126291419171306462805956698254936032613201925280434617043902892602799314043613702658201213128514881585731117821041310335728887181729526271120008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331099709283155468165639527101046113762540664495861838546389822089967783295501114314995936803982223037136329574232173574464734210974149174364199473195884005263872695923183642325491845595504534377846709470450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531270930795272952211247953149896990808946657476955651243605611420086639905609900038030250612423607750329341347289050131677280971316268349596340929224303119508487886710353352002371273020291659297525265703921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922773853477041779407644100130104859609270721132052318538222744487024332710398781147912754608083611568779215131131045008366363100751751102590028086427715020962713662397401075288445468331618211502789264307297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375873273148909109455374027048118555719905168393874535206797085921189640785489504109405699659887159886336207795504521932156336124685303174705443940294182926355240155452316098682553138970188015397045962501691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763452302986481495441009078835298012070126541095251846066620176742045257367994690771908453787482060802904825167017661982073061833123921935356900407052154989390344659388090475077241695436518580750664904594431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209571888632002475020791023790730729637463263366745942755637845356913673455240148971259094803685662823210050039400731066320752572831471151926332892852069672393471750982952602125494764330195357438350925828311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694828140330839164342486509396354589091328059511163345503656348245191505831794980831827281347950507727173359496633718821491928378711646390356692577994245739435547304493555939684803279020861419681508260648109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457694597535966732006038982629300007612514947980089567124525695598275854857690124636865949422422772717715184964175107159841635720724122437196806720392706478942789421712842641334271183184794413346064724314115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012020538073295825004974459308097824095299129654233184987988007716816319860865120883158672565065944140618446837496318929137459934216034848228831582897309421614736892558516992715531155888876007217034102445874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180313981020762788985174353478225120846759497430024437895842895680752663203627696299460180834941994912706559130840005862656399639110406851041282007153246256426371456355757694528492711263557719632506589654553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439977593853981121332181032819896994579261764935829748373387752352859464035138238230626945363458100319367250206982807384333411752831573143426398964163471270530347756991558003118159180911378802688385475769729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564404065594623837087236888125489491487948734808614168105521140018455170084444842948475507327366428272220633658240174549880829130188391401568090500008495465737300032747797209917507461785951579953202237285235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560035403827828184576694782337457113822121932616729501042706940952026502805228985909350023944908745626205345221731194095778301953605185038549614062182530618203651827337062111989390244889753863581809944918157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126487716059592097445811462955422310022008512052258976477811482703942677666427827462593951174380719861872226558650403002846914692786468003183603463817264057027074226203429718755580993868712404656223338914646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421512791591014606569795333133774095936749326441463702427524539335030130992833648540706984034399121245249275580299798824092066446404258596620088874191649877302754037292042158109378147131362262886666945474212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315215231788501452131321491469868548359447068658501098131420589267641611516210940535678073681008973424587293270521085357267638056422884092966588447779527954671073519329547471301507922084032823220442894467821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141493474043649800024739833209241183866742960926946070141838817811071428243965779638843986478231371542498947258304114514952687242361899676305881682084632743744121039055276521871073556452571336011455804558568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746032824231733853376529898104423224046772463204795179809715760258008857689751340594805482687728847762938464549604027037050853941909276993706680455171941604037635118018551365754510952470346022600207417428238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605949872117634151914882251867043955731001793710004665729218037284879797156922788883970419825456570642890898582795862565990137596875007856985342094439959715236676735599115570900614130188539560069330508261157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537774687098568014236137076370467423618029218679592476977765292629290417983927505343294338447653339850122828362798515026374542796671771484197573390657287154305432157523544932053465375423820484485088463459085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446762529322640845330844938647151561813941363435036481779475509763392559882786903696323863303425794452922923775203287448902004053266813935475285501746453171721459950814556136469252665022711533738181759785579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810392343723135368988915337494937863249849417642814170452840829693991724323286772564150483765773114493352155385230017811082761636303709020525950377909253411047057004656525197792567933141088663264059262317889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677586869202760143980501638714352047767388090057892836338177973884573441001499664332358222579253517110594856078918240152199828522694650958763149247127952016446764740270468954543510306982617999140223407285489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496381502797217307126592057826600278471814003420926569307030904457024596467576490185278139314813150920364104984596906022531447482294570702527043630406111445514222766936650125425237207439401827752508941432915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290527628876878250048505480059732307532652277925524199131596179115220694196854791873415669978109670256299399320816450717417349056433986521998663905570935211985243906798615021448623928438739820187602285471230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174536954301471914199373197227971690211613572625243116472289366644142621243854981362369496357128211603685441607108231775107801298304253814190892249208595364610821395648113205316073707772076055993498150342406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928218161152050464381405120101763279790269327122270125927081630457940869593885030885857777676988057712027746185837281858599701772111603710982739324147197937663864843160008415792725306116408501515001652030020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065817482730718247418272636272404623994402844447364245864447510469029976526749734435698570853905781915995859960967506128309101947488656507512613971363292764158349130420830095085110041407455744378492789857607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663549325311393625597895430009119142674075385925496901579734191837104016999179009456783596285732244714790732045696471978631549086284123332517481278482880984876102210097427834751646279055393851966889569651087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690318955552061127114631467170389157733900654528692327208081115787573749910353244466936165351752212468866080593973805468948675560258870687103081189892202421749529345821953530099156135536073159095673469906992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176423302799589268727305311835580568752761240919742444763356809568748444104546702835236514152765627008043630974774537678098208734980384982599248810670297754949535228299516546559850687428317628520857196139379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886485629471439877956655928074916489625621859267154146921767683960545008216421626056106423144435798230691965780470574714846007296818237228797756049608915817868672936323790241579204728364697021031397518009784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968549119454119347026896505991986041099765321119658106296655005116183651706202928808776091498461673164426864197089230648463056754573887202476016525776085293772109335844538710740272925919152462676235381797869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240048508393702558385910122669483580683915454791660164569148630523935977932446725588671741604855038711490317607553732194472830582219155807880752453696932744601747360524205864696869757706121867761972058749104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357025370064940926380803173746348540361146600048468762423108947237916500745179705248628467276633755173036873683856440370498066179092008317107882104981833155261485053735407503510822393924744563010969204227884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913893213809286961195312209050380181076587488368317882781425278626187966760682197703909326006729615127557125278643706989835444409613917379035454851804039733313748052358791095558304048153480453918785403824323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499458222499419419547256410317502114422808652302802213424093193932727678195990608112598623967339458989619071679777780259511631477576264028588262514815821643994413506196081175890461951158539082613354960388032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746375739464609840856589301848223416149865831503466082186223605801948114554903515474266266061295026878409754779814072682395693147248760982803450811893834040961534314863011248676465315478758454946522227531877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141668619124852526949334829785101811147232987404539612754022221909584405087230662326888849704223456700011949751859796494099148971385362279458874076099043285422812773058183040249451087063369869468674008948109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447239660235477481274941606983510131476402364194914610598055637570446515566712365256828270157445284760220781753972337164096986264920557668761564457744644664925477346729725557053882859078923175970676863982496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225371558783580701611560271775414247233315278135669400989800444582389984200640748958923892389275228914732945531240424775520838052379510123938435858775454999001272068286659998579098429303846007329623842629079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978954642745928669621641542751907207896576567620470876291025929888771283405806131718206887950962735523080228036658853093027046194006144644918627856642449420816210203832761116962244213863973115713011899185316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986281137459279032257848909339768816086708570029953457215794209809972205321457514271541122093988698745628011653320792545519698519103842815726835120109236799524290686799545683083885930136672185211353641724422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408615618924659308440274701471016725471601668601739769199766201111998930155354062817781328238679873988318548093651417526904050273992326953229393103604569842520594710877602232101677467927935625307683377220692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582704745219185656561730561853216604259464553856168837599345327673827887812223153728111341735545170735532082760440774525442307854537481125966546355745960432703685421573869622444796092593675008309891400068538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476349839175392445932931291380807387650050522006666627273438445404989680118343255349997625011921767875580980672332416782617825708911630179808819558379107540118050962160109308042257018054929764678411538769143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228713650729810644525201655173386046865040621292457892714722742676386142682367640851641194766265143710139385568064270077829659680486077517949221215629173867163546498898538357515324974315835413991322136505155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669328386683660726916383696779320102142029046813370491534380592465471149708354012272410065039497421641886692274473689950625289450277718989469132963467585879264235211633546474686426054856131577840361143149026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493371767383523709308856526434484194677345382413296885430630247782554350281959571754332687358317282793377410102634717252580005510899808792042744778385364274972065430922479605721400330661597939815697061366098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301111141092801541228066667058785550927033385009831156762851616492425509292830390877098893494607234902865856020542206703715680463500382605276371082398659793184830936764165636079070660523343411137793121612020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837360845127671800567875423588719510589565279780453783448465046814695167753813695184510308323903749657162143307963860154481614495523935111212189443023826954057860116467373664795652065872508159275305713134383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616265020814903557861244051834404038159913582717384337340452974499964059918656664153561242430800162617933750921429658088283221957057843171697946284551330968382460003698996180592987950660376071243272559753650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369583943808509128411041629096637012742498817616344101667423400506836167648232710388942239482025308696722292524340750602651298857635878137500851005688687432827471873232428984773354258150416258955023854489068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044369735340166287645320637188693821897801573219076299810361256838764838726985360129448160731761865806680596837338941198265008732624266960024090883207622611783999157440210584278984506303601419933928362455402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866123505834896282128608208403497311998810772590454586337661085050958238503075128425964285974947159675425924034955860979643401966466721757237237070785184646638370671702995416983298869124728187680273812549629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800068725136597857958599478019949652342728688988717813516171550577839158713864040578956591823213708140058713808836523047167127182200601860881125726033986240354206752127690892108155226032930044410189063723659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531897521523610342040845076413767423473005882203432316047463304350628142321082948724090259476441189103223374049794740857827762204826182195142821798112437267662584689519510699867374022732300260261505970642152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504139753620550910521974909579986059572694138402426755596748637742930858314066480318445315329081532154943458288044293735568005276670180009478873358860913649494583852689279136559434288174186455594102961792995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077201170421405751029551149137025545335020681411652447691784586943540341187913507194728683338966247610118301700497261895611839898160539092008911727724528273299586808380107378131400187606725012692645464509767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896483552427144875730583032180249452109231991204178629832110645618982345049505439716180303956851265380149225169487847955472418638278627582327821299397820742867554710924982182446861479580814083550046687559626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468531130233549462721418440056323974458753772751807146601657065035375000078000547610036786369911132398586213221822462464343501036322398596701728992842523411315434326293039073595342914413933874282187214841861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881159220534134477675212977463550655110980181145470892170124410634923949242422673834943940786546583638685970026019915416838558615578967012722002322003168619541970289247574216667668015248082402211115619098290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868313324751453159002335440951714914081359273191146192006775792158563310761254707093396116441508800727293945636849253271858915516881472096011415405664003892102811864854595041190055800792839471619967600301877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574346352684749297906578001728766596825621946854107798742184455047104825113899365427994459320244389898513442567266932786132950485170204267041681042398878776628283501931254549510108703766963812060312761799621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567927690390733624859034335147611787051779766471010750245076816165572539548200948091105863173298917531184160364021950346357321959475586008320829267512378849551667250649220720609741203129313574353745218554549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524352586080827553740999721015400800469799279434223454476897075803131490654997645727199699628033269209089155838176032139892644880237691008274209066808004373992504541223684971940977467046731673788785204941656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822955249075885258711407213414016352381199891274778913139757468280934247282311021898430070244399964290644450844788027668653946357835978633014357430738552248011805785516300305948035170230529176193766804489745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845588319718939840420585178312625560990751642566660914485766068367937448065297240370993339629283434833266104136871344725962944171536616832569298746075193490043675487124501251738822895942643220617183770595166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829239976768526059094084769255556032094730179889261822947383468868847877421474782112462900504876162420975722951786073395988696418605399569127426110537996486482728821472986544793727051143103641539950430249248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062432887305740374143132382158355626714275687557551361820191763301086283797258551156741723050471906087361627708326296442958048279756363082376436161545554061698004581964467066781024334784598806924847727489529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138528037814479461864582163474520398558975123171364079746838514559204145005217721229144669927864765201003653978899709419567795422900041438454871434885285565176308029925167644424768218649062151219172342568685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204828296777616016563789757634979554872551080910578133942034727744847487698984192182808563041649260299176230362632250441829629652154385628760703742186814004738630945015910913254210303256135110757558287347865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165945829716486863220484179521964244983279488063134646201089139328705313455615037887692114592726850514677135599589063223865076477828269016803601306170856982886336353398216641166133554804037038210034458380815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207038610563301262376287698173472822425094615318907021508205042181039774894076572149908324785285459510024679597393084110627252254156964938923682735814346077275980334626431259827888944181849173802687044960388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336078948099755916482490625516855367948247405098464960856818891720369987375796439800116529527027723722601935755572023263101476869284762636285189304849269092640985472493648181412831689383283125795662135988355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095885763219926030004685397559802876555831710706399750666047614867776356322611612715224267109673618402529108255244615388577666027796080898302837068778139849238125451717898757790676916513246031087551814796001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278214574384910806626737203981596833114583132775573719396476213947036948713448379653367208865076094944310674893862810166860809354876204062953142683679016223243442162500961919886528250184780750093092989616878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320866152431989177517561330725336906062894401403624673579168612419076797307215389609926091477800392182909660567805157424539481270515827865608617662808876754852826435345792975109103743243148049050997201340093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111791641573964151622345962414387998499723972106259104524266556282960145967901286176415352478643304785581496257111395603251503631837450619425879073297479906540337812932343549647709599415970216918103681473383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414646926617747817386015615569677680806354280813392622226805735860439573916273877143508484770186626531697488864738682430941960189287589120213872770961538488095065653207344205898497856821448109934432714379412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497649479552017171086517069812241608482170721710164948247980774918016666318076045716395251838609582718327208657052982558926649231274050673123487720349779982956094106360305165816819038480111470304239018204575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751995705545072979236662085235078168943400320475437404007621799091881351094993966943134279859921580629270421382675621435340592467202350206425854109685955128295988801679474853488276232260898821426027966949488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097832652921682584330479085478336542697584330779557195200010120787240198813494984438436763827041174210036951169011180168326999466120100860532094157901928897613978403516511159934642044414827682054550634184830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407732247725732201913504568055999785692775430546578798428594684085867841341145382412407206567559826482625761903033834174251848538540384703710069087650808535086402176210101567282914356736771103511643978363440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620787754817839108197321829047879932913960788741768330818653181999406597926782213227134596324714095294630761973967499846349363609758067253661551807859814534953582160148026023317625201506366399391351428775115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730043799349994206586637985787346060480619228119464331562925686710879697123496236406193738811218020737915981801097590801132722578430025011137880349579204391899288300516242921760033764107933719681331920675829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349438431915092146293081995018359167094253026540329803249676158439634711435324714370392214861784382826113866885521598461344505803302636914394174355991753787166688140045296893435198765272300845846550156565989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408898805679580669160658060940485139280102227697615613826083190760332454846528661464942948396677330080707320067510426251414296244714536875097068785066005939402651877861032765470280632572990619689759188738667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752729592739447176400925561852118577244308889458931304570975272959273944717640092556185211857724430888945893130457097527258670714556514236034181989031519545721886211491710345305965784508261868074364977358317577008647587996432274454895007809667119616215136769508530892336123866628348110293980460743553427272442810490328075676700337727112094912843448745081356882215603305043883517541081483037534434208412208168360581326234576775427931619860454305044485105558004116794337671320558147058727208825360473106496793184796373527884478852058731828660065633493256023590888983537772507970200505414402105594610720764924409136337227897399466397512341178836631250900614162322765702854104850679744981271814676430841410300237525653730495276727548454599978716332533105061902402151814681001465126285103975983941288236986211318315247764967957774419133239479855287165302319986980239839847319817881713331034433989083795800005131965345233833901090970444714347942650262857403151815203546507282311838519865802936213522437975431938019834329143125027577667543168698886028656770135003725896964458686834176473878390665444218192358577310787002319174454287141600302682837240494643603478769035733261881143101081321885527985897303450534403303722769151404531823618783217199889890550829089662419765855980578341428737306480985290782145941126494992196511361256777307699460580206407239180866900201756956417595527211359337589791160475982315587253564456825714374658566889820373705497045290715846973763555870609280120176978053293579678380795022792200105201676898873254108389319250907174288810810708623207551018480041769696826290392399839381162366384787130819320185559267865898070985022953739494217542469625354704395473241339247648521037611777311231385001618713047106477839324875850063619911967787753268071392468984403882659360510854652369222619272403499121038316226297241144083556868049980746048371359252075390170144693739164092864863919053757393294556536775435632948953085479197356181168943469443443643030871444254910609829482881581159563562993377947392209785110406721664480320531067091303759488434578734398473707653747404793080903438244339705830532695856299847938304808177975089019323978819644747281348548648563997367907690393025212859195095945330313797518529818662620117612609532139263391827182563275830591189372106915776438388722784228529009122612514080523150812027262477370667161537297962365171711830918171522805265375933737558128234864296932266784713386959887691580950811504993633735690590084289200705482525461768954164710778011758607143286624044830552364259377579855244869608072673059076502488514081476189179998962929079540606916509862750703309100886611993183653478110689500553232123231040994315669757128432110589272907562665298306834612688174350276344573487313081278785396682594804502445089945385062622281565720665625908071060090719474158064342896173131515706055811399896076568427723954812062465492792246644108673930170526784065224750410536043235086881525438218840578152295198789560649956069827453289227327038537584520927092429466734689593377789658067695128590449057399130794876253979899894685344867084276328476440980465348855120943606428893738371053515595879507510368199958600924794052205154880777749983061313790264128273715757106128173624978364745020722775619521267432735816854961196988825831126166950522240218811466930625749538470869958657459988789278684738719864383790480463746222816126871276345113094783166175997075950853325746028493740010436450345565804494429503453183381290785088833385837869771084982066510206279570766983344517793452718037691141020755747743154293290326295321149788262035159874125464228843952777954992895647543471058985851590055084900569690369399463805412744078272079588120610950182666750528291004286440115969091560260245872117456045510940768469797368274814597904045521904841801154566347833534380881534140372398178819077576306472338368480766171878875254440731865830501186475632030171398339007898754244110262777492594557872631516087487025048062038162606284156754299711008457236079436838831775697116071774760197736299860847092256124190334430386806075160778365027891666283609317675969553014936812797935466652393898654922082126132776378982029467995816243987059362391705117507050493924429371228752072100479003695203530541747026881003131427531174456246407354520013033515441611612845306363822062031827141203471057333057060956104199977441294378972333619529368071162946497417467460616194428419577150642124491154067073122138420641412696715456643891594717779694935195834684336783221413037431073429174373437635441590737738077683355454522041607558324500141271289974101494705488647243415899129609228298624074551605891496310210005958713471920979723983683128011017526431868611183517017358675406492657915137405821629724201883751029772027692280780173235365852486610373552463605197417587182349087381977451996041351604688086082725590610482822257576746358191662903439070547597034809044004304333317413461423454127456779872589232409091510873059202427900149673701513477215142571480238781897278909931923211885180400304976289387311988687633977056903190741451762975055829507905515712897726034354672225187519472277750347806298881580276408830585887321140899356256544526325626293042854399332825503295028936990777054902947079622008390293221444112657382089568543447852253558437312693375479376599430699100569908215603145081988649438948867959773652023776380526949555871454270658517474445964682352694105685193373700491448623760659795743742949313762849542374769629842362040406990322328625482822335420165228291288443421575127060202153831784521856484115066939436436446339032946286921500120033173722315945993702440466546440107095463778627366769045642599775860341423376275925853631264370897307579552699685031320690918306791326542030640031482455986239265759757317759128625308946541251662284071633701497902673843253016190101372978864695403425694557263052203876294232648064996238163085500312651680544788556819973108967957554426839220485130919026882403377120177863986046398002560372060692953460153673513009351664904759969041534844228406494643578396273959796970119995996897055007139802671431539123914611613581834068087605346672553050422397928096566221091111847789650335190031281930814047064787403671555521140340703039890722323391594235126529717112144915912874696964544557092280434733841013858874280507251493201836765498654426190687675030397956939024213437475259202844493707032198240950852874392941278159586475430366953365464650438122955385696018708146303600068102231935356775884221706627177875228953937497394498460688195899260579042663242818188329768257087830890164354054641753677975214014916981613499304491042042741729907318379698513124559586063991996596689961080050494007296397098959517574634950113152395405436384247715767305796899780935112310127000606831560134705616884208186210590658438546853522653099408095506864518196431045500569852864036972272644964072209107280506565175900536331942571882619016852091109444623049387276226013009665098018150216116189314991755448664845101939640892424535185862966853588072370252086290396375135442408416767961062540774535439718720220389829258815048817462632144019324591263846776453878214900321873605288401615814676934097243424966959679745512952152475413003838241759677554225154868903498467584610663159419881211797133452509275307014085614263503015271473708797902296635683001787990288084193893922491884489117670080380387588878016977011134533491153480210658508757002551736325688200975955274871225357182551697875315095569086898546483794843035187061492313573402963136527912761526230610431409239565352297493261018023574144940020107575292488958929324580351889348336232266211070472227951789643113533222151331112813026996570565423666607124273606758337678351910125109944370304629076346614964495599673032125852284006812886320601384391535239320911579060473413936297323492759180894233656526093948313364810290643586311830825965878597847150234490787476787995667424852051040103999757103940220630691734742020896991756005288898736759396629367401720982195418337128233932862477317196438625665314551269922236776677708198643496799841526045194640459016395789604927913929104349027568381726840470522981408906713149152625044175452710112357868012989368284933913963833660781422917945543449168097066491318845378120257962155232128839888294830960254154515830155645623132845031741857697997991078955656799608252916553758612233838070069219579639419837426117676769100507357501471041273917783596347944115924160740964918923864162314431509843379999957412386084556879065017966046590401190093106491459764550874416917093615978054671746589930170413753904682544419849306977396303361433004032263704413884245648531960009102403591486043419567188919858561565546577508901443177712861645686219001284594607421607429571045831400462012463901102101932368874623187463906390518460908247466122225868317169890636064025404893508750600193538323584777977777184156692711224004455167705419310730388369438797889046242175900466660910401636227006450671672563298135619169577585613333903982775996522509904038709327898622159549437997063064807096494177080058122705593309162118440046358937856324358641910615400682047879016214044578771739810295260717300099121797113754243334882266618671805934535003597940626101694558948798528738239461925927383005865786236901271929638265926393781959687776344919278138391527346851031712835011677541289696340176336880334761324250065479448355160024231256646080107867025860376099390800451756260090655554130984042735743005006687743313528206170729903389370532225467004205889640465239361428307918540416966678324070955958770942320094156109555343344349138543884086108248624289859619741256571704240067876712368593537227109156704060621943472602040994139547201317552449158345944274919192913502355834404187206974345886053833701858976572062254668638991474061713844091114054244489241812528058737844437599033702714432320785204641931475594758314291941697190629769790449882130801925875904858757010280498900927646674318174193127387987919086670564601741410451836547363921120183127264213529907507531674186041139085079174044172658009288966400350856182993724721368434131495692957040198130016060875412795746641903179733259392402107416767024235351742211828571516183297681422260730902963694871330880778555666323972833422527065650730725189030903950229751455450814134444281654143644104921750622706436286101757171120483665814970582463578007550456264537446280525932841567885798506901058045279756262857220830478354366813133031723323813526470752577952330152891663952865431899957317457801678267281460222640381899566937994842421098248974200882331114001341044095160930831309054655031595551547397748022146240676110527161375799862835439696657835524567007936049751876795850043478594444834874734552599963239258820104452878957672333911085208137994842347153189526128187510890512135465496924606655767345185717740511398090050749322800709405692065544287992897680913853288239231274264963790719799785249090304609585020328130118819189798753861277050983112679686721178100609428860334160740802044853244141445794547210546989291664998194159975081170839975855253125347930707237719482373833676065541850211333735753571160498408863069626498901511556298277922304333498449367839151985626850432520084479855462969126299788313029363064633704503315526375204047392241570728577799880296353289006984007678189697563540217661942944247537256498457226550678735909340572389793781914608031982711392480497941100492298143175949919931032808979574725337681460617454331326448924803701346264266926317342443574270517747565067556341333600591783137637375920389020426517169186542244841360946598636267754333221729097280677212181229450177664232716733109192752337724245059080858927565564344115484438889532132702856054060064352403401177439426383149269420366767731249233446046152792228711747373206820737950407753807024875139736974872208079418362724579267158605875684373825696601528845015936360579976487955466689796317276414458267140983930260584443731183219527357824299238053046097925321759529437646696717859956554797526010481116090019255987703160369289053546421969361790098547207855125725975325768780341842823941930116764712780200132449054170687194060874864250992490041243777990256723623875213448754686801805700267716590457174167509358537466327846614717022291277538164893581403754204131631796620462601683005835840278084250847061028563214676349216441559656539951244111527225209885576318078808628374443953733638662891394399045918693562979931691320743108491238782696708173798380276007328352371305703835388120192178074557053921312504821976693406394280234533509698054521919641649696642051922322293325224980990680943829860823933868677395445267363219444015986590406652867020651004940978671302450896050636311474978975431863273763793202279530010877176844026182180038590906077029345978640932969511233853261494565585967711754424619462086741789881434778027023789183865475073672507012316459542104230368253015499272923049706500688744552908893664655148193848056374554470319717186422720965870630049834366571830309458525285629892546132607901723746233601382089476404721767102107836353063283918528942630970835241842688066639724543519498745949527236882351106475938370531361494523326299006061354420207900800784435918514238109540624635928800749174723260142829150664735646949149075313040411948746127584251725422993376561913228344136159688451230509792290809347780610001202430793367546069567188678475890291671628151047910984819968795053757476103438392892981834755913533728342888492285393965950164594229684902163576984603656667706884979061493789586623897851395030195525207115947916243038057133910441235127977174258949971813208993972409457630504381765420237749372929236666408582635630470188942847136621796280779475814106472039686900573358837832383938515643676929109532126309530237234188776377595132558571988684156351143465444921346183625820017739111963565973620917480289510711911931216161504935661400198915406771914740604502008489007852104489840715587249131814241237453147390958592854919261955127528154045555489486053043951830551638652963511435855426789578843322470303223984629694037003638667059755189622821668494721551679940102372605276192061750456049663717076263845953005334443878994432854366301464142075150267652998714841483859242046843515052858926483541295999641906383622255006162029851790807999551716142892743322162806963512162902965050345455980024292038066113122499875748777814543334957813655800830045879054556552375964308994728294156584689806294311272597554693021887912731035300216864227633661031890511086335963986070974737419552934178507801365337868776791151473833252513002371910235875886798039385529704998321830389985333735331510345804434025730422758682609723983422315017640803327317622631967565989772971839422971652277619673408573444137475914779317933398924359940581396032281346592478558756550575159428611613176739552834815080851852071547951439266728751057441386769718902087776119592459359290863839696200576865099629303818145491280734180972040320363366766499443919936264145227145073503705907609385752440000947482297136237721592630836022139158855909461407406976301297086569690667624421861836355204727903533175309360779778798470802390218595874487896074523749056283747418931026806280481743381300198221277706092184700815252327145986723437854310497839043649305860764535756025983828162540984963998318112971881438639542654408280086193057291799568887988182572440923086077708626351313609463097677409970284727668296668542908454052022919003034322471898204993824806075163872794566894084973666516228133694882858339531350502170536111817502101016960937372882174683892618068718872117122032067336498312812545726927631056482587901068575208080633928751364817583758109695596993384841991062692241136561171129547967778123862393493414008547053784583782851512327987308840937357211004586036545449453018681073293761108679782828034366133339780538614863594371635008771193119559848021828992677797694091393084926892397161087516259813646427951911630339179612919001760953221655734911037471209457900418602899221551175915683036249471608650518632279742956136519830351897142876022375071605999046852270284824202570096299382791478180154066416917925969650230616749677247841947414200924297729713888325116655222730338964447305270490241477275647154092376806641652822611221660551903510495321695382999570174114651029984898251643905699093945986820498552583128764456838984342109365894310511407555838492789369974095013891988212479916209888392435587365554523753623890641072663136573386887150143766765743928298320734613140394952617095308448965800565584630952329631871245183661663042774985273620234906785915576936220534724261112532638914302528937667373926286064609916642583999874647434141639526777322469333134089892282135236716095628251349234859268040735518153607196567395027069135357634343767443117249084553776703266698841449114808884801324930258438177011878566635729353987811406465883694172838736570843375751044799123597365972434455742718384733620516409860393102195921211225720343651001396389064945296714205608908617698288316388283825229707658189611895457298258107339454017277497834540687764110778004407429296639807958026689312946890891500618618418921853041643322169492782133921182771902167520208059672627494630028053887779459621856830743842989256463024089063366760647389704968736267734714319346437826952783760286146583892789336232361603686965888599440717090143857650085623703570747288123004277647474703779463200055437274736584724026183902508185020399413109503970812481221077612832459563995640730378422829494179041799135365337060929535804128449019567717436326558733430284401481499075465103281813878210907214339837454150957218087233216393141184885404882476133156499354030311313197143885666833802176668360829503236040595136775927155165679680295859733803613440693078137573011613002657970242655917863431943626466230186872587963057556366078289969536349814522388660073014771879198641606614390805777255192448707082910976735549911200612317536184781317654395572950385452923653669413348562178789261547404561504523088531184389783350748069944802081583047802929139502742186788691980176555468181445443074191102292721931864440749790317259939771362180997111761468900013772407009234849963308320304297321967582789400084665235071155111834810320144835294744885188632413303960676395857662392727435386476553325926113916010589720694912160419438436276922502040836018348118271585534392555374582362825523726253314359699646366678255933821009175987444402718522512906425157453594796130527189599488847824353172256275413109599850442774753526388871189264977071705502201056823253071154389564758303122551162876396883514326272862981524075588799596209804394659688932951904490105741914199814985879000053348961206916311175468253485829007683953766264145205273936078651380572241506897185582776538952151358565897640730148811113373869245888909822760229733951244135075100387258948206647854453929055116049254655683017922363526377554626840904947800372684716102649508826206935748463164396897896270083376303743017561945738907884810424309285523631029835517451745446606529767081994743205995165291596008715652115461296735413957327751678443484864598339137584856250554601750792209883587719338601394896751483376380213903415290428362645376374580878281537904708544575967614210377236123296196402292022895146968811447058289309803570015041036948417054728692275197044694697292034951969766217664143620321098749717299081440003715739281891528408319742294373367747782587092187172252984069305556935225836786253877699037108329877979505169169629957607026624877256111532102452287179703093738005633540592931089018740049575133056457554686458819253443722717048411076045834505257242917684423561001394566824566042880004740729261916575440953365000544583331333348665819727492760012423238225171846893069408572324615542392813887422027661693797935663441045037115598236757714312491279623141150164528880440942390051734645637803629395327787801636044104275918642025167711823591081249478448954880725855125745496079956918012971317205403842490960873636213513109752862098622426241874243578376772912641791880137675200320563326189241018616513034810244006856808606110481129427409009375274857858586840922973157793668860861996442907361574905330345107467921392139357341469378267840533131992354433034607195155205700661001169301061146455648916805009145005561378494045436931348591061841933018954548638521986008082004028633222685779286594749900693607510578023474201503531773730083649498916728935090935421209752074727250436661880061334959093061140711046459924475971754240199654073065408416973523925041563550039026440029227515519108629413672360002694120712781130876365316152244335162266919012310171362950133169807700976703122592334099542352764898442089109243902756481617004072173927256602429583715571067168541418713003571310230544725937706454206437302838147841910218688218466567138326128263780697530988608290663303966984683962467476885114506491315186155246294792481115987311090797711529805880920928581622770652756777195393112035731943345934347337295189941572147227619036780043087959047999266424281962016300988837148845043980122446245560266040861613319972328497876159317126814004045056189668690984708239413708551813261996376889702124152313781873313001560112199565703541410653535638452439655642672721743450531708970862034765475867412814640719792280574469540684927959945904582090187317658661625178733129693572624876301827480530656002946241810151431318690240874938411242158215083730741283373100322266839576907350698817682754848177304995391310318465327838386562671747600180627887580492540088784039279856464964515527892734502001541003131905096271080962889523768982872651391408194511671959166631818853373127982279478096384186330812324934368273270884716848408230651068049840198996614184868219292371243226293284424830236101798391004269904077447991908376102111123960672507192997931365177067316450479862322551979702992566531510159660459669015088706888298252728640598951425047655646438613971390930202571945855825271392719811327758886955446292060520268767522136796682746877587452876077863449138269956348008254414413182534720494801421265432982967846686054377906133891020607653897467837990904198226428291713569800434724666969930157511495371520437403191810795486894324062290945862326245220966757449528566016465787368842465402656045769732900129583787420171151005742659749253328682586625702458378115218220127757607872278753625441767851681849197994949764910003693490955081945020556381122496479676624965078580232712368944622866979631971539024990109911767205329659201024327415836646285103519400541457190714863882469446903822456883885007824410392501635971537484905694524560531254037917603310165347750019986495805835536614207169974117331055254042055211077318581045894610462735580709471466835287835222442439519510959648019339972822544123729119753352333978820050032094830778066283364606324667100180087066628897715761318039445308517785997967916175623642457991318747995295187367560206724336078627831644655047133342557745622032970583706520846148146180327955657231128913791506107878236724170631574279086027582680483282048253059594486535530533557360894366837877887790883577331658156656404633363117896557755386745135965474379288244327761776652997753788443212262675878961266383306843849005800577613730946043245733141597876165553722630161642335345100237463536829894247824255806480766433618052377415631403789337126999008115460840814240586928446408742389124577519366466994637359158441193177950085848065280520451386178972329910964611770976297169880547414864040358883927950040568096688268252678332587535835160050579458531484837770296761832636064913660564711850804916359111816805735686256767574836279625954231444084268694441780846545900109830083247012732767325186296528101198756674251237185471917419644610996381436922527648768652429643328488026710488044888015591064476982918336443256383798347892249924247347347492558557293151861103453413733567227462578276718755128522961571935018632517217599994227794412512769491665964117645331130767839435875570151126833978807782308932767292196739065650167909884959899971836201837724669791646815888400401508326413390170244028639070088310664906834976762880088097131577264334164705251536471773066139272240563257100139729989909559374773055963634856006159849612535183107450428280599101135615276461371873230740548644387095103762391293174413926799644747323618213633118585804069936583777606558414953328326602877854696894300229268531019343019873705871735821809800669389125076625708474659506289918468346949911962050562881006235243400502407512125659762183568345522576684049165251570758414614413289520970093068729022716370563859061059216969457351312296992925835675318834452109537570173563261816644245918307191732592805373518481830987229456262172540444189864039750384513606111006210718088689290538855653803212319776645007978808922913907197183215533766071468815888614665937080218118486409491244157801586964737239095958580311735493963934232398121883858322269062273043691547964773290362031023158462282118660828589608169094090006189644213461734468252143386306086410764913030963038606156122694775672705661641983226612829559405418526700993894418145266998151219653967190513843135365503213138068242451734889475925031241924841752557403818235113902616355370936864688471015259866820062966604332671588470284672528273675136369158934985721514957696957393793129333387868587015586438472121908813119471337087338232750005623992374477172103479216899958700150469805895623651885426829398566671272305833174739467989387917984475726396699725651509335049449623932989411838095115220273859361991620893155937352131938012702984818829682456924664015891024522408334073529472376766018719083566257343946835470483622445461993712921994552160770522653798347510666769463255511566494911680705230528173086908826823801294125418146730584593435812734334074634710981016973378451137000361466614777973756676762211878253942360370654923722566475192700250824888860406223409811545113334223901773684113599153372373184676634050715689668193810358548079907399613453888826857567243504591899740069104470411162878652679201061613247199984482371523349978363752301431351328269553952901086494205818604396159053058259754001573475299749827230953870577210005396418869704874528973591568792707994416581049442687939022278200261738842463895922113926387495411419594330027084671423706812813778229848743892258019606732295576646222560726500832043734636892069742573101488777832814597005506211252970943955134820697067809204578900900556359931930300746710425701791847467995201645098538151015396961735455277804306267757948771097991362593662234937064837059816841914409008692838417581369607702626526373984217927518655855340018024947388424795076359369625165815980054901107970726953244886137434993884408366146859209020138746292972909384539568930915524703254564948483425584353927500268398089195124385714727889228818004727979105941649371664175676509443374654097289014406328130189143863392806334434942400260228810471699972553393957076410706789505905241632902212917615707202813379630649859882322426710298264264548227932715480458764992124132126818276723090347559579303115848248948301417317193431046635619982934226608452419772743000894757519064436425070401157381317794809599533926915579884005478289536523956367416572964880463463057367371172158099902098944537332554066492445556570479772079145812304506188806693477316115492135285980811109640356420103206503138783298144430856387206579389407056232795868744608528406980628390128319940403175369817291011930274216487446018619632159446845380755709872212964758426105804371014414489107488133766721383545414247871366665387182071284847617070028023077139862001523285284674980517160094177008483060781630740674129158570458579809143541609290613494597096889257105679100556752900747504379946338211192119990091221539655631726332987359358386665001897021037681056553912581127425650365892142910191935677400796661271382307140818828418649325456700504789023579983462966520539034526722973679711222964757638427953370703079415632893117466348996286910518604722726888778758797953654811330971852577488362549950780896238311682394650511685470862613640217820445276226218509468771458466676588999479371028457027858288649455781921024708840980548840494289202758632513512032768369165509333757568774231103616106683832158080256433346454271722024956218060593586057783683982546182236449833541991908181754923962168710528049514224637589120113615979984380345538987436863794164300305130378895831279248454986839906586006407899335281278519409840167197297270699322133907184209551782475206802684636165397716512345743403044324661478177119961085537282430917112635195011915381033226170096078197922946035526018787669236212486362488512903544283973792325138955506401423913076654675381145244024706837652806414248720891345137963859994493516086771074601432747723851028474946663633461941723016077362976288977251283002580846877265301516820292508730013462199231565387199041060550741930363390184442397874423384998260696760570205353684564642727270348943923664845900245979494739486041667113357170281209226805278156883353132643317590299465385748521847109720477182480567215619231319966276378282067062797786438225580872740355388755763722582999050673591541471494743726498397870576633115053342116121745340896541521554977462478886291183035260403687328220250708935308435234580815071956958892412605287571839649630550766286009111672617530072817388845881237359853726929926264266600217297690409322916645780080286157310501383405996052151802023374674932941095769139999676638521753746488507214642276836486091831973323639215924903900069678881210112974635837340525868785445702221462087368587279664145301762633541558879405907321222539467073782654675608107464960418043395795387211330646467992861229485713933856329761617850891155827661197902337999866357704749637968223993509579545082055051118930347793570244303528304428347024105904612246808113753997074287434351207241798271000829331913714192887714098986370546271136142170603160388771587341075626603462603469320575746363265306120596147410967864366328128489246217276990604400356483137270171843261107628690706296287678248337252181678495208701873888835266818806885615538210291793846881259759223871757568737766365217279182935988891248129048499965476445965554595153192301986734214396269052453374634498603717927205427968168892955587945755341314658812833102455747928050200866695716939577801534143906770746884443719972294731420962430984645053185396521906026711006056621714505652396167629158214100393073338929186256703337144724170924079448220819579349698115524925573254088088316481951994849251885979718179165071886497535369431957636602624261722924254800560595721748153559340925382832433344777942345089465946829548015616400884023550373234965498786621710766801062510274472340547773872282337063244223465713099833535636179045129664535920772793879392700954660146105091802732697555135713654909405170986914333834373538622395662531670508132212346736878144276185478830585005810785155567880769397324212208730661826200908305041506079878672078008638748314710467962218043947575563099086244244382809070751636039213609739671934940819820051893084634184185137758694213859700251923572103523597814756562837006498935806194277478376736716568604401242535394254608374734622249608298272472402187537341510443884271408930329039663170598527274357572249198043964068936908330704606903363403761135669272008017206016525870166209246565318321783590348318466849633623177354463039337934892379583823380148352466207076888417756468257271713619148355289440361157962468253470999577854148164846673573561133803192065822135496782962945837948992590906571508585899240368777247095602252060304105945472235734307619920200387034244022234909496718095119479811812317662161328126574188879267178040238578005598529232561568824676516359048340588004483845823024199841762420397502821442033237813646956129181609088070522692744785023579437156142854961033099970139477214606174500788247541700679178188133730735538786796010124219243417398732897632280986762293745343728998117259300822232462437598540018372660873832647120725544913064336449951001947825445255425611985444689633861923341088611902366362520061671773407268444876708707863399288518785748868906955952057560806553597236255486657680659973002696144997913863949137643343951178186561697245750119555271398766633102419936496159367342333676593518995108210508545586590240452439501495865709751688017729800819922259725289161528326432871330191207202622505599302105520059364272067206743658081959198389468624150753802751656622826042558448723696342315273704964736012472937470582351894637772876085862713952359990692232587035991070927536077178731275481509403512701381707948704002794636433688427716924012826404447538300216806055597399111532756743042507916896649365346106649030339264547982624507527529703551170293895493926050261167328050806361911350415038722553548052495030725922083212991676993938578960521919040226593296893201528053855848832676736575685837994286855431488484598780431993710784840893374197790800338636966596327000480075341073313028695828601359287661350885694130726895270622119444657090135000285078170081732969360699447808011650899774698383275335446223117890041424456125659236190671377822188309901262050387138637461107547138243333426066111911249960431197487300355784675385580931940536564143872408715930702800223362024034209266924841036541392460325281513910602580690086792469478464151377425304908113337485925659032521084378705836901803059338532970010969600087425044814184589259856965345569808272371276255400483792707641017020870006758524443257752645790361826803605262387899668756268684575871134948261702787264207740532779178396605930246805376125287836224216318147642047643334565869242915619461741479293032672745331987962759051058255643906412796059960516294105583577003536563242856713972433093599861784854409718181725544777914093209591840501649984386128073788718816754788756505663196319767304705864894624045949269766453285109198744337351215664488814513250978299799856828301830292718126587579974915259421426066384493476182366943613010007783474504544383940594638253164174696216796375403949152116008355340458730070341674476885386353724175911919125730296287576998669830602845055125425577813049196573537081097538898051449828195851720963288792497596687858557626872836385771428233523466567958926948548919544874241952228540275810132725725884846046549518516222527214858969727263289515266100741919597178328836594559768570577262847855954488372407579162883631484906477914553487265755850111942264869962439109009594842195050118285457021898741034571838981790486364649082967773150836776997335515074170081220258053885245195363983453187617781231829233845161492018946787202174802452815919012422558651698747259021550762497491226737659456330761660211943484032397991440702488173434330292725710928657389894240649561810909797654985118424771133900728809299016301869411421261170343722496674766825988818337774891530013580023146024260472055275799319899409643161144298528316114869897317486423082626493416316845278016222869452176524878906995560991510960158794169103884595635966852936125991245729283769357494996000637454051029331252353719421156501331547537362809071428157731851185927633100144847811577305157277411636321762995559710643742787164040829830710463054191559937148153916125547811264374389039745212073575767777507421150508298100857375238351838357539933202975989157824880504120705904644073227688483087435345122645470626940975444513697572570891505730232425735672721085168470673901113721018280580460322479166007383269145415931982924325433746486049633965342248172938325475111403759384377805581002679023593384798958654860787419414168840730434173496904240691742895829113388157394322771015619624776355190240217127468627824721979967626629009191769556438105385692640185914761669543194077693489655590603130341579094455197560296624875454879091117532699370937126380672256751463060740233445983148205780778552538169343648053568079452045386888722145805202281371652698201162506165729737974807500297233921909750122049474941700659392967296028738767195222550630864385036022864184376624009174719032833908399536747468613101093275450853701032488164563575489558603679918936112978761908356737312274823781827018531064263096134724871436054931890377026133291202074118570203965492336859086327290034787222376598941863189523397575264482623228467814741678394175878779284134112230198805548371919662085993112969783033886516758544622791340538447608394235553449033163300012475799652761685263194532930959627313146726192661819832194566480048912724042165730413638330422266489785155626456553219711447297326058213214861528010097276801510402989652020638606860045981614285237499912085209347292307977350301533905977647834289074748778151734815736268828728847309608641886645303294760075330935853802770492600732884329411952086482971131759375253443889588142555483851732952836011377915329011335759811747590808295590475065765845686049895198699305066250601709707832987606304681600952109729778751360186320545895578180059587571719117232350915787137515399125515052606959476059331576350909179773320833613680719455156407495330357188422563693171183439732516057365037747321453500563595638262474936382247058368475214260727919955251074551304244338336405493970033337134880029978594657544942765183034121119702102998733619911776479300476493264915219099177723625580527127257799284186221272202594729578364241569518389042618629319498502398088279018227708670870719353980183576382804721762702614902491846340252361295645126001797544961312208728483738833193857402018908281767850298505262156335275083393941014555472125637636854640790946476538165508050017967373743140990894748416914300650811821039900941917142905544287434869177808284127163283349333738760189805192382363730219765007029919984095395364081929393544844337867252570777295959613871007157921472183707580415005441349860049290749969893790348810208279250693005742360174677126398250444798794775513836887538882077572120635319586500300839106544714907549279711557218460901553945733251863898128582468776959800827417655549925565263787184749887063291494390803074172603675896802548718373999961968293266122412170677133971378809252017026230147178208006391621359820529738550555820959403332647089156195552235663806264125747913463825374925991288014312614436201171810061047225858418500286341562115688441856620282727660065536243416531861727054704601829523329536489605733307453064730077394581740556221801029658695455429623213626808519358450025873573058666519561744637181113447756361029316422929997712848473992479149975246975746167652401333988711899350291995072594035417767887842758631733862021231433122324549995210226464191705902063721563648704410426983363333138216958848319812093693683591904114931623478727636627592154568410702417405297925694298191498174063952714478690511842343371955926123191937579062117858090932058847948363057956121560105651820752164895293647504997836425968788047609259997018653611113136048448104343137267327149325176406779591282704180928409930214809574578663493779227121375537125494983646132191054790119508054816377823175531880540483447456823482955282130638303595464797553133860371316576407833408859359457376719674086252518097818178803698601166138834712999153771123834154528740489956469028260300688542763451896235735546181582222140719678668431026826557381151949371316182349253043654779188727730395772916676035989068298497927532644579302056250041982158178336797583245820167033440163751943613079360668770605961550745818730074058855418570777129376539546111235520177374526753650277123601026263711408502493754519972388118497200485295407605375755048633498517603934340365895296086073448055312295533568821456711805760475884194205834963384542165377020226288732032814262719241911346980715350623640604880106101761396430655066646671459774792751275013133465967646396069944057031186056087812280632896781657653727506296728357626397482838464729501891798560482491985007991609232399766719647678330126384650808804283111098502554661296861855650350012361068529743566446561984920921101266375831195462401126619489300838284386599999928333379487659821355883933309759653943516874770254203805203373382317893878282543047736859273772357478886566858736092568691056377446851131559478673651648492178603892046920573921373965976293426617993875988610557138473901586953800144003377394259635248692636896090870539526251096127290887376798222410747678488299026259214172065135443271991645998333033382050970236703791891297771139000217964645568170138089418258462959876893635924393798037012604370001954537532094758565668626186913776932365553855337366401811426040117126345320537251244688083925045538064254766280934506039108615119488314246477393594536113462632539790305310615515404757043183580698889116850882783575406260470081334894277564198811046150339108196697436038560732670871560877665885891060896072087471582697016905626687199268158483351741024109506049761333221030468320093162948196664178664108925963354038629241301524764041519532761824707235278977276957745431491457204054179953185788374981085050571576711105815852167055220110024031214717157984645854332489073410987610992956496761565447188062442849337194222747404498379859647558413348941074260833361521207750192980151294656720842115507638816459889661764643697603289243245105302982505122426807037312128083935122022554084151320294799980575137686493365567616784994713349269562577390784837182482831556792981972877868629036310560685800990722240215387661471364480196561481124538862716542334288756197979204855730192999750041758818622035508435269374224183477542357560534672554956154189883817856029267690850613136595288039173555602456879717723106032174576049759502322562941963790630937955810449095876213591677865829539303065765309230704398675706257606714270638526055475959525321304780063261071076808321621001457946409776926800691390719372725319228526274289573895041376854774592960335922726252666683521707031894962827245652845824142546063037280407774797988541294635397999246474691335524337231830453538489080808931525181357684852728589173285917464503656120068829470503204716904153768678001929305063669577855088550542369890122298087791267061052356297358060222018294315807355521909375865774736264736992888812797829333934998697735232413759931554636311929820706537274786072589973120693062721040157239438426087560393263870639290221903085890987772201985593853726881479322882922369825904643093397881652299859711143887919168112556374983131611093190611563255289261205865159851493976127055624087676714060590627593678972863204655894075319271591295117018443755758535236978206034603081114085616222042904289052870934871938753668199421196787160344751165632170440416053513413901731366894638873855531386368243369975985970616457062670413045912643728498914835689045560909348101158092318073018459984087990904615749310986143133159197840606356831884195057075962103268508407539511046071367743150631865568117504568429109859360948634686959367227758077306072883798814246810034268587441953320342225922259113156871855129884383997718184817757527652868727478679975609559814433269798023224692517480084804373540267386844464825094568371986966198330889858783525793232810047849800001659240729031466028150564724110345203157652765771714505108046030512975963903369048782270839013310400538514937353749729516134897226397902119889634448662018819029576929504346472305784526520058067990645390049554274873960333111513343423239392815392857552418925427533689936707673603270769534071539778317693299858002902473809122227024700301497321483099349332418808211182569586232946518575636897541635746895986602665172871063731782115440732830840958229371768628036856451591525703290275690368571298831278118747345960741731009788473156283864948619310435016618122663037695937267645885383809430494530230302680142109755025038907214842460093398754399153838421377545972464098687379266027941662047086632843876627366087827215003598927765170744547706538396196028343102852384091338723785639795368257883705830489472663481348213171908883396336724123153639729520379956140542026523557331822605360301516107672701613667753472021089952406019019073107167115721315313139910873460499485588793055573290748667569249917791477776275257215331530591915437576402085562431149445372545956809702564757642444230904740701449387200931485566126738641899425494931363104759618933034909499307284324090098660429647764160636212894769517265674169221041267919762026291755853059616058835981509438139888155464739539002210859787185924059647802767889239242804773232416801150880994290751300672861497273785041600155380972786910116538163760299560019987567710528743417964863494875902284345081024845232428506194564649282883380246745314360076653939325316906934715341110259091559509809996077710819240434008174019090499522416945936708415512633504468374235408291264653803549416953846871915947864482169071971882790453741758978656539635436417496421138332391272660853829567746264220437486137508696560381441154467817463182415780125489762580240567221816519025525646655104178403139931552734970128274640783796773431039575001167643501232392187217369395615725612096294658612581792259971229360156048325293246605900074675382891135887696605023043275464415772720413553534310692302099040958828028424925456609225504736786633535977670114754779378951221639503917488370060692083214313105651140321659149716054503315260875624430397512016270444756654974450829108449142753286512578843201433719161950742434585426712768110260079969773273109108740407138883985930205685477056812837003241060994880891203723375156916771294476770105736285175269226738673324904110576188363433437399317405736193536907770580699187001103875506825865123396341929847330966787573203290483700569033536216837286915868224849316458641309955612807613543158394797965036457984422529399803252134609728622695362672470762899717796327633461411207041541483053044019675458162359860634665727330574033424675682539988557003842039565097719954100268376282975119707156928778058823190261710147580089737378346499210043057076158595322507336108729570271507431229792031372110315120578694581824201741832056515117533812845799817329613000972285911308282090905331476011967818503836753034704700057874836099759090912963034418276550511984294261174212501745310883761527721032091623308833571020857721625950992529864364182068943965690856477512431829030183533951091146751371853424630585177074434321613169130454456207295577914988904854785029494251869923015642048236729967820854327708171399372971364728551623691028094394904980957111479873532633610861544909213621071957862718265898464545958700906924924882052343511286873862691252933569556562440153334475671624094781182657115595475669936842356249997922772333285678478624526949813038295767158836825390348461671496801413859919405559791791785828197578481237247802296273427132738070171213159345402254416861464162064185495562201758027171741932960403072428557591403748752412558364868478265305790211293015046009300979113289391102092842221262887439723987929998722171268024426957043640826917512394728858097663173521903477402078301082500823068674816599291621420437855969070083963431749157040070491113309702304687661585748313508014447599285202072786040624690986245818371056631825492066663392868941642231681397853741745589835502398141347627568661622118636756113454018506123014505064146476620025479372737016911509105700588058385528775155356834613555088814313744985636377736943347307792236920232819512601988334853193084139129692103451156646155817184516091865304897119538011024852574989315864723399926745372521914878779978880756267375063872378056469764352686130677476116156403088981072299006136202913855386468368424583544342072490652694313192636306455791910328174622465230508681145392237903469993576181922838411783111273426609317171605472302748587000104786605983536876204234909356314679354437007086760444160809343038896416912293846293502166110021076164054661453282613302509899295539192759629946278263263211656587431955173359427872479954828722781079314977711035342554381663505021820047559845719470764296782715877268483623611180659244515952829152301818089716722717634965228375068073131741445335093301055862157197336759105167204885674541572816321725939792701826776592787907269759586524444798627848766953949146101776057760360711075086603455755571296234540663775844877314065805021814441457012161388944294254301272614399603975154880968417538877870997710531568960577955363596700780699856501195536169958191091853337403661999066186774586536593782895158619216835838537205517181966990029062252442971964776076579212083499798148310842533800664605646546284410595975870105383783766951341441171157658015291972393283182374190724182705562114292481259500862193482545185655397012584064777459094161077898448667987879836035943067050826469850650965071424287984166501330336475959713294583569058759697058365984023752645595142841527430934760028480597374451154823040085774538194414235491878380929229783184414022384436112322168850562433541858843251154472064328496208456328119410827058831893542884543650548453563300884266856935636428902027669230848663361182991429872638798806829980861239497632951046359133826912525187946694508941539649332734549729944898362994739917547441647197173177987268394360240105216610149815265541625403854517795215840024958798797410495248004753558164544116079649674374767184221183581573767370489681657618646684473995745738638952849566518957447866597778195075225888298702478900964065318520474237695238933550121847859966007408965038385951470180407234577687838560758095616453392168848975425983059917537610132320635432534424048860000309082261900373063418486886143876373649417887401204826095051275986339050977024247252980175882639229387079367325221116705792644140908543740148530459025037169637477458607191405425694381561170144378884418883091592292719203584129871622866850532460389435650023073416708375186459536802527582405209237446765733512706016011703490806822232723412140846959667332516156575806659024310130320641153751168740775678740603592587886171973634936771114265430484708113330323186633985509494314397480484078764776783277053488015967141016984435669780845487805182319957564073978831770271135643924204452033300760976436796999004095854955620131358480587537494725693403309091728323941836921932491518687235477393921275611794664018511800138075010277721713064204253265553611432390788203509453770750843488923010206936485172849761293833257931632804024023662247707358488505586196021481895075688961464986471085846445373294965523337264188383262127117827240693226571570786417557289614533829164489186520495527295263300281049823109857339430816022566981711150564218030749436110781361389682204877365185667020919787109427227650347063385085500842117094040508256992457562828262781375133270805294552322160845405765437854007179908127688366953749752286406714615345649011269387426711403621513820477587549428565722785336658487290869174951010237587497660723016951857365090579491818691542049514818950633136723233600179192443975940164167719835945106934272172934837133152708252285878147644954066168266066328173859064681708480980195630954019100230303837721074832278139011682082582389277936139561206216213391578640790409627777430623945887116813593241244337109448308742299489657270496966891909767872956785683749182662280759470730876390942917918464672898935038166571603238341300482214907355731011475604391076423070499714171792722498893625118537718445653611243536680334158347109999781275045931072949201640040438736891084890000220658968949509883554543303448063469068362642692622526048050382229656658564454638172578720242239306031674501605397755165542460307432569145384140667700093348172625337857836954968801819714207583047902504544932943440806547069667092081966871809574518223790333116866601065885464616222513680755807281783990499382032540352222147912787357337924050581704793436111604657520350964992030094306338515155701039654361560042502091754083680251075696272405400706130739148399782154975269620067771746125375177474080770421469498072465669210313803655901391446319337852497408077042146949807246566921031380365590139144631933785249740807704214694980724656692103138036559013914463193378524956076512895884703956836005240560377322664848897675986472222368704572600251314653302789490736683175428527930436416844913090148229779444145397767000504764545394419974425340090220649707950657786676256257904167879517193228216048427904222814574555552585011050511185320512824817044934085006511105859679661134805431579901002711637041462558845146953150161376530986346793513983064421721253914210484840180699555558933864698447097220729204416001744645744857898852191332549713302548209802199209468670551308850411232159894030606077640708862153022528396306106149844929747045128120643925095268393316301653540689292805651871572657874119402174780917279954187411811373735348232049240285444372854241447866735317203972840999210753385213768521899202754763751550880323820345141044903368786105511397455564453441335280589331495072415453650425368635876511464557763852861842225003735443386084194572025780836246705161354412193605212492654785579790112658159199332255421473361025220356400358279085755073052788354315946741793742649740740947948944779573166096230217323972884026016215508990745102462967183685916037890598163574392667278295029918179570280686365101245445154413181429654184524519788730520200288020433895520952126242506820736251646482968883150509597010002264372135348785826025335789842849926425984938269865559157455227722304478367004512926203259072844700707182646394299397105796504924027215130909020163225789293646620690791141890917095548585817099969398458241888623043463864685370946920190866442500142370490706054794401636362244842049461414540733407720561367537799471743464186961441635564294715919709591245729889392338150010412294395852881242903163818939118293640475674801320054837776422413083227337901680551345611878652637873908460298324844967776765267144609098427240922194420872905077724742271284919986275288409545361224426081223673026362416664636769565823405093478650114354522301721104318296746118127124772674755841834739182964689242439083589830410778612221646674139274580844109344670914076889081154804269904644766179037069131864316448729348116247531427094795121837118954308016061368674233086520685683926148047844566474945748323298371127834849457568184823573812967298602509445631002138707680490430110884104356065956329135513636595379057745086346584183793785502138550730660620323618920265343796554240913886678051764866023556868010244438199821740818683080632657934450136606958831163527659019637109122168302179943178178115975625693348118175901637045395488002543869195029394842963338788023245402686831159207714726609640814729742564135237707132655865672926093521313563269738633451392323794912727416044071653328372766636069920782898851581890074068178835600338395502491054421913694943840259289757680416479873887544190710100738825026002505293715712059882179975190525154813512892650703503129538879739519680714631297973939885522406771074781329661125142444094254620586560563864841176973765093222320058137389888598930223363080952193426522815067530677311683499200307497844953331739235628772498890110498291353809943234673870647929391838298473650917415993442241801360907021853768394823719725514881388163528250823780875617730371859331023769015518148956680264510669556676356270331637550428218469355260793128677171630081522970525013994404111099523758782168987072283241554043785949364881659710601941701117753081977960061020610758095418438226377174415893089344024548077635898598386460044819130632918212125220072806340890562731361562825142597291169096962116740824716314518917473600695966991423080878338378686590159867022321428691570141424807045897219105420047904207261838945659167576624337481652334310131977778750626481447896237968544918333932544522632823898399552143508647239988246182346783334120349696963465231029709800703127298113002987487588451556284431013156099089461587840584003836145430627502838434516836793994311551940672336880332618381301906515931686201918396364388118286970411649458769422113657698149517318604394476819223940067014551279282540565303246423524190837891152091652075345011477513376176131603034635001583043241198303450459731115480235291472675565285396154982517322187028118914755821925109751881474996270183201238664665544709627032211967352066825688348737596450725120796914516873963998729508929286150574509391835248986417115156337107720704371942989785258541065122020872198511520119682006685154950907756992161931680576122550841079956447357236211513844260591187852361111576674624616760589490884732188251188189165372941301847563650836229040968772707590630759517373446538123581672056998615449337441355115808285999797250700054256958448290421570329632969541837206112532778185078243532391872673797539010604218982133356800149176292763589739749151033610294485487554126594588308262730872974158135998785058970815642932415956520572243886015842078104750426281129044255263505482966134319834755788519322226718693036456672710264959940051166308663731727404454569497374874852110331775493646253806113344743108068326308466220393707731052442799951374501935266142352255141868055104005021438767785929901108592518674991313145000872583711669369824976994084161606242840630833289799716187050576519624049243165999515189664975475039001147398903189687832645578474537251804522359726877668762428507538166167924880008234090320348071465228902223080614965742704477221250266192371423562609291226018250583731811971039075175338577137807762131772452879479158317148432273147350683717788157985202303528005999986977666937008226708804204330427176103604436021195740531832397750825376243533599258744806695231314095082672974200827195918716169601534065457814757101243294703404989011724031456270700708589135551306594748305010926753310504767668510068727953244323689649387243491401886858021766970655158850256174152070315092726514587358857716690741189566762941681340578424067733886652984335828209920927960002560537316119574865172971711404358368302333102692447556349630182678573511105639749473357081758063298707668034213096682726128479506043615265442170363554065832901954741126321617941436862387824468108851006087982065719694731531688727655829254841006002628870847072641463698145467602306906484800019508915292088347520029483301183570714748604600323180366466301137834614810208010408241624643986285802753525405414811787725784498244012153580883263111576793883443994167425526718127068704857905001700188276611540259896645638226952840861257000003120151341462146274358818811375215962355090961869348253038196808508496757130802652210017544521504388244696353913545222948382275219397816100630815713947347571643310028857201156174719192266771954369283128266043960699254637219602914253777973983167443812080972188188312362266033870753267894253855916918297728332731261550841748495123598915798601931046302040883658123282833932828775274859787053647329515614114298532461034302555313019496430116703792865637669569854796374437404695144047524862747673802558967408496302725388581738320957777270442659676450234624195887257359338615526808120477513640278605967148993681237120118621234905481712924548154302380410365014875356745431118006045004261307876822158851442673029620840482261369497426208176099993500334461976884187903041595951539264111965464774820849603536188945761220485718626461432327497191880858417216502492556122848670444079452809182539144469876181366331943960646378224508161381778729282783976485911046345562271722217817692297411538678621460572420158898217549455474948636317672274364708980215462007325013023705721216266625220053039613516788310130085680167987713860080874414496085961030410411974853698311136710708247974741971708082430169166617707713127633313638154531589133752541683984084786431775066750394884663677721467921121853612236316721888038066106985937023790963186922402591191463458461497417121925501992547479600484600633459818646080115937447037316631953518908792056481072811877724020397440246021297391101349926966489897822336465536512949732934154340689469433738182663778605034749343327029083756180110549346901793394287399056637969763478106955289619876461898507220863458747577535586844687233572491790476548077510392373639618546675333495970891747050103139694380902363404579903070724852963285143088878668807424981635856363393141947625230661525205658963070371420915744678667376833515582244422637175552905493953288236668961533263314935839281282245849325405559410719507137997035637423400973161309864621393795308709471653612565080331578504457300009414139460014745254414038169209933604115965838005063036825456630806282500948802003418002145584175546348018765356776441151647710438436690085370611690503253031468354371335818092924007680509581888880313192299660498665119235533344271599513076908208526629677403102594730225917768201325910777315857844773120758864509339877561872662539383623575762515880562030923121386657807216261161812700375605344622634949838625256665242292344365139697208237825995762610809984937542273567512241092324479307242828029176235375338637087638735181552748211124480024591246405111511149966446261984339005792546353949622888924362325218640252481049059595540836502868935748905420009125338674343134073422651959981448876264483185527327749412287856130622582187812001162857352133808604365252012350790830150596324546828189224759891328716943598514226757325815092498212489905184659072782376396492321190420564384917255643187344162296200604471901611612786080691597050723383179902400106211647477584390237574678913169570118226462177028945711913641268587186863582493271746562706728075136743159750756577475837640633804494482066835217833213332789677638365744674620172883957236721109815401621327006816874023136619483325010446485646460364125317413333237960756729373305212297457933352566168558920043759625134203063834294306097158474095380197411549530010282165055959259459194853348227327155444873521365344729423949559645304788053179455862934189010777934902760221808499185141257165316513745087503140146677425197647620461669311332604538789645165729084386151944311401615142307022471639399010043790686410341623679074185064637682566038955033477348967311334313629428543148876031247313354196709800084526427401420976313695876225859100931112997379360013553352920748298536720427612698476400667669866105345520728721873818067910581629074870107673696521668734487874382771997327186492554248066842383302741069609185500711535489241744407943370423182545606838670242052339330580317306477885933229299655466216870571281806631581075969880379541902867105158968218399861722645652372721592127269985616688430859683960287171538526694147931732893545844953150218593008668911797136649492410539530174013607858891547134085003976803645381111572086129563947096455742708238731268749887309705900533731834616896934170930000086168027800589567415228443663002296526507013856265684358886297585892712289731225045019397539880195992958594667444885279234641037247334135338390259480773955176406741476465801453303755125878391520600273054598058280083415867508782021829802912417977315235385770640677116684521336866501090644399184664729143841522843559577805241786922134390262097035903035025270328397986765487111297164150657689153935090940421630029212623423471285210839542166491175188768489016016350794990872514594428409076951969961803771282792923306313946321509657936648852867185365898542823240463873382817848153020920308831569726734392558336432163206608988845807113627763999664957064813332430080443070692281796296832861316394983415817887142621966549905140449994905132275832902039733890285425751366407428377198389513758460356859331967636542297879597967568283998310181525423666598572785888868064851894597071620346737035168045678974108321020687769153105056687668773293349200238935057443695445160234297945780603067189315767951908958081128270486867856517949494253179898985455846351101662924150670161176221975729255773222299579570269514273134125870360213259374764294767723385539394960803494329630814590799338159431146102374364826090527489260911499781759924252339697286952524166873150092382041212854261361635324913662513786628744172873692777326685338999050914428805931696176825772855927778554889122488088669629022220090710531986727332035012560832761865468606900461217655114103453283127120443522951001679479031335053425355678386919223431249052133279436125690468033045406425931433485989352987882254953185742488103764137541484499829522748902796950898149864690761644389575234356650649798259415250324263255294411659694055989586650761215339929748641052808309887919712372876169729073029530158633809543194018202669104693139303526636283583219629341950220558215628115100827837021914223186157752894430740125120698223625704135116212793447479373750708585344904025189467769147420649139024731524047392237570356833125539744473636977591310167248556425227049855871329918475843821185152491532108660870938947746555890976815009091552453184371101679704394227200606593472786492376559469584717164290257863271834360438706061526799319925178071960601819978896189144132968153273553656553178278789877045484925656831540484336866358934827911537849960146294330178535918922268713560211563806688873602452428615177077111067128514397173946256684077707258589195186572002830268782748806462486258045143333445413308616378682332572962579538006735091060533965232557596824150482795196197494590510082179623656701477056459027478980181006309518889621379037693653372987268128208847887010630825541585042133410149582854277180694946338138816824519034448050492243551000331414292089422576831348019510419539564834283831689946997068936123952993364773605967379563016178031842261826199208163486761966027586644711808760325300708745350853575490894833166708013253482497118067652281580236070823339041428117022941352536003306330261124551686492275338976533327508837308735465914111897983419770812110908047137442356324199743619581423276740560044467491569494557871493554792225417642982230757366515960393956787295208307621299572905646333279790560873601966838068415216005340982287176820543030494829640714377958967789178526513442090147965699695860332176102839832232524209091874975695282502362444942356873501034701874199053002938096986090876149456728711268068719599242400646532771157004612346955067259630156672290905445568896694903638197937468465866534067955971944629775631645824343862403793489804730057570983951582161392144404188942268166553489541432820615539268199333813234143139879087206556441176100519791030792115944641248229869540395866978962963602248076632631118560938170907553225965817149254580950048642819307237586533109347410268460883510176552329792792588642969057722571390829119090719641708538459454433599189629618258137957661952533777093959309375586959791505854695906008160034355707922057284184858559961647715619063376850432936554547474297930822840340104214779400494818065457292244834261048015204893325978936823575947758489390796539861320097773887838900230664965067318652650568283958219625803380702097089887141462158565442623752543139384253212757340745331911629551711879136992703539172350814998662377944284188433457149292710333226630993271591811777984273789750147894332684972051543072375606399877296166872532347099071746405402407398765307649992827255557333971022446852281974406356741544233989522404042548339769553714731599039115199581609495985121037453659944243964558662189512073140201773556781853195745001591386191064089978693283136483900961375710627234780052282421184264275528316128586976015660464318335336103972337460199915388931573028588269160920494884541300922625883777140487965516015543593745110789847180884700960607789076220693684073784963360963425095847082572563368126700642910298222799915761939412305010665619324385291312270883071567471968202186272019484744691477509958737748660296312621123936262684323153391719356913789891966066712770973432280825198475061954062034493330703784267983799417718823847785730492398625585661163352861527957134353145248103916383517055077877222976239792084070887115866239919233193364955741099493754100667968801426502073106663321903729688246980408070541863178851938047827141225654179999425208472883282034768584897255257471819411411100417415667999996419753284032409331190631921047134670233785151816822986613438461795592228922727247929512697119023249639138044043995740500927120818613254294374946808034952740287866386243934171088576574565098594766948921845006405465630078576018633790396114271309657046386091763460387568116961674247700175701209622415995297606038534885700148140313700112802969454316372351125088021191385854262210568994899518301809141719061592636934736495307154175906667880722820148829198820515570776358329567219112203577042495168506188295308898891337742800926055748231190883191031319392993345592313428229082449525800523923120354684095918118037670041104124295206004167497605558227538402785572289944290970792203734798808673500170223540288707487241568779150621465248917332552477018448633360423791742749855343362819513765938627640328174263624814720096570576172733932197137016249943760722325613278742493777785892693303359640162133441364984027113913384274707577695437786011756649108619427071829174412426544459813637859434402043228658975463864348272914836757909061246208432343903919234433434967727735561114213200143944432273203813690857297957363267447789438657748903859180992598862969779258913747052857795461303205433036775220335508550526418524683519492934683524328602941689945753283821030700597142644539014090180299182333664744077884707202162306238560559758221344837729629959883211943413369458344614783596937028326827141048481452882905261664032814940818402437682798083149452046334013147931875223737780641449565756210605303373736314667499714281990742397055859815350366620904650584483582903706278821795170109549763960329104655406069264586302126874027033337628709008636077571723127591619507653913377632919582215602395743429344688712980846121802689710424341709083309910985888888352540859422769177682881207561794396901190756634524170061632008101418475332908113003093109758677073036318425452933453097666152917523663236564742169042280616975156053330599250791768250223646459995703377476108414750188599883026552040683225323910587244894132149204201507636619728900040605927204249627607199929997651568985047882085190980357331157415446555005241314901243989950767377911479714212766615553657000299806435223585594633402915196557447737257745255173684677241148228763726800196358448624260379864986575821308051254867753671804496187001591044738793424304187854617870457854366494428438503041164819266671849752526707365839930254006188659463004425934986421887367466779140102899219351903419847325760225853194848393382061146480703648997867086531405317348151432465185340056408530192899076360160091407670768748649878661447241643842625492285981679108129205218822915194474347041036192619822496886501832878812286552614944872433559864067055348866764216076996015355082328241827071561819631434310929628040525693801721006438745609358563665337540961520993684410900642345559496789925865271737498298037176386441554083399332473281309549009091169442676470996060513667034017441183036622504899102028224104498005306393922465176432819632004447864310710645181829249015547074663013665850277505079676669447092311169507428457926919864654796897698574424712025026199362769049186893853796977482413020560763043389224736757475383147134175467829749624477066540938198182940533952786677289838848282991142392773632457160143733752630480263249421654556576719767519347205464994425160098915085265375080025107560543265537727234223071969679452722466159738660217416890391227225471338259155322845251522669469728173031755253671085191135887654254435790412982410354317442327643432713706542099632157063640609687138452462456633526913012207892078038541203760206341195539453469466949309162079581991165930757419826929877866650365908258531021071701501844136752913848473908192235647086656219503198651985556903747671094714087613531548718159302781883820781394000869999670451740058902929472049512466807390951722430551693010480382781475446419377026942493272433681252024601571534861044060759056332037417883714753521439572777882746386184160872134325498236900483738218263840092510215599762824924148323911002469278925362538480776998752416827751579814453455921809123520162309235618726203561806371374370501246256812488635116226947566896813619087391386116827810422466418488137749163775823530717510933636515920783202850748781773294567957228802702925330393035629609655090811123459904500640983146260011339766003729813388131614498624607384004103873895233467701560476564767743753091353036027730649485481818157985558458713627831537680464822152484180500243604859204248195328836784036387899563193321631831778397529919375524219659608965065537394044608982289650830886050908902496512647211910969229403866059091378266635979448407832676362544382973826316123851271358831895110725809941985723942638965905949827824178092350475995807282287983383670661002041595376456908759360820905304646456054983510903778477908765197460005749378268569622689236564736896640023761421391404088530228530142292402293423918474607289182440158403161965703700511650374832836121305179276792029495844961075787312193123627924907087747049402772076686395128995958103791825552757370199035639855128240294793513430470149853316341488272414708705113722107326378167707957042443525424026587849103230994421850476571047629262215263799117735029455404147197973618939164136467958250810525362210095673087070599535110232822554068808184242461329055034112463682062595644292917574019200970574675178378709497383462000351520235096582205132349518812880974170138280072774927060738429578676545651223280696018735927938422502982394526545661537689095003761204162565183010735370039070291502047537142778943688059173203027118577899176666342571642695371669593318314176864699203932928731478065454996105563585878580355988938253256278427797527748695905829017843531703864196779140765048129809438387688116335995347497834963258404256655648835230230971526389610852632841399355173700557015792433145571339263506491269103287457433680168470883210198318057258996356417499479991411764640878309858738876012622439291525135127431631142409165957985442311940742639141995737008193686324395428889189215907335571177725165886954494464905156957324223604942910611398818787978145692300825681635089337688536087849150976140767272201765263270063040429882985323604100024040182990715058209534866786585491475231039176530439244445196651342514858865935725306187893317329084163403552216474104154352613758218181879127906528210805664458170081884621209532764188236193739371584541654500461376347557269167252476102557802111982212191616769247994681485102211083546869776047065079702326979179446640582545878412351378391598786857658017471735758400554500216991566248934327757053162343985746512112556697615957941655004309278395806436785620176109369534322744203237277829212641072792733153880542657187195231461476085124120711621453707052346098735285253526398555173759886215228325270623317177105764683442071121848969716263292124906141666241887604178683965335208134039931999745848516368676490886859104526807873062160502149585919378227149265333228609685365050398614037995783932359268091077890548555861088592428224225927744773651178182700198138853160730568033657967627178457774291699979193696296290729972681030497096970617503617848728049157145532340248970086518250571841390970899814432108632743076295346483010602917603173983162988558076971443395677290152947924948925730531036288092988571097742034339038942417749608496785311587575244607210626352217999579448328249649817968808777035604906974060975581511209516205013277091078039134611475100496986771957804672823682217588508555121873788238435502397135356476753128488751114558439441307561669080219404705402509256163887305799593571007095421524240238973866144984302696436156975938350358000865252066344823250934289128159468246881311076706480727153921338085490889321744630597885811274425344881319621755074539046922922607786828636587515668094475047862672273570769537148972648601362808015084422632659722114711872171544581877426158697079388695592310355347744844271027727918126541939125547604844318093436796646334042828332733741850629865499460012090566860910949503520844183899163403069633435199713722340451018393656283949057157411991738814206864491885648968163335519506600092884333252480673558417133749617150550934263718940232530354259938439418771874208814554354356164303489103148152057658869444782706449109953352128432519104912469054321738051067941859880544012894251232589909962312324053877398210144640584965597415865952320581449885251037693065497489313506032936074481814998982011182749277815201132404643038340009302231080547259597551216746706659229444385710758293568651598011790199480453582471723450301763989149022144948902160198684151758737919168266109838573845376528041890093375503234876758875765835081680848980488994613463846758358275894500466480260224707959607311234708701901229396384219925088768537111998543312937242948475788361151740833584375331090665942701325803295439815269206810548042155210247965114545433197115305740995493783836932001706564102399396852034151317330925138608298396103448375643485470945637411060456166683280263697605594107860053014854032125282532232725173232493557882265939595083733400950598453008448615493760830772932369780539020694898436522867928580781581080858064953263317305646816091785147125400088072257937135985919602032117698516618138205726664487971456050564764174273684189145067342456756416048290309818979175956744799704418481543956047023378435681267617715798737487316524458821001641061928767152951977309612579504013279951251230446071737653304434889758377502200674146778016973228005456734499425372413845823677596399572285545930783851914039504744136175891007414622681929769694988612865298551788024993319663563824838294192474319235584267635073198580303015343074861824378325227933579938356853781132755653864730024767430672375844555706643322396705837897501940110984584530312039741608149528633651224839511514265139521361994928047761456722848443128565961544973138278595330767369601494158637070362175658670104303586961145791714834458205482295971166547021136277282493540794629070601403720169035778923993263032726072545060040364605028380929610076000676210935821615488096827981804590876990755827971114967485871036597981779005599204619921086218833393864367675453578236336989088161935642182109559511009398375374775546586077865594330622484912789787545081355800095536186322477894557821672858215655834857416920557822343615032535519130694519600528949869404686558645288393239196124043995947790575543519058225812702468257321602699353123762173162563897324757116285960699970829394959814645468124291192894493216757893635877523658708312626129768952214037121333371373636570097496111467954738940216254866841463524981486568437129932566103690320984324524436374578928327453254010137873546087085784915339133018487965021588810929903714350114962119197243727036331890117992931009198972066058919499183852698678005809392309173781954298508516846681299233425946670761777675588620801261412614640886156063703867564612888143788618168840692105737310071471275560282552384610494287319949838014192749437510069479060959762757040742560527920403735132256437205320096902712617878841958243923433165252466820942546627297934824209502732777029535981564982473381806163938715477491975350493217917432066843409206201758084778305188754961244239520118964907047660186063573332139879373467391490808812351345513774071558682223545588457544686343337754031387130262607146224011717060240106522549119864684309641572194492446028281732525366703537230042424986606480531127501954356523225687382635156061797817749036314750495732032582722820879015800370394722078471144085353021626740506650512561669500573990832732506899521269752616060272524728366524467699546935694759472575668558118942585377725768098397685880649644185753871729087162366584295460006457283605313875813863629441043134629953741827762718530615919342612177132010310021145256576690287097455533109073858111289551403927166875224799849874991785025892689021482459578259051864454825308670960541524639164867481996956919637597196303980961058033546132789435981843508697452592000548590030372961683071957622685435364173118174509579933164776907746402740259052553880918629368604586739521133104685547484403817107250663691014557314738282505357057566139391755260695186896492503446866474914652615608550503791394202981994222199473543823178322303684713733024748559429826380406512984891971277312697939942446836813979719308945153130102282071760241132296391228061815709537618452022878633617842610353107341759203978291654370239534309225910850108056559187725277755480027001929461414415376722756825533214173720140747134788443436316759161438722559433049497719612338422266160489643962420532677970414308024116401196808910109206342903802792551569679532441619283486641083828605441536996436593196913777787005936030482022913026514592296134558029718272438419687672437084492636755070563340502683719944935473265265632066274380836995826335167607082354952985615834331195243922970039879106752683149442248758705971197501357168808077088016385784327781815130277868311685891946114301089589218392897133594139288856488545091637259398359742076715707460714975246059863989669574623157776860487972014803576795648458982197028876161231947013209559242144883555057627232344348426426011753223061822303565850804701101189919325257172054996292664129773504285043702622897235852816267563789630203898474355948061217387390668535438453039293129881938833041183423778361478059757505840662254133629335780931947819663929742350390848059320069789917678833968691319748258864747086279971313256137172730816533406139462568550590727545864506864656527768255534297214088338372788201028902932403132421020026106356642443696612083041768693220104899345155973211746630090867120083557242052922510628503029406692705805044006818192273514256346584354811095932073401274969490002544720797360379164669703195033832848355167676058310365452708576554980028239478223137188703965216420784140386320050168755928924424891643210796200313711074626069359189558182399883659153109700423581742946007359612474329057210929097629241041065662092350379244313926890303062203407870584752136844349814006643996828177728832830680829674748510726842285639503119239679399702278280832904039187942701256403173198670548090381729010938267703276181873338233299287354251791214674169684443841609957921734925475411516955036329294606721879838177984886836278290997984302172041753625222996727432571630803326267942700883466799312372277892804907269063435938633448273734946871808806945088824068997261658713437518740712443535899935749505763910550260234884831930109776287518455556142797284284876039387213049090254184884269775140116269376139550458568990473003987622256956952852270270070700223631278275647209189072366145338315064508660157166725030442531345730761424825299347355082009481110740264270328796135455899723876924388109759704444572797225595582148318579221168381920223766601470535503329905663899611395020035590039531431485319997339561100645962955582149616215804551632496152498462549133866615566130574710730660649476125925134739867240429470527139458700571144617743592489199997798539858915545801175707545841985707464441715735287088318155664906711613720524842124067568833334632630939467440591539281243468652741507636710833294679930796012132262362971922889061129439568658906746885822588883989165018835533075233198157903553586855155782065468218332159074291034746956756633924854152236453715003886217890263431378530266227448817999987385332341525005050759944529160103849242964737923144851996764003120426193110183900107455976932457439965196822111570172250000780185200769092799527481957223522490092455102100832943506047090382176234012352784838737727314319812353312167350741624784195463253446152082891223780469229085093862807526773733648916752751088671869074857315117987191127589737172122200697902686270153977033376235391685730235327780805150085259817532955508078778866728156509666916158391127216986993887591126886484854534528983845001720075317880961273477440300452416750323930383670617071013055043805871730675668335337453783036855999377590869513062184655285792359339174191712054179699872561324532665773975697093217056219380046148285749989375231643513474707365882098106057788654165147324898178700946301385079255922260729715226203881943748439143105940959925843344656576817396893261104598701003727543525116377441612272999941018619566051421596941206355131448597195452860809748682548745244590362604731380648393797344681866249700721554710601935002386483893437562276350127925849417326436623720232785535941949304500111524937011476346341575426409557473943069445635423620812122411763735769708677763593019356383644402889363050783332280366747439432486570798950852508727418326835271995157792652719876374997907620843894634721262036078308173814280478785549782897862274724417700301632550133970537241768281532351617690692199702556999620546424372653577547251024031299435538645948314701949401560266849430318378369365546618665662547082586074894839728251558916038553495064513847442211882756298620633135692134350535417532546229427385701851422160479791812391358185702336381354453571127711719432166046614310154741982155492904756210901895720806062349088029040678545667463724177248681190074206557848221929501065966835352086790875855344900927132510735378131123286004105291883550482825682124393180978579666414416419743846503597543167041838521459077943357731496484574214860854886745291314574589315184834205058542721160275207010530288121820442571850407971773519382644415143034000038965083547606952112614351514494096991515178332585172479894740524206100459840736384351138298293353702855164153281846898780435921758197601110371882601157152121989928035754608388740947375220406391233628982806618731953235529204014220009515480880706100745386563972589708030327985512405709675299487752503483811914844763960690239980085887510116129006008076911943810302609494806598476196904805932178521399828659016361397294733342452975784299759023288921228876174536434315837531437849574608874737342587958758219901935389814229423917941515613153979302514641379860895988767541369432304048702855541978092295804469899019290455890684659783833799449251271604941337790706486578589496757599405061755763293475680828922029111549186488201592146177654499211827254988676568962251706361483219514060308448688429474908171412276698952976652846718701072919337792928244353243138285206357061580769259282603222119402768779042924083653232321510235407534232109476053210171678047889604168510719739693991861879463461896797135467867224402905164443964782932669463584918661504011655032137958238846403545337067500146824508939635084079633883393164400215576294876554514962298494573570455639845828653901031203119955863297898599642742416545640221552693117618219340405280497700139581856995045062690832184422098580656036039665052040509265294491631122474122439854552334593973602158488959564576035601123947226002909110232358183270776031819289578931912004228297227192768010578564466733402031860657975998976736300451553441212227464921178419210429930233047545934081486957338855853118789257243599624701958104940834271300659716364375165746371024987053629169290060997979798208147147131128995085184920039864046146530250994914143403583695568842161518200066725398585320356707875344741018213449970395917873975349621147236777151075064434193206709784810139061194681429965659469499803015015050439499165819364340617547120060232533051005685661995398852109699179681030651566276114001239394412740504065600221709854777964424685874863196946189551035133391641195903971893876105442642302464412785966320148479552732274340928634620098405982453385763861519336443209833918195749629505252717041594110329416055200707970044527426550329106801682918215054886572979083065733200566711040393166428946073974276132720699137735888776468407672601645037969090673762491231815694613258421465112430180886283850187273208293049320534883490802257999620893153820434587462062523629681224077557166761470833253074351802801564661524123357726665459689501535120964074098799335251124236839325550804077953890651359848693148572687489949014085300106254036984402433985738212677629454919277281927072710075950541945450379091805163615808362888700153867243945007027498984321855676474032471439236648434111606209310196018250317806835398572583913357133449303614491708665979723338814530921740318117477520325816743389458264967527525203611262736721097645431340238065872011251345146117238016383594726875228176383566558961886132167299893940149412510356465833636887760906588376967418291919203119456469780942498386090416033096376452927942341930023017400543432258546250947435455170968354369756035650199238514737184926705972332775797911738152474353163342411729845894129107504555042885877762737340663304160391808268741726065961598933607786330701992223184666488893045271524055117461202230160366192193936615793786736961581625973005821281128255764679594940281466745760455774706739022001976983182597002938195414927590811337332360588587778716100672583596232604960016058991488934220473616132710075452300484394310989991637221886232625722472307119791823049444351403357447663970836106986071445700692763966397349202921834629764438186018937668805345127770384815690854061403280361502803860949033534893230357925117393530415841133265471290567398884435930822283033032221165929854191965597971848854238871580891403693016171725700155706148369068127422955027934635226450068693430774820746663687476147620022750181551796978266737414595043870588723873389632912139573039946630543402891327746816875466950216141246550370091265917983029038873484176139723433945569356600838016094355613785537468920714544233776467196313846465263157010171323583974874665442363027792854190450156664578818599794789712514811405023776902617289793013080656571631212120791429070542150888983795453659164355123341745987948092769417511490311746055224557854581355867021530900770319556558995997468057416133383616416911400992334155643868362258664428079403362670105226669361924674723713640905428985205188351003692681879974656470525450682683936264069944223117912997333641066781735915971628983274177288723020526098042487577710069881962403729127162845583584784034049243648781833724320371618788149318366321324242424201471879866012908295449020987399595428721390667769827563089167942174016882358765397504203024489864188963690963162701205576819699291549927751425437881294676650832503512671684664484445472404101245280642178327322277604369161028807835887184371005180840179580141083528163516360380534630763891947615018698673670605014755654519125563485474406162027393835035627856152958894681701699940143323110952872124482704720605460258500667040757911141368279069786865871177920435611489299687198880325903495462586850786451560737217153995339107054574208447004899811282899421602122209262449472745405610358209264251267803981905452659443737519428132171370336125910575516989928472946953424298072325629025888362684267844702983631329496605441625386147488283479816732288109784876941323436718833482975132775552098111835661299848568702173449715945581420516760136316810447498709163649431566670016341247315263146646944702228602807118139928158887516372142668321214150923172057318911173288259805252015609004155477759524040891350094036519708487007496783327432335886946312687900985023131720661411321086076048619570635662452304872049297016794578145820090361928067821394589374337776931269876868117124816408491052538842393336908946354092358023108172557634997996943645975444894856647732804498867623578917302150269879645498427712336025239601367889026391276316733486900994658881028631022374955359950171618779405954272032568075099172304060405924475934755878192311507086038643640016697693588444107736870284577037940928349414028221295864075270639353993044472385084396885275777983552083175810709482686545514923467711645118856722380760062998781844878270052720312938847998209719432022757136352039888007560979354968507222173819096427575684664407843849762359541643789860716673486049953642921576909269615170952825421086026688812876213228288701239411121356084998485602261674350348830521151995222130947223118824547392608085441215344210434543110428353361072322446109504754903082384976233787723979857646707148507270115503350791768894285532565557856891411105393768123007641727332335555556958197951616787651611271588023817370581258433764454963932090336308884238313464741325415758340853287016214784675273660353298142198999001039965166398578162708358962481375811285205027468314346218654210028735798453064197217331119032520073461929812872295178982451117703283234759864039562706190854550735807916589710077764022903519770551651463156954288414243755797570968942232887312501544659132356822348563230881862148691752544420425031155171125209326672093524453853285759307857205196311267715965633535956460663812156991761342710503579689346925609775922911355755004495468093959419880769193752888650248971124685916195119118057366233650749218367328395749066939668994863881254658855888383033086427922354597161408639132801696867060967477934970251369670949211851826806837103932976818279349090488099268529794978557333715456812291190828899996496173672758296772254271826422328664001327243273092429509230566221346977560274971311377496402160451869335895994334517013147431671669925355352625191822960685511025521066176939130589930470440130555394785866316843769182864723435324859388779733700023743444052230578338504233697486700501600286637163548072142572742363471659825920005995273502863429413906679266972379873043735393795775874670438709507356712455449660309789611819455417024559219300964059380552294276921735098819503385424390196223556566509598118950849558347583267944137194334777064417430687607287323860319093764674529189218392734056524491250586956517611562069812500393153884581844064908193055138220680810239336308565359538328508151852860249073808881939719741926645634161448426511541316956283525195911244283826288101030847554548973690254035882364831424405950604333637217231136979737662537789832914814676854754118971023646587793294524553660846298717097667145215393593629565084168679388747451776846470197056012062911196593927169428782001047384226912084203747363388386274792663438170746008618165177012473800268910283248614546728946437703394342046484241967025618791648972518386746222304165160001856431299654117598208500563323952416320466755350013353729684917467646319413499223744247224633022021859547406463788211882345939408996899586677663701142952853127079355663237832561966782136657092206028310256539135401190662142923938164112080696172160438099387993003279135193961605459067259657242443886673098839494804050019958699540877610669138906842799356469502459908786561048152626194880291622037728544043107619152330967613456578986649276023103467080783909926275476450002311159881515250166756373957401905770341261342041635904480839076537485827775259666285431629883314207477826120950407760433388366358024308924484034883541028706147339632834646578357966974592587401134634576232160810423976222516895973476817428512737721348884312642986891670696316238734200146948985214230208355107107105025571884627785644037605341548737134057035304716047710677529320079908300857963350589136486977471509376122562844835142793387526367457072220025676912748342237943660613198626760944062105152371984859747379297406177243330777353802543022189439576676950956672798124850084862642588484579677193561466464626014964951463471490061886726013021674810746605411192668918406378835311056304417080835780199922329564347430329597913588943793800972704425821506927979988831446725329768967209243310967877870437254704049693782685353327799678176291518671277541365726683693491087292566065622815915263350446694975679229497645839604031247826096808076324572917963135706380553018179506155893461920055250204212768920472652351959084416370597622758052733539905727377292458984311346620894693568462807708795934236143426183573972841216652601954384817745024429687378704478184580845669859181675745936300712509929945590215797971267979286814183617945293811474383459113049494906254577757396574482504189366105015672239114063379044269327671783572823478402429229040376747003971346834385546406427071026117530091308476127357563889344495780143671978013898265342437760672048730565920693328169737707720506732140005736755344980895540538688878671591124076024028764936109146485632435139228289616920538474220896046608059038230996591893342589079006223704080066997920297981944092771735027012733684682086738310270794793553022082277521544609273562071517195538748966819084680286066268052662617307395592893243276656082055892649228114572078932587782368082793050500307417743535142587643209181854326694069067600791908213420396368953094525633402213073020986458629768965547248652624284611047366575090417717320523237414075658489932392708682167942643268756947351912174769111157754079997199926682888507939039340610310421329646825040770647705217690955724326859664717698638291411537797697600025819272394469201049660042850854700148091808108172665045679671866880646205847880930071167141907849713393914993995255245452094946507843497198103614287781840332205706946395154769469727677477064248646079392351956543663508307025207982465374274256996945775646261198738629434532805415082762099066227743584448627037670924884313967312656356805978534285819844609008250228150510636726914188760397883197731862657293142180732905509353856244448880870515851205561944137370328540547572214634071373693265521086932227094239075429940899442544459068675741143225242616723435219127825854388455951679782993283236427374574525445460529398968062635137335872148508088202055186599580340814883297012537812350567930508188185685057312332575555424196054273583194479764324992288226604355585233496066809055029052163377847463519347497130223294939655104159878397401675166185936051793389503924662052455112688373111207852572442457996232944501683417135951402520951792646811568298203136188273964266233216764415246954875581640843582125850442476706996938037585730039057901105154147795571791693127290959982213641159815952014586136789206666635321839445791129429493727464246482392154779756157336708957618405753220985047485835708917663527278094953542744825251137393829123783351841471827848818093776259467255433420690238375597658467444988572971001533657025938386098378883705596616566122618812454638780740364377558292593401364517385844624554076490296162202292447917789014243272492456246105728329944276796783144819346705517570835029425673263352649065141412102378610932967188631037171704617628931161672590290677122398588365964149245530812072857084100660761685435166635303413828011338196779122899741266552449513483389346361812822564990534115031791411670938307677687742325698034291407998029191076113965307761804076221944515194026040634703567993538832743785881520110804064908851752700820562380205128642184248230026324320559979983469262326656447019563573006795390572441503981642390821362351327177145861912103281123572699330876625534408941512051799027314738681826266444752804067274640857238015503894189125958937399265016877527437697415337481724220377071286644907711626031544171194141083486068995295074447722033627442668184711965636157137724246154560704796508783129001334349111362929755836090601759494537968615068179085076075662127381001179182930761186299116355745026020212756543609511385690948154244767226073400610373342612736080448553121475788902375590577113174550094118597486529627058856391738971595159889870141758696486541853248637794337805069893455538805052331249498418875730464447331444598505524739865399707346233819398008577304356954761698282658938100306024112186656859802072533716561353350992188595601078815219559929848307371141617648399503300378988247903454105325020549556935880161545989189368865721247489636136718628188546447861792435817101125518513178717745043073536450297615072923011083308025515349518692948497169009917303947697333789565022956148778780483665828348275402301923036903858197885343038285582730067215613042476796509973673898639630845953309944673660052789535100775106235405180950620729591214778792662633854287925897759586305806465044845262391335383426270504308670094670362204063397672529913651878423065839667022625805621222107335411618502936356416166557792377663958604946932445508059036179864427557412949830210469698616449313701037027750848601539616658645128535453048155982963829859815455625924865918632881763011014997372069201538698774186216557820878850289708567829701926958276952394082579589346666668839183588155490694368307035327632079349451093653994509720428367306703514419631552887532148221893259671737078127140513347473860809636945635120190184391605573384080516638291488624793513794037131979668758562594829420746324161481962682888498009688756413177902657691055508025432280312585899845828720832573588947631349260624962718322007318135424395364377056481929539957001445543839108784491441936804710651634740311703744824585051857881806866288441707935660426980031632363491203029197537009960106661938962173187622670718263148522844172794334068181031018384175349973496979013526046083898649384170852934692791583455942477874147581862606722466248117722498568622989744043843921840245603609191236989597824880644631955555593083281673460231204066700724877475998063268452732025570156216876628405832688949305051939005049504958701540034854277602462485884666673423859744545671611419843038357063974266667038555609645239035702010736523283527692067722136663585746080761599482575890261556442866496737256920804685117462670246787668603228796511978576164426500255366220799720399986561469155119965918926099875691957219827550950647597861562647423557864501138970419935099764066765571208502958421155914947290752355349927410085129491938559625940326382025249882249214444755882700290036795187052357627644235584183330712046012462993991548419581355125514677093447144330924763732150118612798381856025571631417442644210392318412486156130470981480247338812569605196772694383214901046524099815011833941450600842229131941609950099644961963307661716802799661459649084857174082378057131294396610368772726979043490318967493232166572331903721541461036471884246356801971257097712420455992771894016308075557915318038863852263293491228689445871244071873985131098072996000054029691390863266714179236497562971925021288399097084846804390717631982983862589760312738181027549342610128244583510397246172600271247264410283930603677754398403846237465571177660427479404471102532275260708819152596238810359449121002592156755099903598490287366394653336222785601987852448078120000922672556304311870218783254738688044091883310482551503395062370353459115756948715844081222535466146121336832914177138712079113256329969610586306388145503829307065076425004095978377200913542843287311066940704199932530568316953318544062180960834613197799338171659170654879552114439934636910391325853497773805380142494093450362761658136895003095126105708412344562960132807039487146758901016641151703939321469890302667266058467350596475274805617807867953935510326849129867665654263127329885291927008247087740022137431156586969076065899085477980877564865594130890270456897729741955965501092219356932384978162258751764655242092557409257176954688605190100031608012897289870528610854229739093968150775009659717371460086115220926226085270829883643736243877981277451170822368080610770774136633479557435335472506634409792898991840821815020062629005813678154528485775952733595359748408724500538827410399987019521262331698628280343884972691416958629503620272297488689849003974147161674575114133460273449742355058780721866552587350641253083245738803560851576626591008479072047704536889750719974356650630663167587611347516441890509949530441171998514991673976622942694451662140808774913553673453065182999775820146575308157940816750357256313082689752768694913175166031419627412271620957829974512595073689499764786513098304455391676187931636640409697787311715800412265552886370914062581788469239036439876794389944195963322773315106241711111175895820421382268247158558623159366153128941510624171111758958204213822682471585586231593661531289415106241711117589582042138226824715855862315936615312894321916548928211959762276658143596743190469318970709546254984802349550186923112936640292909966700863878400428904420862483661779064302063305933920322434365160794325702465868466897715343280772170987980118148551579281644492135430015252996137723601077292108595131459952461659422716415747632365702571880611706348762926273236008312525699654343218937450779674452915427894712722894704464813147441242211665900810057217233044387008737360533164683029287005557200190699431998706454465506242821727117124592068124294810550504047059241052883574006564845472456074875624763472596201955416308086991308656786967875539700812791176866919496838135150988085209582767929487854818158433903895764802898509257246086253006148886286503065719865793656157955982572991894328947716189620569354672805441856350184626344267485715560888443376776775181119587963168418536391233749766123771258705575367714255354528010236191288246608468567360849341333119579933540423335773588963780531839093444280492270352162230871494436067300423117979682863905171951575052097655902730996709989020051300226332647381845202399769112952460615572933669965418267875614644743693887290887894259922714756326206666732908094698629295343111076243281643273608630864133864864668368334034117417243361379086047880568004597543289332721406080344475032843441146117190967017625398428226686468388170610025364990074317384700086148176164319642146091993738188776548270699793984153938974909461030806089521056237233733955299064854565477711132351150583518723974869707635229334354972561003011215891267832849264645292657116115146530034496144130407078693714179233116662476964087635487399017477537102018211428142144824621320489013665523144244134042877529811835667348556593691796255853153675107980671452796637458994210311881547454807524651853170218249967058200928170347143305649061103029660077886218643958620309126219537459319155011169133155954733941172086135358840520458592736046321982702240715420614033109614862990759081033133065914757495394365387018430653038342790401430598298810968662879396068421340105866813687700862550410669655362243076097486920666744068427555947082594037595454393281264615197860109409221003946623938100024885780821530539641236263035680445023302479433432134418808431469281618392368201869189398393330782579391518765988615852658830313054820647419923861166216919045975656253336318446768950752992586777308978113220554526893234119637741580704297917296184933765166937562151464881384172662171532362271080278418137745960978655724521653492678760880091880707514451795591893207464840761990517355858488913303280635078797052313167676931577373187959490721237263799259715349422416504918609591639298051537541530560108354141244266350884117088954264409770274228232128737818584813773935509749335551140624466436894204535523793022955699025688892472476482856987927771770439584369247240062220941325554943292326806265100656067112487799788039988221458634529591716662481653228741155327526411248966562365362717905170820153100267353958824702235281639972401534641220320257977808273135512050193684281552081855499751491511016991412711608445400907620830051416461882552963462036087371679019058251894683895404682662971748668008393029512607766929924069435225777438631812759679506943700156062505627855914341512413394030327712953253107118617480257722349489292521980974308952122314619576662075923556359726690767986661233291059527961018343106907702032228716252083611956494811752997132749730597835528521285785478442861816852571073997916448507379463019479486010937938364054003035089249948913801089313227030643660409213615225175033647591255299336234508746206252211615213453346405907315273240795593956003274879097386942606636143145093479579364252820760576736682245561277978857985090507465575999523325768019785164732223573444661249477999064293351032029241706181476957105077280191727166542272028024548065568292656244457107484434380924735583240595727928137009317949584280200678166703023483010740547421926860540197880276706177331169854901005325265807003919332218325517622195004956023295431880724870989224933073759045534887851895773428251250967651971856799652910171995101746478143027813335716956422319340757137678346086967122438121730798969383121704204911241451586221205738198926028132533616506332709612681127354457645034386271837391993894379695856116712668383393759855826461542797813317912057829123789989227627725615951258427540001446320445791065468667324140533658619184280422625821688273710321538212290016053895557458048149707951428828742756657075814826054824202210612037688341073437044616953135658473158464995233288974086138926037436545571031357309787030515797674186488333083334683061776199649533323434059168678388645247041275531439579402788421613759684918282328600669289116050761181598098057229676116423560905478275530999022836011825568757238788125858293421121206435351362342333545480003763735392284413374664475464899727153248706234324739394940743678490417272542657426758951827960203343622606184340654829291096947327758106315005802505689492133983705710619553810369925100616045006231958956852776338414533870921568787580321274603112849248871469759238966121654100784516651875999266072990204583456279634204397156524456500393326975841615274186890528103396227728680145702700318962787707751372895137492853891601345118147909121245542835114507476620614502078740552719831064913195084319393794051393560862448712063282330972563106568067159358712039921409666332251191044508321653543621993777585843281227230971764972700282533520236033469451608228728472752281846877737507229883391318768369026382449348885643460614702141015933553708337592611935438143753258368050686926516021319638590042494502607779328982929749310257474851915475821236842755637397781015150277718846739673439741825642715865300921367338800791231126616041891722846890638267871722469773414700303377094862942467836229172179125739785889572304938003585912363996896312161385831046483707963766267992976156682119846593415593391674446886200355689651840618965020995787949475034213451064682941891357624099495577188337647484493614890337338736408448766512857990600569180355802175743282237209829640541398491768614254113578019232843223566220125337569971038210371450536113521580875443258875177314981234159790077484154852468747186982843716427756796612188225898363586461233727087316163958782993815527341580288062228960322744791973151341958948838419529290567529135828470288997290468242178115881254450027577348975661069369938306002844248830408556897564911615693828782862045901715920661835559705573502183092691196050687113637921989163882647003032398559982585297372067596850212232594796092137013315436900473475800526697316366280876754686843154412005445181096396331779963270733270078424261594328719836710018530522110004993585898093472727826132452225547446633652346902607995201882984865792935643341058619206357658021349497123815423332633081824963302038636180607430078936284804945727476555968976904796307725843589609723556268852771769509575485467415631893654443452682522268733165858336717410453518601689739003705114038721607492565728669414463434281934220107879944479315289080704416783720859140380787192020468714895404296577827423277263006754826839257204742895691916760052052321538211408873240679725588369972297703978174778655445133936952804673097919875464405405015355984214901764939708993368236817978618263713774776189924213964754681521802356570084650624621258009338239375893985352553247370307268761318693261257733337290274919695015084048179987728373665255064027193614777325988089081494639422730754621137974252544785730656206162327584566336871604105456555821963228444258001613092292561169521705856174292971169937298798552686573679816223076859491733218637615077351715337805336399472531737904670385755272237382781358856453237660838981202294975179584990141689663452187860835838411893138472832576864873474621953538997800875424150586749780156015931136540552070950803525500481212312377181521072980032310175918378625405659625399485447107620238523408341501421890183896302766908646062889973158305000605416610521126183324563088749423761321117383235991026715443333980903010767519215606860915099297579489847091340484776037253316486633273997745741707870588584989036478250500607565276677666730181427983462997863115472471904638130827026950271552434583777132888840113322856123276424758054914145334004307351368200167103048967407913220417329365588638081990240250424758979906199739449424061393859002043745081712616036278391241147268209085690526837422506891099193767722077768737126770152907129682261584375714966534629615403528980698498199023815881324900728284203166454586451867787181771772779283212526968322976641245496739715278796804347658957612653385245739151343813784500518738591532963414053689484439722550801196079269028116229367043437115837195386577860034194671309665344253552356135039263743335590248778009316758556650202614245175520231051803797924160186816532721349074474187926304637935701957254656870769649025628311394908306598139258771657534329051829883074422093153945626718913650932778527585614188691505843112818062116453383461456499861027990887831599923320834970349900964482897361997260841303050161383437573503350269679199100394576485031398899804053476207979951035562800942711980771413862537468942006711292903794021105099312881767863557121288220584525902329882784488972855767643376551320983720845365197273566294540752078683774825993769508547458537785440151866870321270325108378857553525327422467456165530175294697049286034935237663193775815312691121571250545649366284046131575493234361611438689415519179552116040327941387040597365968287723555493695367249260335274498928882204488684436527515895468955885890718317292891292345774428441927250527684755038702706328297997585388259938790678996367663472636799709113700050045191515070502085744705320311342837530396450683734947465152543161640695883965696047762481007698125762324027656324714558678116653563357384133203756328577111457947736117758910978449597487134549945405008974943123702669160022779621516016443144632155674657986969134302091737537932953736310293482594184851531345770064943739097642085895731774231457672882967906750299223152573286983302634123352631634902064904297082100632648815676763242544468703921333767894896001251362652354725651702225595569986284251088668968471078726001673324221562512429272130805593262213072140936864354996898787430352676884922123183449241907637471574744625215974576466357242752795222891504064277678656611519193319181783056716465304813810106667342459156864174457688390624192018654102252669706153890999072549984285484195668192454519747093061422753151298445309182757715136118167303580932146032258472352811825504706062154262243245514468964572693823166555250959895041093425374308599979713700425885834030449726710962996976323360777674373479878835673010286471384545928791637490145406647519394899352212362474366131747830486884631516036592243576762762344666539589796468790552923902702010757218919138214831626852490495848675432931241826413466272282093653277283976675572672897319381293419430572396207232920071863867466703063646013311111642546802512289430533112509853860120123607044969978521095859875329303277162267982305510767692680002207418849030165005038534475971018301673782681943612416569639252294741035743185176583656034123276433900956511863260791733899126277207213516175222255241829612433962825182328696862544411862381233064034533155601640695747232038365145663557498734411685994161655182496042597983926781613148318090253450716466644267026276118597649132476829527278057032238343515063672177066376374024903046590962859602719797255378001418201998101813981259504234866248344043921136487236662920206393962884531448374890102608403614840731200674156229159669636694083603264334149637120985454752501773669601971461784645155559941672637397085864959877953242158328218410939164052835679070686421078034660757197989148155400542005107300962796234727249970112217781656798449194332226334150338567530824467734104550327428561157455387421400071928430177447314230098365760751551277796281014722053066817420350596794105098046656313637782517247091409925552471036812670513824675211720052849429521974886284898527787835621060048781271144063499088164592445189801044293570832904722016072696604619842607722478310717143909349289737950750564710538029161874918869946353013572935018732066873115017315310912967948625497958151216822075712318919091383383534471023659794480804712338827444035053467999529133546094139272844651391190836076226579839815642463829159990441628452768189353279135674740322735150689098775472181557499848834669462227119434351395727560933187767215742857830330183042225170496329716122968367527489832947231506974978874140021926700672065677292131084935729407635928956182812900110978472432830384651974375857368591230981783603031405282300813026631330413992533992179415764798534708178636113772001408570838639437703529183497403741835116223700401731882693932630875054875664529093265665030243944536227279170800381578513252902365105680962589179424001638714961212169469925442398674726206005713115387838833883078016537883877521159311944935956949179394057884886062395944418497289287230849557926072113297712137238869698636023682916222546471088062109447913239901540667816028934694282155062721260541798291781738248919973382953016826679061778013533650471886339784273533585623279185357977922662703802445696829686254911874868530549785796598918486218623748556393532156304899283486556154154064951221046610376548180602506765491340332738629416911776263813834785118364105699966094920204489502629446168466855106066242088314537401268779478139859577769903987707399417032565319355613000528143599456061261608322358990324895659567527576985324574403560761288607968185761977178876556198523752744722359927202060238916718790814708867068302793989768378023337579683748471679204205611884614435084238369737859482588497825952141431676898495921319389412875069596149193271147035874533660814943754697142919529031019389435637183593749148307423044934029596281116652389958110600093862221622655252976610650745271358949733447407281673926348622262971347155532936244457994650823197908769074458525370345709007744081534167863870148099674124003837808523427397788174691080535330509119443313873040838043067506030686269532124522901667503856318585859317437769494157410810572749444384001399152295292401680667458424696605569107697596987310950784518251857689800093942863712191016698078851710571144669507031273706962004730035675368235205815249186823908397408809264852704581680063915340134937352547150923527044161926572110042345848085322398093081970121586417329130532589871715885516842060650340556996859371591562193954595558557009347711681179835995842798195564356365309389050941964641889243417661217711754573714429402729377177659183107443058151531596094826350633655723861413920813075414610740512741348138890687520896517547286443489020150187201836613841728079882729582018977486126338360371109414086804414638189975514419051152014024187628978688233866528874956474011072459905537992175155647819809184955876752778280803822629818043941563979561725694090929518577447883651594478720682678596369454763706238206696202396620665921081278183219127468081453031421779867353368489380826681896912999835199422321272638771597576428521321515883717146485428812423122468402839056157796819989785562510271070628379399431907357979753622873719947845210383168668521420822019266723155810117372442375609151489386343666526579426037168289281580693159057152379480256619126870887647506950850111370257880233381801903021002975975592681821635953507064188571900594974446797417420252130947246191950277213237247025702961631681464762184643644651799535877759048091724695567396794553734971032219369455962778937791938340697253788415502062958387483096195420461546990222684347461767711319737486600087935443607302433663280865368473350668707408900184703067698214753133731542862215155131814095414979724670676343697696458309286795212019941406654043266683440819686918622917654410364920807857292423388755061809836591222653797288411120130691018576030498329532694214188425942866214695276880632082571964867134224698526419419022236241186339130284171844724822755723379969707482002437580371792180734202080536935740618765664169607739120909813494702120725197213699642344209305478465069237446490420888732630226156357919606309236991602782364930003449747123779455951240858239709946570275366759813304777505050536634574715516558372773100785781787153031613276848925357607846211478860351804029765696058486717567636659308748016099927950787178913104203849478943286084797051504283326524571886423198399932856342268607883443745309272893146092544299060787111736766959849633062177514884899337787867859785265280570548661217379213552124702395325608190678852803832422968075544717437748950143023150146961225494895338362756944869304674198022922555065087429772758076095106879827109193837142290968268728596321942836727242477443909060036804852784543854819955828743344189095523099265929588482897771967505439205771668938552397736092582090693430578986742357295312051485090384652493140068996173731735816222294455416149357871477506270376192498036384400160913611713729557661808926386467940279365670385305779912988573944783757639092679443336505496770742285963808721870399582714758000440222404214003303590360960548004718847304678286807740989832225262453168032034084435109374319499380299081241792110895423927096542582195848586679924115788447815219557498322258335674226798960098032009354865108549467676713405310343499864349758000215286835835721365978208435732604661260570464409200520643748808684041999585408697477316017505390253064903620449458476440882040053860571525182217793518019414711660086532948281060021915944692783460379829268818677784883782713148160668128480874790430234200377130896464781785599461837510620688441358628450630346441913942893762354742777586769014678228907006092683252250324639953337566728997660254246597951963260902742615157481865278192977983681101331339651625793318419407026964988951386923961261275369592060229690087420834720840833188415826838019383358973224335136412244321174979404766824167809635203566415433254150964501977910541460943749815990445792838028880133562481814072611423275972894824141887025957454934254722746989976877162316099322885042028070838100814091887352633318358420740748446573397838429805347106002374219987211762683334909209073865337959074928089283030107207550472450851183334676304759820661789998004462744803370196555021320441396423674506953708781697379969379061637848201169796270721270358480479488580658308963231288673402963848241128765952185362411256969749199057478280326299861231724793050323637705845698785774531610386670675558440682408910511818429025803298514096157331538756311438547792152983663838215871358824082012778384097362326475844352630281664756079993221483927156321249990837098930946329559859928728433521252427433494379023824949445785164936127032642339094544808620028353526261752981835525297880465028135399112847161281153414460389703165467739525876538384445746110351561641809273346254142217903310714720310599294953895958436885773489495225982103831596420623273071483716691798967444541841890372511272835300592982739374737571099277652356370360647348724784839684203742309758998874387876542841593565973588345060936129924492587467691542804598132815825872999110300780631592481722052213206010771492336601003182710066727266488949550942336897935481055796423771544954137177407995177501466695465574100801557934179598301318715461713838220333287263136997808093756281698575352925390236568114358655398284283241700051641990051764383512005756933430421802931523685411424059868057389737717209032816486238395498050084360235358582554618855942442612928921434147898267094176760452225134929872997435333820627622406331004883774527381188722581819982219428293676666000040379914870018568674554412319573518712379305995148215954867701054047820258539083335640618262225208028648666809763156107137641890902360603954124553570380667535676524726680367517673845564696693596022634258001555720896238403647713214296692193472420798729629861675796746082959712748570679034670391578658581112738257432519039782995445767430575299283028634186242545022496241979163982734904359411395898404348957578332464822165249725331811930555856140503105076548589915525542652886287528895545773678742029770378468475636642494767084854307354132840361634913471074468329858980951110201242544884643071227174886586964367223751257407663807577968593851823215803790138851324567042252785387661013519568286523394604020035673386025205513475307900746894526143616381246602094339688182998572534654355285404636104131214993769216302614831518234694209627911549417194660720665528440044356575326641438934277220905575184236912080347379886707969228398693750888161460738382464200081539367400188625730736953499730836725281014943043645634975213545319519500350764823703618453849756361633974429430988638719898808188086747495831760222984672501959183717870015464719437744024587964419343305273778617450245249707149907000518726929283458717863091748438785506397547781397976147102974805258930692216662225235373449011353986266028141926476293709768013187204140666876255459542229249384946271177550175862021378876760029805157411237809551927818159082066363654035686833244556620095160463375225688255854582920019306381533873656517945743702588756264732107732276466231522699379582538162507411935992575434703207518963927929216230912990259044551217209318966179934694954150218683377015220759113008886890238579915282639867824654608874627852622681424733188588572416651261959000329224404728408961960264923773072793032869835071995091733622206904266211379357378789633982192711117924375186838175762134729227304841109052893127397566546440159910892056359539550622684903481778340163888074775859106047358664560729940094200063120435623081164981455149655513005854611735524052167155666041333475875987920445592175677563283767227690115416492112246422360395403368455011342654247448989545996792036442429665248273506879964950157404621482511116740163812882370549267667972800574632906194561799730944487237467063062834619376926372843710250629430239838747180411277944515182108640001558475791284640128739950977629770826226345882505207818345760505308157127681646160126745615131039107176973845578732241330030005534719511669012581135208015630373046908093097927353658564913574711350904412759076490299193882008262173939592861233365729706646410270587838551318934657962685933047956026011545035967710140057993336889004022075384825139930863716343366007923712406457617650036410612205435688688177406253057006023018982911091534071177517124423703643637158902201162317102635650130243991215404270127303916604348528921717678005443537960268144769874794055715993778356399662100669274192714681089620407361116347202589862464744081961204033687520897010880633542844369252180174251211967856991105833494499916830944946984707806367546667767825383723040528489291173054802989310613282285243013974421278401082297992256374991861619095395092292352403872656334962447446903480575135659465046250309625011185996363024036541878244570740245894880605074168390715058032424183755862679604489403118420715618426638993005968351960880991550054081911609426156177996494555738936233509560216938453029407415354220170088505934108021537744168969765523900070011310946928000344435606360766131030272873892742266524989909815901237651570432773192185028448811193320110357105719444387121835232255486772644086673404544135367403990104641792881141327732957052332339987800916026700289290467003455063211355182259645456365580270462153147060321476780387345442039887757315364197294374658678276336231119864674608317162495938051631791016021743160036372135135506555681162767164832287962390037143316348095868924384711690483078965100591104965015992831438312018932525166768955897310518020709156128212794785768231503099654870137801420342350862188944511309174155201212503779765726305117588445579181661243191479349987937188974667677782724332922702482645480284999856755494526946870327503783940036651442685682081309020949057899622100814077366965566279789587599381603739294081898326023119790605145978038449412185507347234440464136333171482978197669866965514005181845419763310556350448849713422360339130058979717346782373472329230517388505004636025681998062728258112455591586015018439090409864180971710075461884773934911273571127107533095079036197946170873344664805241788806067731106455884142874312055368645075413123789205016418245598529170285529823491756815198174953565040453735880040973693100210161974099408857233681398906852305802152257830798584444988490026722154928888612925028852813527173780318207628086658198702133918612113360246187362649128598385704246054788599442082401809197362711751540474656341180486288643987511052601860076320866403208005880981246682872769158288851453555992972145134318817716645564502666336275157142261212702829023587031467862427302335998951338331069080367912289759223209005353398361052808487974347050510512429799469695877329008120707972879653583923242657673392144380470361706529595672993234416869309201866257158203504592227460113349178476867831063630236724355370932562694982307261863131091050164320612674246086791670377930940669607135447772041240171387152541478713374566022914274536828100929205588900795084837232678718659556212837654930431227464459773811156396674092749919903096783157044379273964166675109789264093117468241878846539287943914280719137228194506211199604942014167567514155226569328596939900541011164776752925649440428795835710036845090703458019087499993092734233237906647410746289811710104027788338214509831606137185058427903895394961345986945534332173388380442292218684824710117148515834710609975786976196816012437330230684469271055789326166001295993498597491718450334461056240840010952490311291513102073536606699142509744167108918044279263850255766220625664347056888812091343129654781619845396751548210810244160624449318587351214286010858155871519419397655261062478092540814247596466270191943785507186983496876926575171350176402003599383530178302781767102202449288655654620105595674157711590472858301654225614200548268513719162768982527266000770336835926768927117466145886443256295441705121686083735716597610278238848606701446329636821363730331746487176320142788006742493485684457268867825525550925006154697582885492108122224766822902775116822369502543987324561861209996738050145752145346770108025915298160421223116328760264578489208814442541782351787729463684916863787103355988029352879751316600965034502135008786148165275693425491575825447858789779004210159280113548097158154932538649021151389857756639270582004783308103193586172095928503098371977956384664987334554901336566062958993312667035425517958589534255685222167057206373166820932241554656528706208202685332600866580058396609069504970302254534936941843479918148540317521615318893601698982971238272732961881513540418704927348526265666408136486378871680299743419921840452670036155802038750040963721886553766105646252585967623112091455580614923744622486559052594146783412301336488120864513178145054641794164567238577509045217705499758332360916182468663731199597425637392431936836066334687888366489399770870992397517694293270431571634050583519899477212598612465956758031364020077933287978651130119476790122849334559372745446777306994245626020238875493090223357398303966428565992346239434307543557661485851861284466173143979975977684470929792773827647093562794945093757497580940229719554370143859221216058081004239743853304543467119143871226627091401261538446277366108865182715566402048997387185384279740871780398587857487216892636293407937055160183714050877149628160787383362335559788371360809666315218932287510522740371018412548297128568954164194927943850639454838617154528632987007434474646146503414460256193649389255719342320962385728409362207205517646982530400643228756038069773146999660101861018409083474528089280983391290914925830365117302996765473925151845027724484495376804763886401906348729677479902124856127316639984427361862308855173182399678817158183206309699648514729573723694647944254825014483727864303542669964431539815277168679844685777773176724214993063597651813595392768068710323045802519156036464184552722886148251459740929971994529105998334724104185420272085136054307357487622738407920016763466151090614719108133008769243989050542838285871745960020088457644825190313755480860179403410944189883726523194071831370537998352344375954898132153424084287482442809898880471971054529233998476551717751441096350331443841574283608079013413016396157944559087366278909144275984522976305439340866678264314016375717056188134506536372888736845773001897543538641536393817376290182296333049441891940659730575385121339862756462498470327918415111491211352501046851190089611707902188891880624882538422836411906558748088381207312323141344233353144433609656271921082476403927206088886262852588519928301333058905765272829571426194979164995894363177324749580959841491639960872405594058974095185184537010842391107823544795389772207975226175997379931801766025841678345852154531357858420969913069952099187860988612444010607411986374471530993510334286163756809485035927570474426589679566193382876884746673876270357798755596549401466289989209986971648540723033988839367611013303784045113078379970433116053326219954425770307103968439752796919730812802511262236007775400051308597498304645404951309704803426138354091344540564134101462193716056552804448400880453039649492973826865022745282299484577467343378675502800997560510091528866646587902625776895712418793158394872973887714835384248129311916831606013543029978483686352773120290302971077830277473895813465194275616066742843607020400238768610459207769656762678781970656061203397304722965481373446191321988589232186743912322415257741929078225709141401815695728457383362291885079486832949330533593193572091676364595581367992386963556749298651132482713946073162855012413231173726487739829651492342674132247288632846021041366966644267728104149594302767238763428606644807904842677191598564512608618704025727442774514307901736151561773151575005988399640141880497306997550669101292407530374958155784627683114837351610082642105686878635684085892011926825243703903525176669009238408264675261709260269710407047148153102057397997681579182981289235304146491987593615632212451682746172277968157330253255735223022968339827799416034826498569382639736059056232139294855074276485329426710589699458926421441196000845353331145040686537313195714843485415041517234706871596658893468794776160506525205325518877942762000677929174286295148036393715562492149219289945067840972054346001956298474409674862465363711302087381417548333816616561518511191134684732365538248531987858181814501053869413158042894105310850262582815712311114555123885490445347986700257077621741380291892762345238939140280529309686455602087074750296305685666872397749985911356208348594264702238540331396655512294052067722982107716988749068312321865667889253484373928939824303927063104601678559287530601787022213306811299142564872664971680328549439089540115982149377017032767620929876361529476102296386400390994665174286052716065117214013250959270559294839736129981798102567138533177106675033131782787325121501327837748650207033135506227558130481080029460517179886418646938301427222915794350397991778016490528277130295624570910278494445900502500126475623251401612039820325502752696951967074235168421191098209014734553452473851605450203448865261194845794673910324946017546065949133473564878481268188018707352591838083903679072721987136512691128737953771599527413426674052986058267277760841997469706419659029959562956055600022176378828180964658424294431160434101540324161837112411833413369086040738182186785929660060152609792043026905143222568143657469655420071610492607105516213629879300555912132665254334472375154831796125640786777424307070087662202918140655021360191663843859998861232751529035298703495321075289690611404016598021882803768053487149020830871917804775313608584141065967519604324017985891535324434233629910033903677261899140466810276148578721543032757524359320503117165170343024273760823271009896214950638496910029025774167136585044898207551353446944194185199121456681506843573075876541271316654235668122273722233387587767393622874603410636815651866493228134230424204001730539139580450340596804482575134055549046416335784381605886860227991791515677699184838574581978981362012970538786726606889518850722007442610297073712835694266977933820878091270526740228190344887810682804959591079430888100469561835872093432323304409697612377196896298211991687870983396113452620176959400345867383397823414732191382499749914065896773447434028358031537479848996761924969985182240176819305210022455108578603846905687663641289089751554366506561650619221818558606395256352043478945916167981232360574968374823438905559643350429275477260719321983082538071553885217730924299413144190263558021105357988665362641510146460711985598292895490755148136944093607176494262910340381718216143960417698528173282088210369061259770468314059876589814268531700310662742574082809102331168159759586548561781614606434476519302871734300921800100587395483454403762764601382427634053294655808884773746683625616908343097270069974817824245741942626077709798914229003500843321192397735909559457468156646947811010103696356946867890309337571102762086607087821065555377926088164133752939155961539106238153813148131766276032319888049792167796110491023883227506396471007696524744146098226259447672975844810138808410145215932988735385180730698100946012616786893086024378498607208280266924451098153916959736018213287944079223067584129848490365630343690870142583141989910541398522693075466950199902772011993438099809657194828591987672414559171595955750006024391473464999909496228073208901853177416621570733389283886391644137593974177979961906452774096579769282536534878288646972253655754525228031688471039269429944017744150565410839248185380972246265514689030002078212754945052791543698175496661875134783191865741255835539740773733416015611445281501716175117999639940611911008630470479571340953158279114969755061425259661879019404745287573343889299080029769877893086987339902732472293618765193297280946392158801058120917330356069608825523217970057600041590448817939229844535803797460712947076082006515168336564512412811294002079114608274243109520336002850578510317812969011196732086099490036742606578833236759989031746784188273762112822615043735782612823923583260235062150253881205038087610757792341102006638835964616931815750428606621212402530812757970025787253844905787402407677517611828280220570076803317314373322249720895322231769914830922918525246749051877165871928339145127222439107688038146764776825605199162428994666415868570033589710058172746117001313172720152645395750670172388733144385271949699753724585045185112124532376009243047239954398933276325847419966021261252980566184976823050412057268302788959012984790370101236347773267203908107116393032892689698589802760428530981257919573240805314535999506802816476376786162049908722050571792632644701380210327447578509598153769279437353995599069201108684572761587374741497813219922100979463616836883769800680193267246356331393619802284466029082574970887611612619391798898914147203605599369088389305805359369339114503166658376790682533810154946336850527021605286589896942257096353454924087953244983450152302310368334930834082351682915189641667157504762901953467655050454331891572657051498776384149079126728380317905379403906551343242579313304132494807608810469731249545345457856264329245753975443631106604365289403443842934131029921856386196903953622936190101639935285350105729932771839446878649027719241196947766796743216916617401837190656046390007652119611483507207555929101785378770569542074600725347546329875918008302027150297749789152839894533255407195166657532309264951394211425540451153778645696623468005001055766568622256559753200069485364386223037984856936822387490319549004916657833974366986091833919987237194725884528872540128464505663054723627109926427857024582922373042200103989251437607418119767998004961158488903136574404814727769349793351969079124128680495050177445358305674042673285789757264025168112914401728938893906007862203398066619650785808534824907943715105931869232064049673865635312813040791072222135766548218780519858530019883207194602635121427993700694070856559587246813655434167121600702677482923620401452985056021224418548337825955416419100110698441606111936134157284385573768224370273680210549049859651658297294455519182415160406551183970720272020846402043930729863001390554348608057272087118125877938449849043705292103749701001663998151949476294999864284937367525363175218833130871088807978839241770462788936077376914701380205788950494781158875639904502685755056174160558994625034600921021093521309476759343508224228736527388837423211347106010920493956173174885378022731466288416038867881534237539156003774078668328693984834808067071923600158571920292311134173510221745594119959835444561375619179631107040180474480380943839754826744551977505936659329500786951398347929873388781017794560817544738135591808299812498231500373506626543377645218316617295923566550503629887119356012041679383725200771593141903519272458016944939389396886129000119117055885151579807832197586364396223411559124784518708290402202070552688856767767572084330196215790085294712798233970767046678343101904313793909567418493179487559919905514096196893922557331938718224016540438942429761659128259606455657678962695006754576610574970349472098549641722192264151810279891105903306539154665967022021495454292522568011997322331862993012889772600548883051801907365617848724489615573216482574547538161434670840182571136375339420168400511442960030308232427627244024934395610559393307378279093954401080585108538114412665516154280952868117050960782891078997195299893421677946200201699898496514405533694909314415663747898278927807417117097798317152252276910176290637536782986869272805898815004823069790734921618995536707907033479375433604945307207964877016335038661247716798894046172089012433709581716007094122493621549649575492391338905213792848132560065407087219295204117451146578362108110624285418078166194941845801094848226063578640095318038055317525908824674419440837169751263837722218999035166081850378401036964191489110716279202497884078503577014056163478742264000063558174689957745981617176542473582133634390557463367004182631314361141816033296676296760016799420553340364035181666054990897216378910193314935297881620939541968206581906428364266241323705903925680464546366588202705763264918291587136360468736384505449748883936255634469025847997339724378268667920048942544022238694891720046655825732880233249943539810894646629386210678261585278995737113648254919496669990046514833047867362138961073979915734993372656791738205067948903357851703480156848711905733150307323648157543719277078267888498830184864653982118322884774599068233974621561258538266237228319698602520433786277355751555072010160597871217465069736999774885058236861823974059628238990617184581682396699394042340380271521493416458066506094255166330604931071671973308360331180912226728261653649177815454713336139513693578970790381291008172086749705669639627505283727439791628764864557681076979043877788536898437300360143129486649262310772749037059562142587514293266878284788078762847818624595678168662583026820364459788509829508925259441721135355859411423995153512414886100581148133714476205748937224169221906391313782811620178787608643888605065870832408698639465194511688837952774635359778005996422511881275601601791590224752139769106798632092833840600861021846713981186612051037717967858647158891191978082065110498720927329367444664555227833315561279846519883483619760801583131790674551241002086775238220655461455939748978692163232155531192906025885276633670028108500403677602024625577852652669770340069592157761564764259634743356471602185512767526489221675998015472591183530177901102148470226732507958525275484231626158929674912801498005754149289437240746443811161096891279255334866504394777647016689704662497021733473368079477321086193443422642160858013035024637111089416681026503673752140328243429336919373726378916898338751375557910265452952313728785719567272503523272501149088524011122123152239535668141756360827968894201993232452749115000568066190671007305621131256401829504993342817836112004413870830454117779908282985239103165217553221739083863377240702608516018650975472284511975391203976275960199053838294949822684160694237074685285118596668768797229864602757184502991246920648994694897748305050135197459222778942804945888936266175575585016684911380345406553384045092547795648368531413220672805295322177576799732975000077209030258510443246399340674510943312435873235986285879361322862400827815076560815539481580746263592719106228645291219548991273889934768984063069350153058083956513944024323250666224298765923968269410311308341511967555361378398542211792194114495619165388491859795707643267369745935938106687751104593905615875963496617956775816312907314395200211716241602363878096329901332470378593865529140518948540202174774349411807469378036532613139946208945557490603976970949550080264968790833922207730630331527199447948997819818289566397872623599650538450840226160712887069191795534834127291556345078392909554962176378094144760392676202991209797852610126161587127075355867886070133229374148009805349019787651172350139260320282831938137530461743861854870731522878960438016260215193217278125010153660955395939482662978500964721476963041420928560836755369714576744658251377926893003498187673095366561540940181812138145157189348521141376323974759124935970455118111351262638521822684142229057616723362217416385969594285558415266032581735696873478715282538546866170831715678979869207966857938520386732793631311097017509091536397157747854669238984188000859849849311591372836081341437393598408772681388157631645299040033170061435515871321048490860408630995545829324985126941508965889662019644103033569857578797191371874747941989023985576445427531759127821820679194009597944889802165519947491076702194965961007134306836058843980625029333392918050437874958457839559752191849939915665684207644401577026373497360798043894373233710357794629495956975286424169076671625974311702801304335272139209895910162931503144061676033044871310888930329252095324604243871580713741133334967521894678420435201200510171558881014072790337090139060829623257365434902251585715973438396432549682824253927771242235747636514746268630421600367373905728097415180263325364778806297783650316962478876630494658904139814536834964837676379724030131546539880841739693614258671793819140481431262211849010477107002065136340198655824595491518936088602077543374425879392350378338502501167727052720609919380261179501593818710043945478642611784251461725602723804763286997966113116147174598788554203789603048511936947192108774950855386289958503777799044798797681917449414290009803597502443144572163879873259333474843304573940812551247937720838298860465524871445206812031443287202182491713332412389413032203595572780514404956058136514098616007905100746445574326539394539164730244554090449359189950093007018061723337167982022317326195486552606537659624069393912796408926084161148803306464994054074645973148240396568634321593129943937077821600270955871259263938062653090637227159030214454082789035367016709815238983270423840016348101274986996593833187719507936973083569436728856506110250945352047041905954246820198982796106997322621366281673631229890562473777629237557610116540065593852372739150669064576794639205897165228649774345022841403508880830934461816836667371572514163826056268400920108841378388920760123000864027233105874037792368077723633760999633454914229514026340740695000357192016355410390524035290727326982389146458549806071219716833951774684572732705783001650434385226732890660418884113825083413613799619810169705273677247197959326117762234453981953204724407339455212937548499646212828779894759263556471124809844788635485768440400796454086534311784469866699631550715355346753318278942174905295408470023651559371913007076532061016462428460575445913627408024944264302474203872311368140350116491673880339796281288237086263147773710950925211669667728400056696523553312357273447122505849334210006543804671533515249182317846165102580881801644604999405884890852354086151838940436071934067129236726069448064599978077724922090290386244074458697014205902219888068460965151709482306000964657014364407668066372796875694071351567827990649079063277209044524503248575792807082252032623968335485158606931459783852836169456336186314956895751252054275834084337654387735755811332332244587416913044623332885304034168185327650796295332567196803046626222693929242338176147406217694381301816446836250602887868826388486228440768649870505438229258065848704040355625732567495201114319375477540770919620795371814882506166306925483188887162368525155484810807574535347566506910899890257900674711653610446354848625845329601116605524812366581334844340230338387669473085311468229529009285203397072972478459503263973047096928772755667410787921270676969147191629646778484264375541857569851081658718271514749550361565003713207380545212738607371349328329950679483810466721696131667455649838641066553851957114779798978040531315313046953559560125012230730135122823590308974131531872460657676506927312075405356228053969566709404554331001699200934016030151096700708703308962865869548111711644722242956459262470228438373631682761826381454527381901157150895220166955589525546220679207427677769230811522647511068244339134165002524040693302585989456339270364194407539781200821821358504554735215748043870509653774461478113468716565558883519727921318504550683553943076050369009362962387836408667012944398938544441878508815883750876290001144469012888129558556775237521659868493432422064333126591574887295399533862251753806821534505112447440946911045116323995851505755123125829401236747715157902678546634378329976843751816713246639546430207887683845141331311200438362720947289667797439488890340393339347714916556098784406261235812235129549256259585831916362448449112395365765871050788073967088109766912105133672021088490924983481410808514719793119832560149134071181692653771766948863256773850811309929392427973112696774583490608959014679711219754532868794910038496940607005645672377105349189064450652802955744757018578593533302534373141442053035818947250256597419922390085503338479296623707672334636290375995008754307502579639741502039884959037585768291001734410030163901748485633064220117520177885798427457959125026072781470357311880310825407223370561840398146430866701326413991073500244188772556351318020125185808148975409736973081487305408871737347442840919291643424402102449642639287357398240381058420037345869531070327979850229309466268069017927241787098062523829754926742717401093133908440060317715039883971756517156642506614086351975457345974732854603525770816379080538731580692280533069866107176170472318941722385413267567686410850693619772850880899912059322947870172365995791125474049023042173561164395489353844038661966783227383630991110052858370782496250614551882569385163576399303075590707409177917689600909421662686399459309871665187527628061216776559917910290609779887602911312938589553501801828282284251271767414232794377249083446842157094679010491342939738156593513336070619125183966348987890494708726441344580810241396525389714439089177752252411780220168874982430162373290165423895888029875750062831044553948727701249308315249497974712676481104179236903256497908621475914072338569985684899320722812683150370989919313076022276809177596019419663136065337542651454170789726564216949912776720193565187129742389742007742270600818331468689266029409808583955345298132643374294839713715782663489388817585285996432152468492022170504236438629715317037861202578285472396855010947264868652733936132705317091849608428679730630043616542134626766101017003598757979069986223205488026418532486292510961687965980769538976545361454574455400165223914248148929729381427906255885970122387283489024057385524642344391199345027206577171521049912790899211699242640970409416207231803949694168898542656153032807224682554245811114270095732327190155988537895755711619245963123390013892387272152786124203816814896467821416667587669182854585244394137306771464037343309404136447692935783257567547224604923772545306631226140550175638115999431970278836561469974535618662519921774758789668022046667762597743833899566039040362829861482702138619053606636684579151451491296624149189690080815398786558385378115703426603443048225501319786604767627111519141329606396129679567514855605359664271764873387754842166807326793446827374535661080150860574339919862152957878761118559244723527131690090072760229277857204073949284081028003889856654021555633375622291458982640581718488090352195923229845591916946392957967530091549871090141039887383479249362893105797115046206176901054689301366912564960764551910533627317915600645964827476548057231889471398410986013028648665616266629576250098178394457435203937949163186162324508410436164555398170233396828075408160676789235051027647052040995697148193078321599322556225791336901779370937542504178257657070596223970542412067164187424641557566178175183211009184626487177650911903345723077873178804849377654425394524714942409147933707351348787631457698510024967498296725718389578378464947863985440231214546407023160932103605559461954760831841078154975855244947322143893205233734975829477293697854244733192165853383175552249465848759397461203136817692491287900551784037075161061508632843344567384956658915034942405200789741383221214924671798085284634286820447027578369882865730447370179875498833918216443632043836027526113090044610037477990279490761245993811240516191996059651390077909634293583119034305624356715734095056163628748278205876154899881362284006319511195201780809674906704976589428203193245913242559617114164316694416180155240661886331173995068796437781553809722292974598686743643437724460225008217013149369918140245420915767683955013168181074034283041126865254986803264579323184502950977452013898055358194141019131984833867985554819940171661584883611814850491864675639177286330583746651251909951762786218221778373921604284381236585503598776831679887691766786403769600339672806404573452597520193285403903843278475185561475310226363733593846397999451197734568566544674283895819110350875024475420750117547265579343040641644816400018548961723573698765002091463124400680506656182113202933685956754722666466024686854200803926074056629829966228278866733064506550328841629388295625887554096946807070658121980508578924056678207301913200670603642168364916525631353776254830895948420536098722955582752459315009433419009078154671122572710798521222737556158326103023920531679278861411832982264597557653404542346104902957223958753311957961950228946050308356974031984824793750389739827953899206897189129627097026816017999488236851544102490634503793304638505980500689368850921596092493454617018696647022532619388193016821226484368777952396181368777350178398760142879720848366410773287642886925358714697839726188810338450333711815171148471575357282911137713631319778212024568460969777492196379684737496910945644214623527467527261285301800789573543032753550589002760724171082427797722732735900626663866696013522302560850972996315375782433792507162172074406333137963875171443926623811455393900438867851842471758753790306636660932688831931210323207235140907033605416575082209060337201668113885031468464451916950436558866152125950693828434458152870871228293140727555933699681210990351591016421256071107576563443063511705673167435289581947549521611425193110025890413452890075077583181812267074861693705113747405144794546197953017476006106793453483773940552135929988183465458679825875860431734040554601182336493553306359083224391666806121029285929309962757245031233649355330635908322439166680612102928592930996275724503123364935533063590832243916668061210292859293099627572450312748943909642963320873077467150077733008339343158859637012443376957769454826077160976708615481666794238910350609046146044130396871368948867998350878040680643816217724063479178119162006295777701399370934394432172497221823195212537941326027533674568558608844105908511230270606553796894861190333431182933910876196185654145709689387436957061234280197733557389624076816315844335848770733607207064012636724168412550983009513819576886151246486601910441900040538733356712015287826261145314440019490501156417180146235530033460802176758915614799503714673327458150272811272118264669225554441318839859509334196239859455611849476747865322071492014140435873483891207105258163644906920398813879272899285398846067946999733862878432225100374328066659264199306084693616756774847179955538224978574655672505567489493096000388111650259900059937401738666047062621238852848170109467101387683522002537004909446671047557900086274869986075801005598973977527485320741834661939937899976107539930251144261568920485519723078407582278483831235864781682863472397050703377015510803721686394150717589120252352003093644538161000890881305020391693411591082327549299699784135448332296718754241822465520037962279043106977024167654829394976164049500283098389394260224304616904843558047477224038717866934915392885786302298924314368417304703015701090230606750370244720033264134872856010032197236565201590949293414826212299982317332073064879601203797276473155636303760929383734234682091833203420880375831996892409927493635290735649847239275179648356460381131807445271846223458597944972284318052740625000578442004830052382387510848554266486618405878804641206810359198983960987271311506410818454904555799276094354218400671764535486151052824756829626859818060293772829879244252943870854120731025294049832789179127749003152175521488252603471416018195384541767118062521836875819415407036768156157661817204779986923314640336138033465204018426158039026418253618572246844860612887368699927202741626806376662112069290346196954581136434474159871401892116604662265826615905420697639435931236620455287560342165003473601194342256149140320157941711851715427563965172568645384670954524837130594898582559745277564378372093903737606448757805380896666613991839630554346351531548185886779262912725363426288985256854464698144974618924149586366367198140065068588860860224267337988127687969406497029915452452721325754281953249173115066208586652077490952965100753404049227356548282957025690629358881690414651069717772420955446130258543817863048508060589906373809054306950261384242227053753545985909932669673321651519481725345327473336027447258527245394785787049054847586331157183663323591323475882593406415210390728719363267963759284733131612339781549856507745957426301925013613442181778657326845949803925741969699998764598249567094095595490645143192997532969902929018113346849189397316733740473761021534979028013172233791279986391471010573645808824964037793669144260225224329182203596947965229632415046259303763664328408656160231216109902717797940482442374377242175453274369030749262617258880652233261410603381653209323202669910870847586819856399049857501176199636905969925410436875329181907200415759826234546672701573697113335704140320937934512660607079906558687961615799849341095409032124365443108731615863757273748174501786655737939848669229117599204342247600648597600549782806294187391474966456601976892636165982896565574458040991426890947249706735220470116191536009452736325306664402010023201873227819761486866348989132734701444820324293117841009152833330376911197051252511890297082942974883981371499778052781649343705604326005352698106918986588689816108899269920434547815535740465293822554757923965125781698498673421821853124073431152960821411209199994061601015821912737301650176958118619036689779275690467857101810593937314388119291474944356522189626028632586636519017453659212186387681077742091583646909091651827398075310306649980624484927747561884529732947271391489972684077858977868656048723305752422857172473443666741818123270841591791478616819780032875242194648011931593793515239417409041909841257809909038894077942046727049153450002486042745530730683647222075893082199445234721452184282562092914376814387802139693639978602212632210982207735714412941264065376526428543482970693655116806728306148155350067799273428746717408366660205372922048484087025230125857179145696657952396359686270645903720726805879439813400667670141176581252233481048386867717405879736896155996217846549730739340954660431458601540495615776456167344721264274687461408302063879359804284966224722325504660952317681724586362611284833874076507582889567745895887361095197420723212623335561519338247176021818683895300679750212076904388381283562581450125007119027156514434627064814950590196996139040560790673726072411292447199477028384835318633298176199947312833144915968777504290327977034761938062955123840138422910035767692969859590544398289266660878010344059670559052076683702101595219513945447731187410723527945608443549466760792882681935676466658916136214042478564279268156254485063166852683275246560027477652412794270534193482805462670281599245391248739375580940125919778346533655735625937668087699752574602702166964925299837753819693846254708518861510475226475136489188335738189169712195832681004195765377021192118272566508896682467504866699659885042041191615332089885672380926018142811762344795582942880858136988607372754974912130687437421943014866766259691695195368856911749382319697559557940217938873722515159971405447289708395510365486662819650368486846610392745568414363590177744038756512080771456364877728443833156357249683675631481039438968092119282337414507618630565777737794145333025782078879337135523281930667781034744878814533022767115982463014677391318064699017145323181957296401713829934458665281042390292044042050301085037228897072266732041640758383521162554729354209770671865262076294672043633643273505663204112521287225894149976280468914855507597361465051176412579302836974532036046506156923811972132510561806134521343817681732762841418102164413417024917558436568114547977751958280662844249750379174772362042042450573630609111548402426995643360035301436665975118280328039534210540491910305673142107541302357934877234239073959389300436891328148546882197053482680640613344760357465909065646098009717176995752043755635452168504422439082780834807215680031213805137447557386633580661289825695253557232663073951954063697946913927391950929709929134880148676072714978516827026905071076789657653044046336262688872262742931202875173849755421431504998907456461215695542535701520147462658735882915448693671682109726387703669298762703332692676405112356591787736324770461161187528378640880382801363490414508513182955873803365715923755404374036600943126624937447350183694088350123180570255108941846936668830380623604361689986818150462814543993708439467237952819530328860609963154780541105397983173910481917987933763099182400716369535925678358669990852568283461799920448492158286825542660666948065905588375476747789006303076397732011916264419312313733282236418119343830505865855449829986899114668131171194218916017937360257596321853210486874992047347029942678712761333423766834282256575650157489720280343180320624484957230973900571509314538918434494382839737345157998051562591643226270141862062369447593021410508502812036049109939053684780560216627046368552572741329060422899563510252284751907030825327384995555330449578033090259275316352218098898826291159803371125701721767669045456806492230515747468915571710175672403541893506112888730240431443198695865218667607330385490360277460963545019525296534070301597032409851150252930588656719011250832847149680648943813007837186239244681790216217356912288723948021648464737751768189421222071035655596507979484499008271935528147914340403713871720817609031988564587461081099105936917743794712879368950324774186485806481967995614643670824870899368395131507203056530300788685982036072066991673761641475665428771935359104452116916769281639636456297834073706478827406183405435707741216138320287378790378585893274553614956446125505055478266874544550908868894692718598894942344950748382185018434130323620046680700191750459262840838505364312676869803402681158070981034589860413084173550995694415179917543233480633073261339139979788000382109132766014549611157042858028160675162338135386305242956383309503201928781641324922300476117953582495605914530004246447880621302468978655969262925763574028799401356921167553904002699664556025682972369504959099602717097381666168678004832729299059428102968161574696306060610106226717021253966747951389381374853895351757832945136426006936137777440005669930174020113667731787704469450601292260749691106157620763789334504137336511956003290783523596465326574749743528672111629807567585108385016069989693586715225964630570091390876287416492541708169096847309548860233298288800101652962808976987723196907421027009348880934455512188188336519784318535596067476350722161178728735639465655434276140685594124259121417078116303080101925876219938098958943050939682518277130330334926648853295618795266446319063493896492797477963058182377606580354022796691081809322672514261428768508550234036395970562141251513762046722444289799785545413190137205600294567063403824299178075125724484463577152589347223368452680005049057940765926118340462764699835321989331271173271051129387746272008131726320867124724783103695325057116684669339199938383416530133092477294293584707438826342400701321713209728274947961163566782615071566282502125206276389751566585134060455290109261126381662242366899271064904188627001442112873592393998250056580064325060750945893585007218072932230824610825818587467133406733443268051547565276112290094215465561831034126870172286541622690757446663740257850581983903372668539128342511388977610370155470596978428438121104166749642361936898406356138762279595452151468928813282394396366129450138781676590929250897532471669123683482751546078272804451824345375965504925680648532309992814514753455092755527796279414245574405255218825323955625085721179963530195675811774436762550973197511556514845137285424074904838081995588091516117939219104261909284857816139051482314744553101516159178414599947122390516596944103972729574115833974593906205007758070959676589892496143734348781563774420837499914618345134117857213565765100288216534378838906972299886294622686851956288323205705378942178959367844899972838082251295857374295653148704304032195433016472204581397905745288020747285881031140858798747211863286489844734053114604400480011189647421657199931158890372059003146641812617920911940887850066778010999185461909348926691850911899853281758015614963442527274202132308326262537829753747808496486205747377298059504902145550108969348064510974333005997985553203313182691751915919500655848843655165633523507949744148699554593468266676174984193192323919858493142907033972490741043353155071618577128445270455615148720821787901075809945990781903407684845590803485256121124463883238877600772564059505857614506172929101763421062016322763133570869841611333843351915955219934239104565565973100823169947997845631959834114305637058884135857232439459993716084515443224733325747432690293211134055360526090724168837533543614128702342378252708953823576585165964173281100423670224794265894895420024627797793098934507602136241713703106513275975961348992427004704717253332642277426234756632022517984249524982127655951139456814127007662315485158257359633538267179226699363339180668550948028966397016335803063577792061512929958681816023327826828756138695348983385807840486775650291623281022321262862370364711672590911162207449944470337154671719355796034064957218399132431571758689056357820119356227777634216236724756676876172206101521338942884427554638039142982934097063768466511699684549774924842162345498790190059012230711024880588049920820267341521334526194822718040452465922884429554190815449214580890457049392729832168834134299536825867464108367284683313287432198123007451303144400768357402446278097701300214218712351188443907814286457148671303162743814053388576038852946905077691124396402844275392116011246848558859087111204331369833551298317704475439527351180945626273650721342386754878162350966398758989078105843337220397544204986189921453439457001076699302333404507062355822832197939121071633904478457406495968373683599961027055981093432754571822658191627376408326491944633925414125704727893001218140995028817766321849854530856667900703762657705838273174956120917523247601272848854422298986799882662839508678945771438815809675505801148163295101341784549495324847435024616682604908605434986260707695220684576930888101993638860205690810166450518721815005743472746924004566280135244242904323796847683264995978599541876796098882406497426652295844069729776191462648978315102874006697923620332060404453547944198199894752531957170520855316177791641077276461392157117740299135555015167097966196524062222914160997227029865408714690791932911101746040120652081190334793350740933967335438106677644251621091064097827740393472409226971399864193240183367625787951661669211485708440347311098577186041438065703058114089652279903370706792777717324019606366905990239660061747596602743647723341713211256406957304300738718969760826253778407616890456503696412101726055110506318058783071771045716789172093155510051312624885074971257088277608184629735156660641381318577569232194221616981981833861591091112129640683476454149874892596769391552088999743483482510977171733477484904241570447657365745775288703137087391907218250577299317720421259661778909462781073748939672753336694977597757614013390964005994959912477424058226022767434791404365977500711749068727626934563752876279153861033480986929574289849008704137552160375946787643984362695913728997237720073145336673352699683662926085657058390388235938311896147636133170436652976443607494016496971739566002324847531278261351162745169349859149728425780115663540112574883834495782054756513486752535339309492987778566824738322471363412781566382459050230733983253608300387302483963995418402866298087668996005436067463747817597385932001097038400943290848252148607855800720302839262481484210735676894365084782917239431353773078338286204525607937143479890247754480001573891165778949114366003679354363932067762630211052152101359215469454499705888762836579334060613239110233812347891165133960648232734302761158534325707822596745669263994450654928199905402788150706299036213505045231732501367062439410618076676137866141456378576604420749242292697703498450126514921671769633105167672678488372954900567865723978442763113473249771989060076187591408960730665821513844913456155557115108451321597382911001114287389599461623938505836032323442082881450433915073780818631937207838031136417583734875197650793352053542610648396468002283180323476626782438970343828285676740993880122455841828250616588718419177397134842495575355361542835106244832821141075660967969951048252279421587069315186868228906599054454289767683407842846866351695073592900594465251718651841204544327116374524591249405103177497432716433047861042520357940327121038480844643633301371529014988427523779498345747998752815119651594344029887214917065555918493963736202353463688821813143720813493658980418852618146166856463897428391505955837039471238321734527348213615696128326308516503821529565084208247108348556368415289277977777563665982862156502212507461167590321165420965414701229428385457567214173899297998005246418168473348180217325219882119503518467058280842927115925999701537509747900795093033188056558010139808122984565468161871538579928128610376600684408308498397279763700416603065246148266042831177932893558742055934518813264760502991798338271637395986023588785134609267323195158872972924667709763509894677014028229224590936493192519317428596941523665646599511192546858864800103777931630738794443787115163435808683855098036167341177467955250541569632555175659300110987103438333592007520317718713211694297373666504816162281397436919436021979331891137147757928460485105745428328748179328722787109615896826041519103216035886779474792592988509994990492164849713854412553391673798326983742448741274547096206337139047404836079415752936336390448179541411173493620260485120123053605543688879386291448078791005255598932825277335435924706739997269227399277565339725669671524096773073517612992214202555065314295490874261705335850333177746025891528937886543076661397186947435020469696687505676637825001336654434120149780395334094843058804080871386953158989175443230557614844599297128725620764700238088330825578637544806735453859876380858476365069526736280986119900402679811302046101019445980359274353057449296242273773395520169158005332066975513019731133703912561191330543297941699192948293905572679579528177269687932911425777320500214760199698152202061524517942389845818526827978979744054165648056210083302860547301031605032014574051888761984535029699992646579565001904482782417386095401791037025463814362445250887029226639233664043519678003566545443642503625079529648921390656484140182736971450214526431646621003738099504185588748963082465740733426300253099497815591421287519705271001157101716377498833787956568653934426611954407741443992487423206042266159771478006548964334962358396221135312572898201355984815657020457482109173737866280253930704465543688974749065847794940959812244787432218660153009734548024696172671294778795194415134401730118832367448720447806236637003524258617656838084857368856902370922908821222720834170089791292565435419407826899305573151916990118070501895885964740481390462609707341954494227067754033537102964836062032755617310215914346844155390956590974654992791537633294735996020089802640794682925361277898320585360585618611894514061132224271286111668672502570336348863158571739711603288212386637491874566260429531898520879176927985320596870827320607720490875624976239850639187378806361073721159075733629897056657468837735159852306207834856672673994501972457061604170286561431266850797557168950806738619613357613077933856652942611789955761282203962786163036697657292746317600522624881300262015934469599332301304443908514144069612949095143511324043728180378030527016147459666973182339616557550910094477201123130169927082110437284835364658022798435317648760439520807362259586407873458191531059455825240310753772157432145713447781843098447499918919885723488153921904520156617192555429987533454002381109748520270053711471238979747010158547538626802813231702862012903865851442364486492865523581713720293880175294101022520285691187186079645010876529842532971631174418650752018769292746421061313176203085067906658825606161624512329833385602122519961320728581640702090623127183448482230078940409243916327452408745667813673557003975514278073920034353313212822873286895420618818832914189042392958293492930594813919419210154303243567447699243068489549520239545645503065047097125895308641001156968732728057534628882092894998037694276715237246907452768749411737611248907019198792964232474948371863913292204033404762728529048057020058877226359767881747157982142176417664349005485153222335130502004742660842602758111430811587735785368141365683667133917403160705650379085284322678216464359301519207099123433844476197489701363751895168498630633471243935719934533251192434024867226850967122444228095486209670642071460389235934010684400475369638649751359735833109378326001909251574431920376122937708905574543628477384533513756498116412336892295228886685199915916299617867208191837173473070068228127018606502753029833901466999574794461070267161116027871706500234454852655318046152798030135889431096643822247543977162304676463531802819964493756623711511605197875870834292146749800015297141091672570579693615487561571782358311177101359012535395568712745799720175926065461900593796089784619027221814507235879548427149913315039620305124110916504419669755825132181861783569427554061455972705352382673571102318081972085394860182205482689866360286956681834866852454461440840695218263328048760444691900826696762964549075457223692332744166491319556486439945889933877587009880543318639985540493230677615918285928743896057804640984208974055068329611397239222226979036469776787551730396664474157472658465478065963956489535819557003579716689122694699271512844864772273981174181488663319289946594706008921131898942967719657048618527686134236881500004172380028297670052779227655408485543334861688984973871867886189873232380042400963864067984351716251126972592465867872110705380153194957716494850629815798946941714282042164165586659907286198493849175480269584619642294779314981223836415385570380897890076139010323497179696325471965649122745582635413234142436435745947492979278569607763591484728012121820571237229125443324556605340748495181446769058959806952003492300124986619376210850051236442547826435733821329660966973165353542562473080902881776113373972062983643050540861940622183850244985475668721260067633974373153257838354874824409780973933614873102023904533809474159776645603137681106298921409016612327003900505022947613518859124106470656031298014608889949278623547812337075637352432127180061053085517170340536033073763018711366935321769842826017611218600635848965341436067091419977924640972114274495469891463555482864340110401472230084740058971939425556775578440399365701263770092330401772015709714022618972549024996396256689084858977504157130429271592893380146276281780424512433461156729170872181169866958713126106655810971551555696334819844224937727899849001691334065013922558374525364458711315377496428451540053640421859769093297900720083629620246732239658837413175290586626269446735210442603791931521103560615613271779583324238941011378308624546295140958171894165381882609858136255070281472074410103228385697701212667932146472801159682437711016405882920381222982282550564885020009031599084096698014250159959742561022026318361725571114913921443611018533845568286070315766448605768250919462158506950828494085301806644991207142867598986688412790646539483571531979162968219164287626912567216947228774367226907463108534195440611336084871630083220781537154815435464583702594850361674707073027584996723132809601629361233574085051675867047032285987247398086473267940394913937913084973632414139029439284576638351984218676346643018086896069214338319604221009472098439766652282254436830422205470143256511942687039719929342480639118311471596792882765901606584811613722944199433263769016822243435592607990882034002343509905859139297715760494727077028309575842707091369770437135759020267227121355344973304305067410370544077345958430922769374840395638204885926470438636211199354225500002561144970850527050091628929604984739830597708931412041983770187000638580784426177361278758099551595038466620748481572501821235408254337982027525680745741779553025894681945776460653749932699328882053951518474085147443635682109242501710525863495345791590287152212995365959158076973734068649381356148346862593974252934937239229911260953527890147415209461916937523396079180058881837850668857882217408930223767078926490559017835733029049861047566240884046301744209164607927659240335005213697505366658033405013128071242798970006273729152590701666746437245667874325600195554242094453363343939195676804590871330983447962129663258116376546648089007112474028151564343463108144532733971543233454492686193074483735329034242902270632344509081553795123775716104927121798185353585099415538718219449427086114969262082228311054505260176469442149847969162493833508643899797943725725850349473321123642015645445958323210258673382120827201102361718132916281347693613362316300055518541699451237030874717693475306380949148828231811460148473591765019683057147047139716805417120760854152779061484081543527705471113866193551918255549673768753756559018915892076743526148852937632107873123875720648408237375303288464023488292875867457517411964259554732547129988784413376971744782895148060629750159810410965179248737254241586060709263434511221805151576805039523207983907038445590802489767512428111868311223535944953623328051564284509116382532846827690377989405609730496598216774794290605229064271154090759630490750045786694806442407914160424989736396223835534265688248924903094013532275982922676180213994468018996032067580342939794795005811235633986972790236701977628984073319861429708994553409037260576822344748869201029764887194618758629342131709327277769165187100249899666585508381133567896174811392400806920441462566538294522339155160459482487027752402656030802416084063358310499159313085394742690732347208841191820248470757329115072124544689852685531159985111793938108020977347381749339998889738565369940387595253362174823947154783480058946039366591889289962175210471630466038444412373450910382932483894560012983649341732042243216564275828626964629870549437086474634277118529382480439358216019860700621711965918325918075744936556603190574210330697537073223014044293913607299742314821862057127972408432297422253064784702228772898891720445413641683018620592669478106500157727303468399829551105996427519834420909942982394136155832653884068529837501961002674327960832267660898243739923045838193599445520364710959082518991662915931963986386099844252455919444237409807650556117505789614643591992556426759631196277837512874653796523866525681695700326964287850720184716605737922725209523210990761127024194913962807481696514943204319306489969675235237780133601715355794152722674404383547747834615417136108071971047308860237450312138900813256243172049768868022829255024334939599178274676959411554430985036164313163944257325967461417580663424492506040232202802946987375182931270655413778298861958481093502663645207509319615250820150239512810696188302083787791753142473780066613661071255613809568754909763022481825473369577744250136333465052729624195150307001629823433990910006155502494673712884321972353399452938067223419621701616343292479375744591466577156266828511079209801382360277908524908614061323820470296033614212396789169499234232171528883297993911294665253847268640531873197932267770276017871515711271319022168364169453290451952046150335534734469787141522447087707084561412083149801106667165207465553671878728737469049871627624680530857583522804191995607327665917569577300287920706287306356228290710931722541244102899656219439303393597931272982490188505998207530280581826873453626207698842883892896355177269977552708928071198383271264164981358505660929746681941433220376360160317023864540103804193375688745593512383982760565299379694631115736236765803515756436802079790980697358928950333631027509478478135700064703167653179843748938593199284467970505014658422277826960675919777431422848983462296380957522453292343592235130441203459096101274485891405058274767759110361971874811262596027245866765571472754939412055513362289169042638208357399520615723946451744498991297021106570959449855647567105391013640465590616591177906243645957393460718577711706111845170015454508099885004059315587509512061655456314620073873944332743915654082222655166711498136135073739954893391748086374196648093278171002639550259140477751934720526936117215529192894891128512312563105277097234938677089309885624797358932759808463423218516249853050362731645550860024480112879487089021875287345392941316146620881482680861416201591554912204198602598488609910010089355219860042743405731012142734029475943567269776285427772767597954067832154999870802605838132869028183862100061003376423791980019442370442063331998932146516974334576991282231826114090708986144154081991473747433681644982432526608166696697336196953321277769129772635798430150971081585627795241014031219725399500985483700699157263817493342319841708678485963309129366977383562887078408002392235782310361229231334313870871375607264795530687856767876140867978538841839750850468350928414471968343566924539145396972670386570317296241838979235453687070629105358409586252881729281692471046395913765433977510330386186905416278540679671885645231462534683464300203066362430077280418391505048399774639065235270047668220337015691585237701399054126383476484663841179107634163945096265761345248340913898753793488871084408225150247944719876888399200357379260736576854930155343026843848388931402721966820387276849040650786414983954838623991443271003548414285714663675814108685756849749642492058856984374594686574480184934228027958235637756438826823262418776221622607090451984593267734773501828543606939352416589601174507376114064068959882929944645381868606647472888991909822960178929780473579124796321869153687036559529444334995425160580908304927359408810125128045910650504766496267582224133933158027094209234354824137545730590871565675676701092095054671117837732104759766979436357024999172477640990996184223422593896684699154418877209465300703443718311572870573206739875957821407940736334236084963832333591790227712682630327694877532004680184757705394343007951196667752439615916630827808395905383229511272338207550744153078897776286771662518810911875351973300986377174786188154764116022239030319559678981537333332582983600451889734131385796009297774588061424010459150147820679739436362919935582276023675103478275564866271218825552853178253586010351082258145026112047470924017186025646900684617317679905734901100727287689261945275883358758221947384320834578633052807557454938289523900598456827291413464323488171485846067830594826014535968762159670812495532305763781564934456525782552293824962657511707494988668765441038270533740898921040368677365604542858451695031402232363375702641796577852081754489246557099240813236655786985264535388801118891932862519259222135566768155760927630615575930662647392608983278347680214605557131593915751341973623814379449788885811963343728292321966320335780126113077010857215989820280124527014194405510821109126282616707080627427106208073756237473911790188063039151918982517186661375757275971038981146281320941182432120115782881787555919083128416589810129599397245828288503470905302829222517897243132948789737432150734138953199236450940330089444177994978550611469561529485655311222946235263060515601499246416469416535817179065975346477474751894490338863769454910133847537957012434353283214492982757320649460057035879741372847308556850024140578069949444209656454542067040671269177034205589354592147513994658656379532449893948072963453595989773250352242536697552026259661902239113744647015156377494681734403794532885953949267776387559086479724780886800681723558531314356329754317660439253838540575689974298509517127782488540660920326559828127019571356428139254066130983872519138828743230385070066019921570688871565313698645866717928365735525658627188144014431714367937481059691370932121680624247162372966171539343995336805414569867938971784889101598603095412935298746169109192523809742944551488558318499498594795902426366425548655563314934689356150341488374884631294653005659807467697736019455981528630627612626766355773597675811384216123733145970872986047138417401248888918797133273636262511311334676537629299840890377895200008539399763584744281979857678072104896345990778015426697174567542617238402203277336476397551754916653384472733685352496691562976924834362650474619882335945593854238873901364177046945395798118752712159776844251179958071694546686174982003891413675742529519923536302864099584773808066759416971558083354262399667913719181197456509501421574144502465594282308668548345475504175328090492439697577338340692003659626982380632105842116831153608063960003029834869862501418951961597709853098934159069182644746212429836075434644624346418375891269938235380143849573643323589088034003650356294509895717318211938753606040337502573311825257046693447027575665724602024343580517617980430500157661220685910711916447836787755287555765149553864629003147784335242018223228186288983604995567100947130736251175046568288749334511080043705700857207322750831967368410921087264603086269870121760440904028069794911183964366052184314923073516315889044454805679783225559628577325030639073862370333133937948649073559546851796504296661825531052645982451735375632502837394355101805927205309010514290924335273127869001515130558740539553595264903028131275892668785026838027753980878419695424447075982652771476368013445122704646965861601405000598135542660045553041256453856489931603128055964697097277176477513623793186953564285143044563012761042826494036797480293301901344399860928405868810026888328778606907005752229163788459542951127123641629041724925928703351812177724572063474441407104579870116834865389408608793464288581405323722052203338827824916065507514284988950267304733868941466577151917067007154628493341305459532617825762474557786052890705568120939213636020794840019045348227175019919985035172181982915553739405244748816084011428682985421981541739946151944675665399110862570266172891572116167086128078644225968780654055240840769809262297989089743886487188124121528586210714417131468273941512454023152718464160210458750969483759431807362021929374001190274750271765673435942473670661803986776730560640185899053575123002306608370871168691475791336384086232538434926718606613904668433787965167900709509607700445453556313624051358161617384399700872078005727973747669733000195181571665144821563406218186569555695230599732096135279604360849164645440098534029608616745334380968998239436938249495509471695416706412839424517141260191624738270866976931180696097101557258147853194625746145350397626055465125435021452414343298249241381217713203403237186715206273592816337441031547104639631117708345350154482594576086659775717391457660958775366724984051724570082595821245485219616437893131098824817003842233206328850043254208492159442373470693012469333391888763956241425406832442961396568624031641284030587825646523428183365665189585503699094325953094250608082468414255314370373906651098967653980873587499377033458953019495195170217522645207320360275463941311371161162228990045708028475403614063814770890413618963981467936090582948205418580676537456845215201141451358474004249171418349791085267557869236460840510296405685471629114796051660512986011642189235847067744783697916343692203021988896384901524172648351087367313458395344215022462615533663361483478643233561380530074966762084287575307448476761221295204640268425615740219898496340903610921847604312888296926638081824774162432149180517457605165276714859567236058544814854402132907532311933789705421376692598941462443758062516153217997346963717964554733535492490014056074366310647417667998572569863025283994443463799305182425984125798358649590627890695365185495918160282523112964886245466247414987802348961990493472819666583071475772532015868355470778367282575623992435546393774544779733829602922395391013639248424579908952046563980451217891118683684611173674956595237321588319222476966429594969400736850502840377689062658085002467172958976399152885528712794692079212206720132052809396452263227086822123147580066031785861841069345045525790977739566180123341874179413622157860500783390345912525245404857543632770893637348137625065838802048457015329172877536585102843043037380946458279446317034769613448682880549387474207836072091819669560779780786595574070960443029786093090797207307496070108155868501594809753435305272934116171483174733966100517521700230147990108690345229770487759840572862989418102152969007455565972433483618503777150550860330111505317616416961877236613812722787109865173452038573787302166127222580623945634238951182710638999382819394680890891714268678748870323697423698254355888832460845820284023483626235883643493266480175590460342821517219563963495304300848416621782715144945954090117944885259504947265569119457920367936540376113867493761913528838976548861213181153030471606196867043644288434988225523312968750291635458654268660889460469293705964951284489740485678003585270403993562604898282215255571996993525794545261740743270859891130014290671400225943274690218982995179553442748718111642117429343466185812595775017541353411801559140012523994839390176617521611923006320392693503074408005564853217364811681583302031705897646782329202381824767644909239971574846690066268487079269797454361050266597917187256545818722599567184718953968963563982739116945400828677220839735648520196059606726455519342925230681863759467716574716398510375801026645131490589465320117025939029809267215532618811216870595841647293227196915373233155149878813034739889489625427170463108520020308934976074748096952314381448595233628759639315703476429000525190908752531657407924492946317614112816050060433236781492170244718104090002523572907450940087541909448501323427737790282037687775988388910224289465863071885783632584011400402958201515727775055220497671741806522968128144535963077468399197436150775560849014830488152662261688754968034628330406849672488458314489610898411164185347246790495429842336879295028505356227380869303629064349610638902734239816444371298967524622134998071790983253853751824514318229817014980471474405208206771734829307574244607177847252459461857489049305096509795390542253069212360701703837910857146983022577248525173845914560791055885370470662930526861151496257016777566050987152218931199319086080409589327271465200315991180436374064955449852221163110792402530841208587432750830257360467355905024287620096058217825407072535881942427482290612611565067099069000096462286669193502613356980448499030606977087917964203449470664734358313049859323970595890765212059389769761799954609902557501292529505175646332819377848179827289216268839791503902841548928484050101832934301693930859769188207609832728889211355169823445644473332530729623985792356457676844465574078818475328003206204091248503790790336969679985756985481175481183866884928262489337313463656209623643601760475628848255746879835231668920327581208311926727387077628308791944164060207462803182215764029456583397476087986917525550317049629196191712150721245277331363754728630499003750245934859600321151449928406621582574367422744755010639122242188903912068857149902812503322293010196259879383127482079514574663690869011102131053057387506102876258248047297829759703788665270217441124608373700727640915037133336149717400905160213542870186599060553712590929896988757268780006791586909108457407802739901018725834025027067523492790845564584723383879369483932121937056631027358110963094423462935733587439546101715097484176032594835362175167124900482878786934431786340777895613431476530447271015873083591865442275335060945004542709438295952345006179508154991222606770536954034708723167037735800385888201853606077407859203091001307366861533205143094832971286108366025245559269732660010329761411191743742767827897475103029546503081040604842126629274922587131958043783255838142797282061046716445453966782750663376119561547180811410663728904450860711216506603398923855553767532053879934685050349218586536215611625607737850783368139484509250569703460543116890143456562307724317804512844149902118799309048288989666196447742952614868975745732046817013139309051170561296813362465657670327529978842563672610468451395578761745542614079499278851594193234557306458553637676662779045651946875235905070702902642359376892174112583357143985547271796933471669904524573857657346363234020958011223544764441723301996887594841115885919388026520824126254157759239535571390099406192578857624383439670825359850867717452030647712597168716292719811087226407167316203119950574953533507855790580552280567687094003588621450841939451102129664180301025071900414351802625839184169633428710839244701121728427303277470134379841173301244691377597488172808378086328358480604109242208657677287522099632400804299449293049868849898458249983713858916691314115948053797704200159706893471118315733890104746479878081565219264411241753662668216817707694323814663364194867908638258471341439078678526625420255079875005983442086433532034033854071697004858954238194164632023644992186969351976251487589536447516344494064161989416711341044350148248437987463916000978580071488654135135723460466234792972728314241559208002510346789545427521942413257040263069769465401613548546879857144294868030391018441086389041448112375443712853308239937328366819623130295691856958566274113770338858536646227471931672503361104073315657007652071242407975699950151716821900645117887028746352292980881877100729033972992256642113056013757759771901399412363267280845389400319096154214993192613364112255536011836627327838526740198754781876353935733949284710295825287103809975654397325671294875582247836268074527390349037453906581151941957264558587882696188599474918395265496354475713650412286059311783277470431717021755542733811316446122057779146073657791463076230156987779427994708000666933390808663128520372580428713945527569344186438283216307542493576743406689842924817540762456348435859978947995073584089721127260109801859131872698582043602154493537342282099832151279967547715108672556888219897690679432319918500345646597546894209085865186885415650053017704347774479438672703930952508071748114388066769440408803370027622892294039495464568694673656276512157444272755618547272970923160771008330327612046440019501088255436661183840175064330798789601849572564092270264536383848782826443778467646788945218613735355436563776064766781708984505435511469123142741416483679764597496100751751595807391647993195111269366016485848293907331879739169087881956186743588313735155390613140986275515212954448771045808977219105827633989474849102783391699522543776814394074186682375671244233235148234658676499645194524763308705364406871414568326066397694548019309437100867957512398911906085980795618977028617046714020263900407552116967903967972007171335597714677918457136111494079667124629229993314776342165412277835748258627534990067921119780603078857495469732841964644872481549238845041687488440326562774709529606774811952785925148107028490709150186522875342941836314061123708587326294024339098198386808979186012746208189395020988748831959202092020419914311024328861840438672146984472180588274776118855314334547759499157081121547243048811098267530850187927122360672654247225549511677834995137607049303136759892216457674176156088948829950931142765681879504457390726038660155812138169555771358420435493478953642023389746495492766853536201317528657055058809440977166826187785035656932488370061916868813257698988921537701642941547703528005611948422472985187487774953546599864731283766810231684783864208035715066104376080275900992417626841020731910411686475234925060364563867772961804953661056181453874745364735629557600768283850026539033822042359255398293284193944942050008998872489180621128704903913002948556514749543445752448228715834065454230746784942749309634700151432631241612982110976577978086462089636434720880591553642322648312645150216051965026584720667061301204933869699220607212055074846983132504456790361979375114510561099405972270610245531643418423159313539053072773643156367264580132267637726686186334792960994124327001774495398230432040025449854464125821814920560149218878884850042818418295383774717036791912893763087010427207210527934076159095560569028788415435937041294487067737642712638215283791146308614599688138515495896934947775300910908956450628879874949987918977330055395549969672231130329962237357438567780028847289642133583266974725834606152803712627432217243252933925759249244741154505859760314253954019027327179534824534471181832675337725688313193570020831617831857934695550625098741480850738372620144835846400353369127055621195890629893555627791783990885764956240379714308839097111026422589746293176689672234040127892499944003014646792202038304216198807717346647351646810982056584456771849874997429162956952777441709563128459610269014542233395364432479089882752945116320992753074993793818983147567944412459596372625788487798245921701280055758027161475792168773028767724142783904590739127392942678843857719239680522994034053347073573334518367251554265826396199993098367307950372448686461149373049576129415707070662032891811072389155275383366638170804303305567072752616774194630606087015556574452308746558396124050301480579106145816309013148988618821079382747513047641248682780160190849678442189011101839255967801588844050853939768387360141912309606008688848409587590939798875457125098902772115401440192622172796546564989599214375691142902020411115792487312650807559597284727869968278916268278694911524767458519228110865267700981927943533791355350051468985793823713882735357271717893830142216485717141029006997282353232884846219281128940817079740244219054436930380174929970320843401108733211145368423599993209089515669085964915227766722963969422424234188318035210991164028064348473544379832000036280819097685584925611752392977416582041844810908951268364708462474117396127148810193294558673819432508612653588373685599202590781539608212879073060653335449059883474701016808696373177373258291394020149923292096927067831675968147669667520807748268071111678492935846198418626172110925322160685253881591855988062776872164381835160495538527936421090313103607816243891471254331653700492954357313119180428419650321615780904252013312485605320360859144817671705497669073927648951405521520609254132916570249181716644372036661368578767332511082859038192154476652862252463592191750130342843933195491229727926976395317486223207878920268445083520412496126094785976476405051344616457799579741920939413873112767240579405410462075597015741827181915656118320966587774081467691697748376641838608175254785968515246948077528179062939927065252312930894866450147904547107615155399799638954573549956164209646047474598537724051945204244695155110576014942214459850785628980052001501442172360303944283424448708887381117569548458688101588473050820293605143013701045069902681581989459515045374857234879807161323689988928620499341347784459648262388689344956413068869396801624022569609725905836903591447830464096918458265475815349450077651607581956641240074336117286666057806409790685068438390865501366034171566121774136535246662924038527316315842924751071820737619974257005266362873424852769709124146326043911646825719384474976527412791288332764753400458797875672197285080251587765490565589220471496205252104012016698764453817493876153962176209981866956434937752040786704550275749542082834382652727990664040463085556015793541580183887088771405230057777479101336075834637081603741403358166217105237795477803108287893113898944795861169392281377248209766223153741655518707243003784468387344461018587649662483023535529068562088936705012914503374712977082985920552405187831056216521322461228800347547325593257117509161765941664823949729133523705438862724084837055281700296298090586508047949546245822401357141584900673308445738818119674451429115214342793926996556225719864391960677530383746866722217035568908425034832947667841503678368198974756263607605617395949590453787288708801196541878924765307820255412342152755546537527848511642193002104006960154442855007174370354007033593565053986517857070065820998041957449512358764478124861041475565904500553778745425732766313738825020172648969616129101048127932637456731347387116638770998454206702700296011172263762727267452101811865591052586145338819701289911963847350290174000706806314623013080539754577602872474099097506917882619283197164721284958737918035495590854500617988132119821142982583753056350978991235940544860179024862607671948351844234905871907533729443395924091853528029572010383942096233427756208747723170117527568724101224530281538795845096348579839104519213186349569030391256411390596412540194362929494919213530717153448409684207106422822898118640267635071607969350470210023187810985613567910659306600789776255319789825006631515629833544391644492580570078010616280321022019570475798656581168093324230005606648967369487624261724101199075962069434685940406164109057115534545376809232712872353999074435919539839737211013349491656927142993028020314774560505446618457532305901707861564430381970179149567653940459435606066050701739389313213462585038107319503867448355601949182280516773057685026884325495890895608141995075256518935540226366100848161462038654464771071218795163069833620214074612432738560733007417290853413714676466208233265300757784578012755078726278301618250870084281877453320787977894296485859758192842049964829620427354073385310054699395412546194734721703995270227035779385851296836644067889837465656361354447806668384669765176614999618543989623502371767110274089091939958314514687236128713849724206908095044223678551028762868042518816358402616298518072115283322375809709057453569178401938160024396543257825045445196940348840924340857899982771915123030947380554030823155608186071615834339556172810637331106060152649641481568404319462356043630174317509207713049088685604727385517309538084750144865176049756773607833154472292534335963845630215217104987385925310203978958143336638415592992550894460278070179622745210555067119131632626527993669635989238300609698160016708813443002039117719163070163778003830037112641824146014987041714805662603384977517560384954919157914179295368495970628632971745221494526436400040116851275873879434866688375722889961342993866402364058944824529124282016580047816694184780636604784838176185651558401746037289782158565908314893065117791985723171647647241893043153199908815499713774207210118331968619684944051847134805103762448875818172772334427215708740008524939194933981030831999522885426263085181455141049674896425768172031457741976055401166514371933763721881865065248544503999376609226777707479399801422580866214987191247013874698956765809816342407951357037334868399460740014838188091091227850498742256394710285890361789248694551999049171162317092974081951721636250623714208252611907131791876380037382099894155167362903105494029053725379895773700088178658870490439209102611278111129355194227781921470074363737351900832947336873223965494763299282753183518126240071189203456588554680950302630425192198797773744326372609289111090052198687553722810530557641476148246398586371897727977619373087670426497044115114128900621261138853060373672295958161170213950300741417661128483328860167367167320358804701580247848646398079995767647079233106445662603373073615899226178752674260135360072952785114473129927914524506233402909639717592321979580111914669928396066090546200798237452122450360169104115632219532972695445551518284094539550786740409371853236603877962805143126766274036439823983188176059785281346639469560555811845893980705011357516820680694894385529135088285447348281517609715423859522132730861322041292330776565586927909570047843039556819940159642233595945502281056543779954708624485590800370695015608019307214648972673163938925538159958617022059139730270900638588414953461627642604428373891251918478198500254982630358510063410344376334073346990312703558308011243548158661164679904704099547923812878971867801098152049788060504766682036629672509369396073136693374720367243003189666204997506525201754713578657346438364676379268501958461510696765363902447489954321997231906116932962287789461226566830643518956163899574507722109451279918853244493764877890405442242334709795872652176937776370796040732789702455829538696164126324657549210448122380893363807649499671963486155406090914159497678087746191227708286844605325727180192324631999466767892603035979578118279000471394092171939987407600099970695816344792336051061664600778755939545785813561911797348472427564395444690018537030388994721998308058834058367204730105933716458537773337382618819978607406745090629225548899083443584470718683462839079294708011696863948511850811643813460281234771266500937086434980810611925116998390691124112788492250107404670010024987554980352405636737156440483483522461021967504033422680901960919183676975391844888981030769313603684649075185192089980796748495206425281503988219929450163122444192907905821755002124641564387801147363534860323181769769925688623422436511614137835848603457291845645973101458014423391034366190912117514143224004338147146495702803681747815733992552787675813633597536055933814714649570280368174781573399255278767581363359753605593381471464957028036817478157339925527876758136335975360559539384017686767430474620112279164213879016271782936332025735406498294315950055471411440663728022590649907729721531848353962105920750948187022309948254672970184837824611212322639194350073177762006695405996037403765441062871924178666242088214648278279438113619744675884359564005433840353292127859574881400073749708325048327857556278773866528397788884309372421959455553543681653293719886363436817907518019612735093458041094465517258849680261210153466972738116149856071359331842125178208697644136628031319592662998008004999380179915344918391418600149176520095550574294390306323540512913272285289533183861280090024201859206830124557688515998603667088214403617994975769301015816840489636950570719416181922986998546181106643162421543438857448343388807199476674230925541425220464613263330219254123326554225179003962370011877224880121899739867454023278310111558138887625327523466564979284560911758393972476956922958164791705775346063017007527431401713140934708262075805563651383657797778566866723143389971585405128381753951728867267924335193242794464042748455722042713703833842824335856314255103756910181474583564146789534508685629018486760916770619988006592305344363957172825088842599663928971247757401309355439247332407918204555381766372353322209351254013248159029890264297425927878945475006549946921212466620662608214349320020805522405722398438304493632828192284548893289587402257932082077749921263608591189029646609838958881002923882049246229713322929703775199313610098035267052448685322637447804638432564630100081448629121994571564479009944608429368284796527446127653332448811033242025174738622234490697236755378803399596664030721437536023310369657332315237722987442690566896177962823218987189096251000966738160799485616991125616466451101755971637994994874517358658677084047168447477084990976997944707107221646280139462754592336253361858445760238686903734040234299795866218897141588045753756507850426102120697436970969214409411346899426308743785693181269940438714594895998350024823390435296021410434798710306835342977082983320775180715284808828337014599515736692340895220746753110902000408776677345208304107255415939005257603460912081402841774203771307008424371586729360593480664925608906006214007352462203466943404377629737141729565773844359400547535778336478717385883199572538063980996026454053272056287315112297815716086295737468456654236008290043057653315412716898974622851338510767066427511106126351131616092424346656970070932995217809475711291051481146984681636209949121191573759093465466617608592524996429649049953008495876078196360047102673940074073208436244200346144947032423951767853242453480993775280280525924048657628467141218672997407703083930742617401450032210497262071517016718491281343898195596976652192019081370003672782082548084440770548894977352900740939641152159281309852432760682475952253308028248314091145503496480558833631436378808692685098402275435610953038777070121200028980325179010492325077885025908326341435485168772200998294771996023052438855804487383316035861722692030067101878742606941786040706999025075004932336269299321409465809964653142858940295050759938374246713892699043308896968931712215225093296152832231404015224720069622519312187694832867420029173664435680663582105332804176726151562302124288855432501934774716280438341939284793348612220573524012877500894115331923097650828181118963550249584671068452926448455574277121347428588612865531692904976784566259641824726692778344002660727947414440837066457585123767092000483121940348372920856002290277977308648541474618588111570240287314904233747102205122542105996607035383950648233459260971244250184778080977172673924731940165503960786701230473957653328065850834841252600889465846731191572917457422417794933549798919007820621308610803865516223758124648355406507243292929115450926671318592967693090324380500504705798029574716346546186859666334816473756375825302952862923734367894946601088352913613146663832807119837174914550006429820817274506175115331643178506860559958041447050514513443466135434913237773369000477575850404699354952865082123106885520961899712439343411168098795396248170852933855760900270227949741241797404757178358915130101948311420886832494331481780233765095332429955285944368343551972731851780494655835099194309370225681931802468448831867708730934727803805915525023120406422360947098853016075837054367783741464411605342176004593264890125101094368883949375010807823551784950908235899540726474620437428881050839645588426654869276504840328312182091922525491147266406362203079345506603988385724860051085280789875092295415205368592926198779168922159220522055198532014792614710859188431868657411596378993112160998976110979633565444902734359098328947867883974966109031057965678988481463377937809720633905840102515148001880401230886131297554207215369649270580145527502161467808691366074981225162163435485100633443491035342053393469452497476955086265693627621261091572689185127730376383979571593669306794929864838663384454486312760855100518189458110414647084540153629145822745729015341057988169354055283186736038250883523047392021460703493319106727265127717991413837226705030042889515491348029236323928824220795773086577354430078714994079606303257695899262392059660138555418034196698932436702851049428362179024244477738192565459972644214164588018332426573856187867895985236347842353680905992711999559785401448359660621563295163890730042756825400192358883203001911349752328613006510978769294553113966895558347643708070331569246477056683170873581839480453887530751714783371195076879764077288464866497918231845023153810551758734071896253879853762143717243682071046881420524923936550870448913554165562666671315419217636666644546134197065884404803958628401161360336854813455050935903141657252576055258698787030511931907553636345440251545233958233658716038160852821850071410354993608466278407506123683876446214589192177914259300649731241854636559956751295850203082278410326137151135198390612415964633398239008789738799337167288720356789486961278469180298840007702404614168435709646116237948458002436915344623192970276370458105466861864892006481857884470461376294282061421070348036308441116780061481502391369013966575803093965904415912512096952973581273097903258329274793996928243831492062590293309286010332391740383834274571135139845774783202448838602196807671633165349867303474540139992159822111671115125442585376091673432769990400584497434759055642063076946934728356506499107776795892650798323481084018224489117074966510406187591847485769721036743268151484201956972207473448220879286996083629358763165389047839004874274793515152841972707861432196582841706939049681577256828050122020751092363465517693151572323810501802258551751824782234136431788165206850661394226265344697289359780575579260783216673889806612519238800016953432522620052889956108613287995075957355474955247424308328701918030564770827367014344539375937631550175093518515879850506946390523195829252309751407405254595631400743663136531859885757737887841902614118689544565042160337064786252627247085434175977950069264902695112027502630954367405801647213159267945379436949752610184466085800078312719131602123509138297042587023364160464484612847091863431519865365466090267618224747180122535599681323522386679559736925806895975303712648024482045813701820343286908637165983377571085833010368743465774110621814317655633962100638583167467480918871707737653558986622029499873827444255479241163465467940603650247460245618952590934996673595122712732052401111139185230270676142772309222947288101331929633399781855031829344326322064698010129517045570430063250156250431508365762832674123002049506397173678418891005142525305249688625673873847779662866216497362402883693096173543733731366775835835701794471457470812490698022977681568825722570894989089912066055402520608013224504825120813756743766198679642641298605943112830005408881881233133472974731212674444311867594320910668184178102655733532621387737473755345782790415115931321851828588777441772296620469138660209349694256053645066213331732596198768258859429879426709380114105415399391896083636192487418791693064635784480721565839931203794011832448020155671414285986372785984697074047554361823481587960114136623524548067203456147569397801228956585216225616967129836900853900438345103629959118876555485850103824200072825738319153990752707127241272013958199553566373551289090697625107030489202794525915565004855304667824943741234171084511127271602210941931455401579997525759706235711965092077965351455828496946412471272627520263856889880768351634588214744382212186296466126270826742263505719504739238635075412116648302620097127671004898267161324519103527836207012854444670111305232522693015087030633845197418927063406924545880913768037295753346806779350468647874587707376219253052874813619851138575784542929107665429283407134350225088281889291524452778398747219008131438072043020724546793175877846662665684652886150768840312232121873329607244268494339139482344004879473181001567234526177025767088679077948843575976135181772233032469991166575966356154888040497320129756009526598823496022332949604235511787278552924080285877667806337022880002218103354707338193738262267571929259335637095406157277805724414831116404280200117378104537735697122670282206349312690545498167184995028115689010796880290011256589179055592345472292137852872328218121250345182059548096772277660713101778603438829573318206423587236993410098106172349638246868300913325653449234684068069390174735320150444061138347551904288775406077581916178115413003992574037864435913019078461131559812287433383309853783972802072728689232029894397339481981775713924749169464666678961234291093703387932512337739713880254983507066465501643565968531458265075610705724702998374090486017243764198142270431480373845293687436005363912672650761568078131420041224119594940392977016342812407872080852166630645923056703207098161722529026960230630812926022797817743571613810291929806225097290234214027211916938032713298320083728506679616281592358286686576099904415991587203941836822473090366949690717745701217771446726835111945799235764378946935653542086062973010467307198227660774393023094688615482810951520215970525502361564783557941968817555609138577852192225964776994102305700383667476235506978823189655698241465028678631892113122406061809386048832645173084016950142082157326064292228869111525025499360218005104193260969073847488323914024155853326011528507043066093224442482524144174607444884453418552824140376224643011608492948664582998552054267151740545442020628070343329410693372726429706689108153584840149094569382462168479929707068737877406289283254513422604088371872199038355526747220941231267659633815572502448461126959274697523814493216404446898951622400692837095862738068883362916372400418759586455204637462756958305079845381534715230664110072569236293492763936710913135127040305457696996684553584714559181928377124625835214124458120274966078477181056994570433605081685095894537463079518395003471725194844359949485446852681297359019069065359890335695603100644796826312045731910115444965551122684173251522773863030813597582172290597661376276417661634769091250701619995537596432115575343966216882710840367511929996000886246321999875418094360053087413396269299820762966801548809052355871868076169855606043417539252404967999646517600026926916551698752652506773950851304080538844506092601096436881089420268561590738998509908250154946391822097006484553663668996858922863821597110767179767897501154280872303912887886996186789307198286754991974326270934100026851032592963268818524148957912443276487218014529821857497714292943666893783643822296585911141794051849420735706452832598845912259394927444557146677651511456929031395253758046337585796415811636218722766151898241220535132242248825616774245967654125403317844988384111376073500772008569727762648736527833891636142496421063088349308903320848779428644049722268286185994668934379485133485590582820696461239464975741223628313977338190874558033167517272238664736033632294221653127763584773063153429737277492314973942733916813987517165017810326131745506377657709788695976757422149371635288456874197560695360039337332020651649369708149229583433116310372740909866257470505147022723096296228767689369377387123902046516729559253963757042296827013721597849618036234804337906397035855824221088235298723949688535770504518289509919376347473203519382811144209254673933678229258496532200800152631802914086468882484513127730626798081559547648285041727113926403155385040583548821872063249822568308378114474967278883332002871767003436969011263337714068149248560992223709551854738445717905417687392791717851659319868288756418186776876841019149180793996112890707515885455246994765082176756772116466364276819985224100965213050465083407275744849661976161460840590607410221444976223667994484837777546120077234904834680479955363749200222871127185135606616822912323921800558278141858159904406240526254636771092443831733984763285147065350007978318491582401175956590053502706403840870712334125490430058925526833691094710188568063097486389407660730095765914621565050197607344889921706745959901008710843618344332778765368258772308223344345432927526450350827510368852787696779247529054351634847177830600434230680251041692709840429423261549283137612187925615980554961799348822340432228376565318861257502640780451529541971941954779774061554624267671433647051086815540321664452516231071226012308937104755068250860324046390867144369077324413439849284146788284714793329962152726567683401040035380272025275418435225372283448970658115608571059933666774519856604722008416019086000078805952681826691313841734181990559010582359290201354051461037292598408924440579962926120982981963175121453533210390556518543575501550633023039398321742416388765814182837549573824813579535376415648600199102097635339207548493483886928161124090428605168897241562593757958318989500729245960467988554419093112332985271844623356777359933348040747037205328034706976370027157282023073057696141487196642042557275049195036632300465139541814072510893070944397831211073327668759280377650717251360875571937648563674485588882578876613391844930211918822927090195001468423436369927531995461156713868570450744143216339040780299923490581446565204496233515435720105541820604402629891318181183565214801386554846503939174422768998320959947345326148515338090881844067372693578429319408508180054111250120345744530333139738044694885277098998056960005191411414227947762969039224152446159813681255751398494030158908912839039690682371596762282654375590561603002045727456152794596519182500713348715654510175277234485087001667162208813471455957733125187680564852910540739280222112003286278105640243980038070190569773965297877909880031620066898403721551962433429799281009560861602014910881911509793792900369449912062176537748237195532458063615013009808650442425293478356985149428846338401965086282619268181813314535227102216178688563979618042557270940196904195278221897237115760460016399090888725718251046884283461891318120296964133489317600548046104950927989751763111474022642196757645198488724532400325330251824830774912325256688475616954239348897784619157579442277085582057854100616348798261398555091924933763441969386470241543432823282768456841426994383723540254093937307380463434382820719655314032671584701694148331391499674109081253099843163120731085050169063293191018211053955855670398241962916952076571999272307176373081364238940148232626547055090384196166395745836874762673525255811990719183623735843687183430590922179954499692223300342870822693305654467683677675587796083757183281068255595685431680457476896844792012444397487470057375724574087492178275642473325859338271836011855063727116823814246245890459076029692142808180577856018865526909992792215471270895924017947650784451441464551717272454847694160766247832606573541389446198858375674984767805369839295763266022647239920413652162373636146664032315518541515481118581084433985515043673480709801630625247510197150466954597491414101130866168163686042103388074565199493245861160487111648627998380248125394189901363772731113383426677853259232453334485375966471620833853741226355530893744390195154157567994245323803340830721684199478996812426888461659706083339733717714436498679876718797251261506319728855406319151261038649620313740051544134572104490446705194515692273936673249768573916031054311481689222515925766878095346204881819135120128416258147210278096597999194416034438418232623144808167321891237994659746944737199473447546144729069858854201016252306419680597237228423373245114065402837552630397078426980459732101949345700252505595946981454221070283690676511133800827197043045192478092511785627291035262791697425806840262730758419021462844091789844256162986739091005370029788550698582319092885544099345771750787849254791713785432263146556661535870211691604317209842652323139660654889308538301968340192413686714206972763367197581477872361433017261255520558300247566655717115576955972073111366164764921241000743253672111718190269864734965813010136711373222930768214698233095862601755272167258424775944321583448325166771795381374496444065673813832664575174490574800465056840211185898270646002549842229320727498220697476980622608266011096184855693521180662292994038015726101038428296088987460656304679850229299020929193246177160616038480142250886912373424858644173126718474663451214908085532127581189474825178594017584472291425938199664790339087510366666154164686547007202202254597534809842350136484857494788554745921337509637678216542791413547467006281276744222299118827998135726907378546909110155681042971730577884247638537402679741523709462463943460512163924514821050797603268598660940087323415642353566766637531227634801010770454890510324057956596674130831157927974809669543472607247410692015339209093345827774473396165009357524711241707506350320886771741219349514666763871263737284611604087706301583760011153364921219020331806850032466637922173797926804663637619558362047195745588172551120008041991146136339555201130039423915975356674113670223255190193417645573146948220222522954833329774556051373077425177097744465980760759454660659310312734871555326438908338370277382207431456894458643717541210660493377454249047001490395946574594377123789728005842939621055267503956632149237672981406635006120236079359507250026118822988170244093230606654009722982433537652437799415918514933904172250146997425335378050436214109357723549008818690739026951401669721483626167233238511176389727375572281168991998039957293746032217281928453409332584411696304062383003542688742902118242985645124579520734798462734619510455242561373629943301498393729111087052996951918353365053484424284804631047652208342085936517309658449613028583365481954359818675622029416138432116325768598256296720182890678112418686878459731338714041872970071191986770129310629309694989935481392187592880483984513874075864302765615714733518354407350625531234366496005310914881303238446265204351362902626593330681205115888510435856994564993886957070611192357275711029419692899418765543688425692806386143513031063844433431339619697973356152324266641706639024036236559357494425103835682493854306636956562838134975783190902427704990944514111124123020604342232889259749143823157590798442351778454112872425949353333098571097875538683981754825212175181030821817650515556345242994845390457756267446578551759148916225117807053288117045974059759864583008005610322332538430075098113431012045083319042286546858779944012296561656389081595922394034392226001019722176573621711635990257575290003386602274925942193559612947551851369939324969278663506523882676894116763890898231461909596833861231185867149575727057568639974542711303659181838471780818084175201006556621304763267524946682059974639368806499907641342580893082040902363238351783063221761720643363201104034409940915840514687832626047756804071261548426034683388026809404479308919373423903638644025492448115739076316802664679967901755671870641363324028870508745716587139591642925361440259784029087134377444175895665581130737629688934752717371131377900031008272938712248798691412428008450272512254635272199201876242350802784479678433702368073614399285904811111254193110135095931272766112488895468919453556362187932997488458678348144862698047039900916289528836891137461673156170241004515775700160377837033957253926135405325011465741922480121824316985303536394598857504113262224005410970519491629257437928191687620492675684777486034513839694679909435305586150042794448311206309059344324700093753671005604492655603472747780790783639504518762448392697987313535284348463888133230439792774802201529619235548600047342730950786780625307673643332282419613242705655779452266065695016189262562694823800569503364915047116242857968968290896905836375827828389289552036322393096042046228781063765811178274276253234050556458534328739368288105558230201554434025666056119916083312452763767493832195233495631786258422134166574826288774471793387032908362503995945159111325505050600405519331067854022140139289307747103178334105594829183713076924569795220641402279584670586885775784687252894700750851850045306875707839746663845073601953573707378535670036258558206673724333862383506635732352725502987473715710495782761939356350167592836742308538385735127612882617320094878087312978109940137208753218796217675072343104204098300543075454308934756099996705300626008939587539803004781681712719509393419106833179242945159543851121090917226732183211816227957059544782253612682950954862217231236316650725721863453174107239765038264726120658627233900281950908857409600576878745913537314615158976810289446734608601099736780315612915571892379694137835123162740751694569490868054417875979200365546926344461817737322716700344426677604609492481205879706465849735288079241531563932434412578917793572590178637582569380634250443054588279581374107560228758444781096542765176706222370697241979180215229145483395625622846078386629266810605263766773584382487337825864288501212332924720709607596068275605802893569806800904247794144805224614080192982744535914261300673153997422039808044537501195397261944848449519911402819066003262802697095448716577923187991552650311232355363968668453024301596197349226235227432305360422337560641777731623856071805040559182350894142161260438937320034975326339693176839639740834087614896605346765002018018095017901524757381590514466840423320462519585964796028953155907754720418751680422104882739795248273749674258822122908418426732735405062974739562518609784580701322766115173325159280125006610307845655227933906611955467698467069311445434165385872999911772553407583626730720598192318641581968334407756173587601158541062885902514859706630256627278188193432044354405942641747287444638497088753892436548269542567705195500503048573967192593691831322499523829039519078750074774192883412833931514360545655499274003400051475286011764913688197540583518130106428191854277239798889115565442061329521483403974655953746931767971260593262273578893694395281403715549812562291836028970988448351999590927247614292738476113427394270764659658609967512305032437609252837453544759855871927974513545604092844631238388919297638722450948694664331645858611708788407259566344648877283898144806975933463489209208474793366411476916948304375959983029844851046697116761180315756704307486831913501510866268148110806626764448818763734119104630148643395133316943864867191253051197712222605129272066288828365146022194470819695463197824818062306429591934380319107075672891130341666939068376651437334009829176917783350235113772378070080134493751248050500732197381238516250632081049666953651739286885813977490771907824529794195616886972231675210450667137919208653893674998631486641017004445762995894532195598663958091794185105600868613728352055446420332754284596042843329042543986132359098896161049110403705381295507746816387557681316299190250815702719076490775784360216977227904172832152483111546737798675348633009709840718852917729363837896867045449380220171574243059909227766330242974417045007458994475150076574278290259389637763493531594783200225424326725184230050688202082549721292140563372558158112710474157018538931782939878771279827488656715046322466438555534848878687664135561276104858242058918651972343533639572360994808168173974031190309304510004396180691234477085551492472966785089521986109016552489835770049619203738616558373631326523459824531995105916058379000397996951777069795246952298367607431499008548564143327220034989033840428531242112340210049816242918589242224349575360808260306762401546957880647296192668452751116009590537854831636712454848677882017252054639855865003582350020215085164236635007877607151985614525626495159105550747727853798154063271681951117541022889298378222545336756651902512168230169181983942598999759411769587521509279463766196336087192509444685902213621857104072204996638635871299053055527028410467726202127446674545215457723708236444533570645225149756787051719480050080256782460781818548758389225888164176204903611290431281674832076693485228577606793484645865766909520661008787906430168167533916211520568108446789415912337414636821138833757732614027462466645150989210440638180830560804013701008907417193766295844421691227908932831982677233321279200768091661026838723843245442068679756039482673658206734515504267630881815855803931916173275442955764365162015166446685575937259409711518783692173299938415788276602267092529147461823418663672193112269842360868545204188312801997803348787565882710587023709613027479913234822581376961217046227422496101673375478801063408551486622869956915271626335017898033982736448774282315381482900134325678883228760716511011595871871450105783476297528874339274581827686000452775717724788020989656438529423881738799918747129758741165413323915565108908775257686286616807192109034326503014635427492044749312465201473231975770361204501174793986282152535497202671790895051950859097956215389121805648789967857306884996390327781322940152073050520209607654688325251752641013550651450298021343533658755591616836749428944121480486599822561119879720866930212849950166479523817064956427351552584684628920014188138574351067080680393400649398027820408450155974311129777968023582204399718918274081952024523016175994797082805860032889288674106247132869094694668439042012057741066994621572385110915692375927855868449397736068800192293491471758016316525474727285404111782500315404941649532114745075496654802310185518447420493368214986786738789249575147069024662390473966302006615781093579204636277135039469784343591741426437780311902195475226920895479688782548564570713556669850232754612398823027868901317573219171678493016365013895529131590117422489607374946020294851279855924507737935690813338697470374157396558258857374134903582781434074625542355164396890460779583866499664944507475657969935149351359732001330337208116628916765098694807294403299176129072301114046589113824272726329685176094284187939802605239565406645933007896574157669708671920929452539315527437352828004823457509144853354240491820583021173669376049738422721591348355204042576169928064285471401936855614110276582808570403423258758656946500920230849830826784327277486927795504066111004359764768678653849550272255885422498613657363173961480998936084740971764954715433406237073265869752764592133742971412420705112256449499079144192444832839379138042063623800297002820623931807561922648539739493308325197087313845811985701710024913652522719868408318404784693642902511129275176699398862034387891751726757221744214538576110028348743219052433329399280948839061529406411018793753941134303171916852635531673529853639867761635066119682247234864034096810385850460672960147613107402400742653402436803792106844615341970808088122076807110643890588634215785282582287743675470140831003113842985349352824935850403623459239266883114480775467105910694065472373465877894192487323643702402024017517597046829540255079677309844431798635413464595390227657432035188431115597546352330452355055292850636311524081176784645471413279813406592746732083545282276634305953054734309381750377872317646489096491044255879694041170527766297023256952463671775845878822028460530530546618172209655098183967544401193567027827210833556064466575228098058628703330757873821082112921021038961652312284879203280376653872019582051856182501442409628366098463322528411015741736148823414602873774984914984590462988903284925608395739914059102412068455762480345904723595368839274619006353006025286844345466005785745687250028879740781269950143596964947641493185049625552169444528557452948072324330277365557456104296608835697425307361113031082380003158538736286884921091749180339054828505462786410001316947199894889420953086446502679610071504843926206331171186086120818715732734551370014186768692196704885901036242331516776017271742233050495306158524791962889675944421346235651931221942844071430978955055985886244201736282607350511638463571118784683471588349062334258834361427479382954834126341741688260288873554781665323832154076835909681205488454817189269206203670965360564089875928450815742747862194136716994322945869330495353722967997800487191020347824739491797171976726253884952817305136008922705243085564874504121603355151493103964186380892659519034350197950366229937107061098032834728693454151359671815062976637443099493236957049534959141935272715141873765869451223636710793801152421662449411980044655721259753580463999102393279770838718475347998543603066177468548167430253509114142253635633838835435446860011086384802147927631584793510710622722123289000304008555103460768066519552168656718918133485068069377003906870137625405524668497671014459934961842246898041701860235101964990133778650832343686944378216392021885085996581311126588948291773489736110174739245996397882377084643593256464055446635456450627816507891000060357895847141178811400147045565792468479338985904435609519395598304841190708596839082696964630103312919540548356633470754825597162240957245607899522751374317292043294421457175702111966492732950458924351154224989284182930968016279099901439100065160664654765723303846462439511383067770124161991030939928940398116061674207603382917593065660440087162242294864120927680054840263546046021286431296861760486768545873324590490445815446897600129176759371782877815746344749744317472245714178249593326589599012326316543180978557825775355049571779819902461257772849446353525217033433931343645138304258981514773623679199418168832859918715721722876519947031424824878759641163100819127666028856647310961164666767118936763472129096300869239623420708862933863125561287340653467909741993828816638506027873280048505449182019933787113082949339025444084544528311079067175578158009386753600386035576806398106423575109973318402806850770996662013993830215705749043949115438309056158300113014109913958329032586958376761970744891911326312164098184347256008766211159695133389046258905040210397168875297634115653016376140172417412754156775733851563340968924430140617974975371744256647349345457924696799301102619433763644866753756108769161304361374833047944122595261241514898169980768101848189578003832576338780435311856971995174084040429215732071789387708959315570227427282658161497408013320634338400868902388939183331420045159614008986112156292436416947254313561701811792005595928543918333436945191945143171541350074200639050607167658190582421620289769684409055245447001281886858143549545420556689838786244832075212174109487364741091578604099102585558639401309155175600279765865384075682363973583472336482553352052477229608819305408210532813113048809262550440623955759039194431714152652754080895298657263071634073224395037998714881512624460631281385241074143597940857665785251694389927465562180588692066232504493702921288512745927021376748342927777412718922155406268330082860090179218753829486291501624540724777886699889007098050569250698581837390135076394365418723293031183658168633364477932900707857451061139914809110997127929438493913670158424189691093862380272576452166781402236132290468097724877826864188122877993432976707163870569511990189632309245899990217975713134517425936032513690208839586085467504777322929062846481720319507281491180095950512581344757157055467848443623776914819179984052906677154792911742669334885856708813947344848621438111159547544985280405742250695146472008424624472299321579226467217881452064820830276936119217385236785674096279108523422956090632666710480288192263713909073768444809318444989699293106036870095308727241026213678870697269856973400228036350475523688004955869735903902069193128307071061791355676742158772575982219129431864574547720513289458782737577521030711942554517528858363344593580055240089312099188257065548663923144808623744145953055900306580952924404261767525420677103355368495524654643577010178979641631303867495239610828903257724489918622996519842327827499595893408310312932676610272410807379546281880763426986176170331009346800830651834771328705425499623260325011619282730212993493413979963426151264850634734832759136317868247289444932146606184796505730406718748284151914741684169089722956160670072819776610831141061869274357335535646272541437940981346383228624336413347897889091264153187304060531724773810353708266941065444062266129376623363259061383819763194013039898558209482095391860248199098966486271356649875701497953400676447858682049107627096977570549150879619769194413901594125683267942639579018278254556896996803223178158977822565761387167701321480211552727673111734165311892203845147369902316477647593880601607553748338232854582595062910239360016544735394298287668207371219275299907369744081134237202013142340450525931697277559058565700313202246547908665758345126654568263055461931475471873912792397211846921778376200632624668145632249687765602801045500696828152865754259823483400926471012832843064302569765264469413502706214583191104917931941434930177034870263334601687102918360837412532758776315402230395628877684472328030214298729494647493950314649180413351420239388152487593737159283832660035406428953541698506199223530382921861048691825526902557498893197784720619919805017972262247637181445979641371384620798209083958821187048015563185208134305168523741584217478145801156305831176787708977094256915360787809113628435482402282839456580419522013031197722796595983884093635835590118574270448266505634384216253604983408543890402854304926899306613530295624400202826734367287192620794029735061796925410129175376266082539682218062164181246217311896733474309422088767060630546716996314182155902924351378436435063226209312068014316916384978101227107150216792472056263468706739088756753944244827083825087882653565581974416635778492417631881483621644122223236354993894299078409216509961123532512011031423383550654938890927596110536939808302386103713047566762605558309278494357851978563905347432674505604909407708591886510655453008198264452528174087746547899161511634875393067419302334275836504964156863538834492970269883021283850750117307225319474121886030606608665654771424490261810915095583074276082948581103520110703303058709257951235338922157247424785671676788358973767617721175130586934335536764903674373881704440543698738593926649447153503815259632505530020490676462445852260521393121962997057825503270457798044858956070209902153446695370684284521782144523866710469408107506167317478569718979427878871605283450429022122439834339069476764641314581807048184216581860366937640989433649381426799919717981523351084157064761650276045386329995224430338938448698694879649254150996947664654689769216486142392356827531850965408813353323603150184543091811589795300960882380182295483646650730834615875373909467531125542610804096592752714562722552735012176578243220128221736845401883409112563696058674173544188303029104229540931213916325166527162812140200393485246292677025335567801321211000746875104927292150677332824634054330514641101694580152392810648716511937484962847145205922860221643092270732911314850551462608765491036968970857811251399477489383288426598056121218316115303041915518697722069640705170655830745429556802055860647919856113720832021397337158971801009341952992408631804186229969441590014844534898620679645053077361183991361144007305930420574967863953731729127783584821562914800308429891763640342582197758590998861542291506488185489391946492442442707346065366282411043806874634642445248921727008002698896840097704990687906189943490599879123299393168654297787340536374108604116821223280321443018450796681914202371152463948220177093142729884554336272986473983606761973552064654414860620658273116315057177242088765562487222682926660203714851121462441496499951520297356963468957934911848613873235673727236286722956930702227282618936242091446834342646800266077199502216509365191242991298909496734886916099755708415385632669799928723106696812003873504357001390292512455612525900332219730742628557709051926829142078160159206846851894960268032416450232179784549350036868531120074399878675353188044734785139543177396060055361114406353642161812602126386573094690593255906397219492038056287678828743091909615406869152123189362789249870124538829074308381607486273896787745378236370946788911603417540455089169754059227394049266623912040646855819111208987613022144456972568625452950130411217199809106691154157468748584959986619908398378171263310681533641332040836168589505925150168276847524016347344155357829189499213859109112248318187172194868838657130404829477742444060109969015638352378276129095967481510722582918132998287427054987359677484220856206752067159942180911885102146438815360796234541509213403430061299786868257960293849765918712706805152707141861960573903188851282433872683766410207671757126610927458223352290512994852828161359254699066916018502759401681624498230386088013824249883069963917623093961348545994517800671078225519324205087390126795497844015698988750791231652774721289479153173128457969061288370019751895109166908506798567605165873074799841445684924921279790288124241008840884778373159193613204548263035674749277565413855998730321590540762951436378852229866981851496708348605274465264498176375321102923062590368635856799489149248808960412651107338909663443593384412495832698268242760102098965945460477365239871180175186513673393394494426767754232119108230942372896868022034743959324862376943741086660282017476556319495108722588920221524980324583927172427958667737838065801661372929777118446650250115258124073070963018040694074965568499308726304218300157041201379224567873194025821310945461093699749222618583746519732322036812782167978548254038535799586852096711956323580355674470587232686279282060364871793666055944117539018089837790280843442247968708856595271612788363404327608000580450948161376241757342033947798630322367382842571940605835474378389044641540657909999318560812430846353396799172288126378879916003383378858845547198231679388933628377732064114661702595420850885180512900843163071504331075395455419907964650902316442883447406871971893546673564945681235430496129888453760929770893199421463048220766023539824321576162548761284254121061611331336488224541324489754535662653491424082249134020661750072112694306124966341332187855468029459124917217464103818671362151457164950732198489695727687268836431105360442715715428913668157127442833213339763343000508127395671874826350462103931432431997549195809096136562570024320166580709518873058991978706793682952440485342023865275884507762927871463422193015005638045725131759401228561135543685420108182371586901339410613178329297920410991327454105471307174533004723383956546187163445703401855604718138157808981594703684942578682192636363447742822186059642474579472170150025817333302273204738657321534694893877232700555694600647506204148733161156862285269074168809349901746912760692719893850556484002433703265597529368602387426960159164509565088854902089848498876250095069667635938123169779034511780554066734922879806476973399138920735680864052470563221867382478507164461143098095494880924737318007196605892696476743801970268224103288656111365849274866963126807376841336743444843549156947581728533594401006332275230578399387530325507216780079595410679816105128701235325189048159356172170323986252992391411785715560131667449541431362322513430909381171389724401951230821032789265836285024029590494049294153277686423597978387245805939513905679556048902242960073431779282618475193395556459371504687561997579743169015357214406687580868655452485004827357130853173124413579232099358194008478035530266617899903400164500470949101383340177229462992656423345478810460564771403017078618144781116162479625532392440680096901179092285135273147955036450161301300382806788453356339113517314102426784397707124485599392643077445632719090320883935185236603305236997613131733483452682577284960574391671553951585295633300819418422656349976173206683909930722165580285405458697118901221966024066946082942278143215432436576101750205912960184367126183329145345884749623927097658169394040286387467768485985922138207034864983052250484391685775345481955113749471895212461814152399021533658511335253541411165644033399101481716030559606437342868032391003140709411132623263239983969953761922713697350014839858388497144816815171497459079590177449277445111306272842013163584376417920933292431674400554612311429161626397607066356038600656083714043830300413434746398954845945112697033377583290553364122253592752497345534833372325862570963384334203596640897285644317895876135181009427545203740088801072788481889595167231262118912500192087373386133650137343488640425225200177046207266882007044656184738968235564714710782682630045214904324105536355452559184213541968651137397886663097500814256431984740377591458789590609845742607885786320231440257646052463724839202431547042711190031890420403338170009864228643418074777777983442555989308922906974570187202046818294167524913485599606198009894844748916628760419800602597001273656939362975409320859454667562340804615013545821550863207226603893401376730576253406555169815277785599299882419464266516768776119173622270209227833605250770480707590718034363357075638283659681399539076072706818136565759198668375105461152180837811919647554096709582495601782824567273685631218502098047036246417619868271774847822246349032781088546314151737181432979288325624993711562971573739011583631087044860251030049694691425838693706512037704663082421648944335800059686873021485249287953824228610007364203649679148694242547730644728104255087291934196066705256450640960879002440406424731141356609900651467888093279138493846480654610178905627645635564452678797317660085645985904575945045293632732291403406240934385163140252600210208532500280314180983752338963958307623736733425481189342771892693033982841203649517717601003467519208158338293632128206631310891456020148225230455288294429174005143891311827980981984843229029838696282514873944582039109406532801887540772094907478611791577001719038791280637623661744014404520702292452320454057628069657930850203981218378402067202501202667529553130834943534719363417727340636026257960313651197855485669372846404204684892771577804345867761008528960736931441334648737735250159245211976597545908769502060561757819359107740362583576536008089376532813708436943902272298653222182884374001388258111629715534575674032149860975542868865798743690094970509798609377027835722338833145398049398921017143358261896740031225279973033645710616072849682640266823477045583015458557482717137243584709948613726587130254940244957385588996605353709033892511454055581245692941378882716519900043761079672572805998748204798956785593885849948346965194930897814997277634733058570717902709356822757630639304970229663395528763379913078585931420781133511143201210260198730421670626014357584117977079045808380884980881666261853588355924200630530246434628992308203070806494107304156759771007752398558686759457317447670945568426890385311284949880181447745665050961489899151762992416428780004741385080452032953053918409768994631996955912786769493195927336620543091812055669246215274078665143235265920707086787955864168604527753575020748767143337706011912940315857431076777779521359026130808289832488394832094998845683076724175929943034020943993227082754835738850741991713694004987985861942344627960841444735665203792829531701633511815302931272302543562910554586395777780221165886661126933574072944361455749056372007128254481135578340290160485176052432969813550274714705263542935264813662388695848981951679047612474744680084772588713945527367108878475084256882598396368306676476645133082342995384063714939655126025964126916639553294222162779760787495529174856884218248637463247477832449298323544025715676079286742595284943389896764343657548230757547840335036965376873654980223987801192035440491288268359419539718436472554090531421055666320732046388483827683792610550038057395379402151364136624967493537324104404348623823362492049535442857905306545277265072203465929044320220171632423583137835125210957641527412446577626167543609470974335640076904143622180682993551510913855657373411948903218456220443877152700482110127612081407824526498863610383265084808525295149522635542646067184454304265338266686100665577169517144295655590542368193393871753203864115522428847408796387265599650354531601787284299590624897569431465725329799565644275381025956667255876113030863545950868484208170230903776010731371062342933780745475082378560549479876902139056655858928600919904560260320637827290761553970383110180084490112148119277796748391027288205755978205350883461500219034837657646311056840142504210637833165097909347259499426617045207232691017186806893159895008062399758694838970524161223017172894039046699849427213392956812616100465090284562126757394143927950319586502350481104716856357835404264857212754026388128719462092038132546481161703135867671064365876605516551331133170227182321568773621958482168564652846069706619054395401406510630973336513811963331659490303921642708535422804979802671491189563642517489134412142636155478089214528367082216940259871126321143885299391696304804817892962988201123807490130529424929480161143533023900806706572137816797198568613029030129939944512498469010019891936059827916973051475943464960288332896966081505634505660937812923613349058578055094564210353090736019584463712165073198201564242201326845668774183233102473192186851564341203271703057306607851753850970691717079172528551174362787130160095220892024240503057564021537273695926679974781070727937239123557770934682847560107630127913119953917628186159430382077839824326173196631333620637934967687508952402364246923190454167386235836048283743927886654775948590289204020193959377065673211949099104335285517987140350203076055782019148388288094649648208424176699245675831226247807039055765314126326024292243620371953291855471809159644318568520578823501030910761280604457044251479975896088802812599786238774354965990492967322084497244345824350368978036518490995121422940156691745341683830903528477964306760861159976367872049550579563651669383452102120571246718902363583790833911908020689959689699018812232185525286934857365188863016045294102817973608068954952403606648894468348535737117060799430547192164875943131412697595251661025229095753755095093371854490007290767612634676529166464558037153306020553474162055566838087233101145670608219713601991166960117726535124144051093620360100175840533446898756534900244758018499028511290560362815437279676288312381657743751766245640457837049648569090428184674143410766075498411465742153343796282523773935177587703994255213181690173990186164214135439277973347087659736948171010331818637689272837636602301920591979295917914822441639403180414779002828571251776448410593156446753633092415797021262648130428083893377067239822865434173173648142456296618079313695325091128754694980155031799451669122841384464630874102798782095587734617666779332006361614129983611238785269844967622494946016222419848188284417597250896504323883882677621153869449072231408003864096674795565960336586550083450157466810037154981215455917708285526905878274626801895484098548064776732259308336464326667895198132303438478055425711893324488033710276608066426197680004014576819261412342142109083788260348803987158967469186812759503541904068967278139513219884211832561094874735276486643671335936837371907167136153442892072527305707780561606591615442358910784646554736956343970737221781859123010944369231395220301011367407345705952613302936743793212040615997089068120350786235412780541682658235374259385696643576271097354086523033339574924977199534666256942812121192667488866525631516970660724002193962668428251544756149635793336584523772409968735795322759190097974155172133484533357868142287399385190209367827402155999142045644643838160009990650537188148493816086550357227064177438662975167896665549998788957217902623090845448064651856930925569645317224108945164542679676181972883295841393513384459604167285457399141508049594466135343984501427618054220965984867109944082508151323925213606951062673373679223322142599523022293640904766459615450559484204881311441317204646926704975974905993511692043902760515744667739687080324780406343777841672502198884943540982821160007277291505075986936568472201694104618944458261855116004154945106281588724851403451900555634666152447374960766113577874837400388629388488610195028128078179274503495840575292845298389091576491324731010563331478134640265046262915675377909213724782897003196325968912513302152465612054358376226860928203077741687004590435263581749463672455178978493175067539046404160336384724054649807500393002457661071466060571949510914024823273526691221496016070897220722054628810038730762296890621526297111428927346339214378575838167995709651297512128824707622937565721348906236186014189959500029393433011746330033297290783402638252783796053000047355927546848718929972065613653375153747792196249551796922008557314794457428822592422876777321288598065370465402461993872964993594356323021311084824249501800675718939861189726218243077831783344585703611816094139763446516272565828861687821301342558907381840573422275279094401507963350696306831585842595975834413393166679973048051471042051621356217540904877733022739698065649590094569569853658432083562061593452925424189291617305222097935246571227066400541353921262095374160702598813126795666746170932371740523629631960893652984442507430228049766416403828292571371636030617625967249957176153695852486644931720109608534572342362545038544414412716384767262833330818958559364760061635249859063288744503255113776818130533466466995015477493242098568659350490106211412991417730998045997886539985559972088652729738821650877480019866860316305612301144493319357840763341833138597727323452702126526577296264884620440503237750927026440915992126524862677165996591324571541392540015381169966140144979220598528654631198814587419187337551855095811871019692417664292423893754945163159477245311019841450800876155626440788217209351125934261844683035210737940004183828936058544070651726449168857872854526507281049117224129415223468484489897349653315569393268554021166559449075153103970832462344595701968564326756803854451935868733514968195976960082012537990084001054633523364189127960544687635703710651413568371551244836184919250949941414462463217845967667191164877674448959946443158395848718188466274202784418999288032751244966696486793458941329860233034829288762606371364458073713401017269924003140999628987593282399732487871382265254741903488221774981954557079637800427801458791944118907707143580110302662454293625150543461651519860793423856239066455154590868997009872757833856476910334686388994289636191695331383106351444319469299789521504273430274505489128224046567516837384091737414843731819711882264119670295140010484497368688360489262885407453712460157846887947781317083920277018500839599401350787510645356146154845035346787490153402751409018346456754197604548330869216939024898067509229922940715506923777878266699123015899093808133789806750922992294071550692377787826669912301589909380813378980675092299229407155069237778782666991230158990938081337285055529905993471678423507867390580365538952018111477155275161383726656687055032514568315829590653570060806572699022721433791492375242219582555155273904766415152423084130932793556194050053244414539506109491632703871530370152810088754080933294790986591783965408974119198714373411365127164382405244158428876975714977114147142795082958870299279246833213370515267564394231135026287768903446466363218444592171575879241131996329875413120183252226786967899641329341131763665388968320511916362239963736400650624218691982230644198135153219731985910156362569862181748547088883782202161710149124324921653238655769085274725478596829812494806860664444935191830374836655081755422573352685140389878650300704028993343819723019614734086482834761260730198222686144117989843675583891590084699913140541383193918165643088434978829915171742974864909638389673430651712173602754537578343113521721501826959291493227874737425724572136025662638413895262627930213000996619630032325220131382188448222153852531276767630485518700683146840399268185487653840563848319210024722319166100913439507678555138370482142849151016989753390789756323399217789038804763368137484651689226357162307184064156632492410866923967601216010814456092321337429145784488061247863773882641020861802495130573388369415850878231970981515867117095173880286795801510678804493390248068909905291953284466968288254552920787080905016614853675330813369070048013388285854616540641332025069383559631742436588406472615757600993478411408406299823664823574855435335905053612627428200187848052953044769863226366278296327416370115311182340817867398766107281273257785139211380768154189444041763294630490061864780759891264283257299873528716127741833680517563794195244023212888549117741506531116818362269895319004959229250837626080500331743338563784867495822310586318894073980761449692017917513933532988588534336449979130016571286809999515576368835796903449984723426041943185991220465827495644137636777021611431270014347716120164648321329271182571328791058413578619311893745953236310239127088901391290916652719237745868641703648012032953287516120129170609592709077735616740193911744124471246014178496797282493661458990725500824349970890968096364168915696208984519256267193430471714563044323998155688693543372623026149800352837166513591216931783823097964852220628541884734869393594384325299875376511924923350991966689310683934309929177429112608797283043316638758402370220112172394561144733654127633402705845417785774852486316499991704854769484320531209292739986610752631319764337653802952214163742360237221850677911388725805767775543742535744238997963358197140322779356139744707119461141651761515123882362790564886358947268605733447972830925709439137795165630585389041681689876925808365068825009361192610789112427098812226934685319851706637174204680963766557289364171324938644334052887352790255086899509376151204649845093084820946460641779407759272735187506149345281817675171084502365204423677681513267431932510951920058767491849302776955965409812253963577116946711260602360694394572136480764649901663784374841097357300987497338721557269597603311371288315838030624903238330486195211498262358667333635943608153309620435231806990586725316679671989775739671985056332039162769296127845043250930278493655757046636650050423538070002104337905436545267691563211623070815386679328752803991810222879667549274141381460065654850877794899447855050889491480528826587688444566272939081961440068398308052403725695064114389933181166377016307519304450021566160912397787650073874339861213776763163799499160358002942539415093611828779256489019970636115118334377322878051378170068546189397707800275450470574657440961151865016887216781580801618548641080898632223340991247492258081118532699879573620303636012024863397052946712401923986888626998354310920045622791699844169883212018095594550534885326175425495363851506311896253092176652916582431590045834969397068765865424328194564764785373552515306898910979666887810025698390687113192142541988664192866687545377244317614463541566576287140553536428785180176621964712668996243194827310093974171042590552437496873330365968721460188999669280258230500025049474319578873617743981181941294800460295054273686692310079383355277975003835915620816472862995161814151182430486495587047642038715770645275872367708081805904084235237757757540088468775611166581392511935673190940209614289011096489957150397207159050424785782964191398186464569806900388364679836798101237694632288836091585443010494261487603503799034417768599956759933050225323476525468899552580628931781172182316379508778459343728786415144638730344373009824804924955400332234343780588846442656516711172540890242516568074345760295714812822409478460558543210753456382184804837562589157517060137146819642168971776054953019924695302390199614826260170628481879635799123969700159444146867753185645831272547174394450082162982830493756959752133974391203106521261696229281178721499149753725472129306870385087565061502752264203373041216162349639788099435270804166933227218359322427911165736309254664967124992961439907500009763571020509135217210267487838180045968331069999559077825546489128367433945158247815280574610341511343563810566377035487980940326526654845824868458290675564358632459180753460775801695839975806488137704343413010596884392991793174174742867125143313255177595667391206113546736483115197935420861547222832758560401773389173211141862365202764491763082599430939167130160355550663966400637699177448238398404527277641720112291229061185595127506650649835460296102965747543759069555507510185935075883789469234080884424210404435178451018449469776602243257275763372138266732831848510419137225727990030230195198814570212171657227651891902737558032398085602854179108696330380502830582541552079221546755099881660712637966690626696222880410521943755535993478632239333088074294403163633929743184574294796453048481266724296055477893724165925475425727294818303585240798970601383390192188164731155785052643281067107830425382786255073575144178094379451520876964418039294505337106958002880600959261554240429538493922366928251865457871541550543768172161949416243980236697017645851682241848234949856122612205259406946868433558288000423604267164920519830030400639082160494841822317937800187897147326541391659694146628544607201166338527550831900032819349165007915757425415726422107319213142403345326076600054088324224303953642851701019071959689962221685724205827008044884586616008524685471176644033745417169725731664357129934938871819929175946631813286486618479719449399756737688968894218741250518128652265436890284789523945318907597818378429373869271123324522402704855011368071301499127539063765677619504082472945779516147251783340582936314389374727744967896513648114070023132746198982924674668855898433555455760427757376276091205804848027199984955395267234262697175122246216969012780081098444425535915175083609503915428095603229402450125344480013590713294374264407657156719414139579192271365410090161702991031998657052584092579984341415907909404761270738304781789551094730906625750499363514227862650746766596040918727372254779472975212156735685726097885664645754101381930184782123365156997722636151699971162308147353868744559534540138665599995625362468346296316834097975504564050102772610837878518203493705332792138943408370417286053516274318097196418515813346386178640580852899326162674792028229007798061487378774117335830276131207960256078488189046862289627843902049983703685368810277112776491648078939944439040925075904833289087283241424493352364630816798184071019847693663055389540287367449033739847490758595035606072003587845043016881102144264988472971774495941058452003823012531660787088599066303712804121528907855153422131215471139478438631378025693727576221585767928915212630006697169938472634430828463068278319532124797579764030143681437346152646919895021034218176259365978453266760250667448846712460966866173009706625245017692278852056906735900843160412459284748056689469781827677947558847010378813457163188174944289989298716727868572546655367737283112444617673040875235065054391728319619830505638090014071189077122132920908376622049304967945786678841810035863738342709135352809394255181980793497854644802496427368668433552167080896583682049543336741086899344362297041444343961098861270196212361682942389358044719702097389199208230232314642350567106499113603577319563884719181976988071005806703870572501530190615358555901464126696691923629059503854868733761219137217442714461555526745228257400058034707483503081485510715399389168383731109275020581701951231311776778518448777687268042139392860342132389958185132776669365598180645571558540380121592971267768643842853718880917909957308068010225411651642985479859780120053032532257524997410354310883801984322002357567408273306083966425559365951758305161534971344382636799028771794289082660425974949114770714229702525112586060390052960240254582624832575575756121613127958128121568538408559162780570929372466124367205888681576790769303505178957563934003111259297972535777544200569966402202138347356603769169544131890619160614468251813160176609861677232066349745604650972882659512753972733368694175508487217889388640618398460037168689685091852298344657755164156298149054346762684211445248399413123038525805184868019570889226188325223553643687364583479146903567872259825575975596021681452229949197379268978806572774996020618312361912598422999744591793191907004469955405843606932673167089261261701339842671888934212498755699024305950595367665402753307550309490689335933765557321753833566489041072878037317426730961814074515620721259831472457483012110660947978796294904381332427061165526973317981222046734271212266413819291473278943660918278788827641461469764222050291144484184413818492376352771491469069743360808145042927657615875421705249394092838637329473577842342407795488209531262353402755035057102890394313368148199515356610924477427046999116723789895516390463749839660324274199311394429039057605907415555332506554821517929225476425450871896221311351669933045431200007471829800650638738989262564890543973968667943212705493923274442799571733635910633348441851469534298128089686874083237540802626059432986205629181754412222900184021005925843557050011626334138911164722410329354306799246863155390027951392329972227662129951309940979505302073905595811915124333040407885249710925372417474301388303179701844108570451357681512915362442949250375261611011837321004651896146782697244426178043464984407081819464885701556647291249400183231574748921227215054856761733105517328675555551372752572280701584444306909116842079448527192751675238846945201405843654124419006882995745900543574308056155946524228819312720329234092490339765471465181113145925190572580493515112436689165402260062755458017611743528143148949991614671893523814433684640427672953871675260813395098759620778572778924985598283482328917720811777733834663342418849227919805296830926375673184709704872233707624758369814717742114804321363094148725478149263087466784789524555610053498907888898459211841022359782737316521280197485413419869770543953887497390145741221190480539008552547517769182706070979677126597248844196823381058259943529823826723631734242671557829646010506831004613792748906560307636325981027936611235706225460930384592230956994474648995943528035957281220735900214846748760962849701879898071617087186011317039698435437109684351766492479554420274224706377160003575229427613743288102773742437633846548182324254585865229937019088847477674002680010096731972668495586454467670798787717513539808839832073277017804624993278618880767133092543389284289547339980467826791459819674690198306839892263439290357185733095966285388450311226586325701495178443681391853583920429643375838949238481221756550210355406710582772688757513784359797904449145269179059270350881467187781681401490099155462169014256978035035958724739149761619033480456499169804389482848716057330970807205046654803487557123331222248624733016399867137951278867986438102554256042535792751624131624549552973102364591993011349614295221853169829571040685148038221398883769639075814255195711993591711187550877596254773775135923387032299401391763658037067844008595624687639951401471457224685434012807858564304393947069971219759406459214429010712931914057426533471341641286645107585645881239511401177955080732163678101603734337601573155634925565939373671656193550045881073223355930244825696996555838830534131866761689980856668282771323568706812262548462982103131760771801239058725534724204741520016176660218058824619496648746064563878996315071244291538840423245075603214047762425803652609205191482910102715774592414262871044559729269995650112860668854627487571876650669697796028230413811084693087871684835790925462780349442642545861204599719960800316630347958992894563255312542534431739985369459805836028674518508105331304764752853762874570977776754130771424300232534740409303069421829116816439039165574700321658811000624207185247579746980527651709727451530250946186599372850401168149577814259636124014780968378688851125147127622317915331487044871205793776550304016642970150767388550477383288817873121246007452761235417666576881701011494289925734910123564667639625806511271339649842282450273056693708923735816460953561164343750565029963151679745340938235328999702562718021656243625511798697216249832309565871968296025466806500004671622240239665382418550573065814460635905595549641982011396965284439301573931052062830891492180634287155353700590035047086460963541097884106096566034365354449061700707899583180561453390650477052743156641760972151791948928336481286604608353071881948053442177304236040841191576164461309136759315286399233963870540720547988479579886169962180644201535353179004476525582272767064593635057287804275734855898768296689233572428808680624632489791895841694457900295928632288829382800916032460635320238223124737736787406179409010413815330576102830088488649415922557543809460630258626769891731846156393679957705382514934153048349312243480633331688402699767024473274906189736334543327828082077440266709778178207831208572634456094708554852142658489101849573503186642174822985673406328525642088746642534053395045023102754493429019160008441503984952021532560016392766936647780958412656042906452568061709558520418712814813474344515393746475496344220538926109954944289146367538957876055842484190258311817288502158858378806898930594521539281374654088777536100423510149310846076543290946086796910018840384162250090888837411244830646123775233176545420148684333531525807526673468582177646255479877158003780737152412484086925690704928900666781140279791636537433395145161411107226456176282259912478849099284872988870529808306524599355173740824113367757972723356826803378116357549983476669908238378145543916215512856385576818804480343213210293942162408135480262308822241912311925661205255016134989977537211303331839809636216624718633004541360033833053057938607902112932032887174995145272045062395800542689317348183540808487347093887388619010213621756502595911351442127021011648093093037494167291593624568786003466022400339535225142449151606042997647942423498377961134986659102717829299312465284256303982440607897986973420603951700753187578630616126471450010032081159416960435788247184765644413513385091862089785746218053947270574914758885846342665182414683879858080482488208055020192887763490205355158562400189346433242686366341174030312234237172519433745140146909287147290589015061523895622846152031461702617566758586209515477682835625450643162643745807607141785780027587608048332596758878853180959596581481600806521298179195843985925295184458469272466477076091516851746385647187622149193215623010127131052844507481070026502446417858724356779922130399652183827914184826528162510461472116304790782242023484217623506439141529823005543625701476369958878450144051305748180118673087237596524652046435093431303966655856293925156810381694666620313639439917344896713982981562741198826272351095251221821704750686253399267537797846680999542042149911343540701022056926819994042516658933928498565667347332579493437311852048961480398907491103503139468334077786693687354754911077611269470298782112564765681491566691909552936732055957727929512982090715157730091788477963374300214580360314477890620077155490476480542427051316776689353266943735909722400831594023758388314763542140440860421299577016536729659902048363057779854577067028190587186483061382527527860075879070243587438121184097439290836223989125389316731842659559659548495881455735273119107469179828345743767858841443980936994532326065725996975882421929358791454369349104390422637817675573224987314756957013416041498872979606838574148390973894482340813010956583016594628071917844798263328455536359745121872603325357817924068700106861650620278236810634292874145081373060954890892474450662277330838526810902090813243131511849533596968989039103170864371432842682490648126662406926704213367160470574265531382424342208560979350065014126838867933302418654622307472025320717893805031719917873491122677621899708478236081116007980195606821356266409245951405941919888659605278045961898798897812460445075204391195108742576253503374285344359966802548772112938561910122074296511208884295468554439251909040934596997623225136684493959391431058220054977616511932363355784477387007275167088770183360897310533306167400940748760848572870502540396522062498438780791421232920380618831048172321093001720191485125537211230915157190161271374065368354640345909017516919077376312212625722658664549644959123749618371939551519665045731490348698140453817457369758982275113774563078672356216976682523924529815904675621852858455891453014822265840535952639098539371766197101587838732782383755847244288253637262108186657407440201307721398294034324598455034889846916089350460604602972075243052225050884840981344559999075868131547522204656145766233140452632696535279292379792937392919037486967196463071806072478474739655051709747509660626023429037646844450582247222021323863885571451323474982034996604066211777772978606443414673662111064805331614307054651648294660337643562092912703240902104351027595403970654729979272108961839673150847030362204984020805668699225246595358373749601331417900353700524645605869477674688973094413691010744202027223857514205225470819089634991421944317404112374851728895430801845740910319994611280556433442262289579340517365029531336028314329702493656220118807383796596866938563040365542449375719742102493740570193694513848256986001953215162568971401835116525496006360110312028199534967046160974620829177365729978564571306965165001622777885273834072598355967397082404631525917673804229743178528315649444954503695640110936985581798511502721191591763800482965813078985947039731206537802032276034416297329698012059066824690143029493995250158989047710508025383515715842805178152642640065745840279170365562834115519991778849951688578980881405096867648256081575871689213785261434824019867008595949183437996872749380392439900124089292676454523422192207578413785334248788335354749324685978019743073891678142961050444496628579719868493170449749155067552127911161583805706968196572594815298667213335258086767899959649515960610988893062288696613263121755757586483262796857114153350264721407950235985958527648203136398655628137447612938148477402022504450859121825095624779073889654945265020370785100531156965622029849937475086136190439762995990313119008043197524580940000914558217454526625805274039981316932570018276842172231805140682005023092966177270185446003704330143234525164686645610521720692906036720273335396157708284888237288135889404534490226994538768784657248578192875582017026334879541782535545557549068250069979739505950461342053430926981905725531230338713302912850319228135696396012838534552115943569140977460158198777412381988958667271114272958310827089863920462180345379455624339718562497127140957925961923078188404535552979777422106889367338855485881072236768784859382251540354409948225290592834847801360135009151581145329214423539629875548306801558853165966563394478186222393658069731261285120024220474114337596177699106333914637580520358154703062295277217035148212385304932657058446113196562254523852860644493309181674712723697272029500262669493867606739072357441326860714781306327962522521358345146175319707352809011354314677739453471024006089517815558307572118215079950055883774454731926129253830499817430402307022389098160761531109928886528725602179498866339642061820921316043176801177815429663673507872419183405805978019413641380162857929818320868424446974760959467546593513927192027086066670096446912642578969760050375281909661537566185545806264352294921657908349843792574319715877064686820018182320486899825645633405013849665576402970834480618786696893121635133966878313623511774979419930548228986619040064715435959579227544277779439667263372974662779775357319608434724918119021011929439259038026026484174844478200516856843034661441250061225441185536036696829948065721395351334078869245327059129149828017411210718841342687878882980021071193184154769063232133035664704280199834162572610516704131168493867700277509498844108513693169564448607593170835467673690177738942973154551145922770111036084305577182412122340329282298744398644640191956092300014394993453060442579969384917723978161494511312042048686379167525306349006652395804402898435392555784845807220033202925034659744813261401733733484152208726498583672364880564331283046930530487353905968489776941066248996816465510182556276908923306543747477325157482346420761826937202001112884908374084156663787904917715791626174472533569211027963136363961933383031690960585634786515836410409521854218925393845365190009456821882351219678534912907472733457619087952770071453429642885777891979700517737331894256474677870595141670950151254363254585850590927777223574413690610705925417965794073644894013368462125974037769436292671078648069165694144947649627554797526997506112392906590555602998061827757923211986904515905942490767601449443302144753811078861683941736268247379536204857866736619434018375399507887357076956973633489060966234152033032736644168409155972675060681869195428972955496780074208880873199984229331801642263918301140795970491267195672661938762353423067783745037399215560497316196545379184136237601366609873437405615646163459852384782852331973079137019825090585326929428640128896615562366533668086796762690219338587009470620408502701789450516817868277031934278430701645193131391148579096169684416066209283732083338786764148839135298925848184530866997588412889658670242875568773123590034961649957608292377522689365557076354134082655772488902435754853975257909113420179830261153474517489394228238827710449742344359228203662147297399136740367101215970943082487534476980106697699031419407850208010006384516220354274895328569552580166987140127909455465844685317297663885922327228023922957255162170439537798680918870851195550148345006535420589588172819071594632777061363476090473165184177320017762749668619298300484784222251662526812410603171436519456728348892810958904469510765410361898853483266943402184793134763806133555152023602176365618271131545325315248318501600255035300235099811874568401397841324504129248995106356188398860593998518606626698374306821560893536408037221056922170621065402903346895715239006679969843981971994494884736379926562713791440855451262773768033692487909647451106309430481047440825975290276493019099618286720668008381247708280425348545154944826733517709915865139720744453559629062029789651482279964382284624100494925380966317158494746496877324294171486011775792546480922293925634847344849734476876789725518676844578041930104358838478744984719157546612527742106519834036887682177098564798974966417963758532760889483399378980386935905003885915004182247692621391632221151170732974075729995059216141953417954539564825806957558191410105474085836697638897485443567038088777622534237252366858625286860701112073766444177034759239022054029211833635920768287468191635734436212258468551849117378281498933173294328687866734127709419506140678430955963466118300937723559315500840818820429901112536254951586587987779332016060230253996395820888578524640683893060314881551188185106339280138068829477553386857687006287381871755096202301678908295772993703948123553225117730651413774797053438937964519477623368044456610377282423774640653174719122855087525701248555303495842547755111923104174126089604176453047384486184959876882445549497422370796274252261378595615081527071735522514060924714662877076575923280000636236617818518201466129968973204506701938791223390280196792848576421517536050324280495374126017027574030305342271641863949578600006459952392766917288951034783250731781367442373727643857425217753618604996157784516405621251200757112686925439127054804174130629085265480196487981111437341575547549991708223661965071527972205089698520513649053554727844829720710781457451456846086111572956596317579388647484246331637656494481161619216046287370290404097536728861306625138090935098491430915201368594034990362979313644033125901186964880120878666141208928978105070175592631593289475933353555853961535737486473277884692900514837562696456927138301087192984228256114413262879693085543514821959294806708059222682459066959870498056520226321886000458133848213383801071401193705031999865589124946066131408979946504502916697723288306019518497855653243552234794761767925765445820526605167994476072270550260402538069305498861065092174655658888730178883841289599959659159322793045738084143789823577978122166391540010741213360957168963667005748458952054792616196173666179668924730031816330776842912398177400293806904648200505930567210970470723585762765597152866857405809911535605869057244722420834985942707651457804339879341679576813796362083390395083293449558059536376048546223113625167923643813542477484194804358933214598819421360579294167412261599983610855016724402649352902692947624134258256387230319743507861606461769510121854106322030817166112414886764403388729757658443952202219610073743454148508916871337442678359527056131521252620738693321830593565893062103049292095355381454951160121464198439793903718964398693487841589092209093907042757821905935709430767237024389005345312096700350896192224298816087686432982939714882496041244651328082112489224188331444749268803634239182966671662822415678183967524379665967458116991492813690145022797801359769313865394554720684577771745913853617847926695371036950896377227906128123654791570888690766768908193749340610368410673860054110026278700874705947106586451439196980559706950556505015123393666589057173313364476421307065675731991903938811893825307521088285951614750680946883924574001113547027478698216862127432149766518830031960333456223553442141736811700595766349367622329069184880323734519243491246566532971823841739691986587133313412071051707368341724123447237186724941510842704961554950379550152873822486053846067672039287586862626169843822805601587578668309251223040159989753848922836009598075215949025807471715773537480669005001534985359036976722971043715921098469391204905426246339608550824918232865843934026293826856371525962389474471783369996618020115478824991332365221595665340485701123258277081886215013071577934600274395168927524355182396240839150123473924668651002227673515415339817443806293681884318702195394674578806838733045026699348204740930850952940088706951818632548354824966260706650249956468194106470407122731100421544185549123163407340196180907498723670338997499343924399165880651283667905641695736521605028224488521757361133174294735635774830847833098492957430573060450412840297114897365523337025293332859341544883137400581072624246477515535611897734274294259684019406813333814161074909164044307805277729770093827687366826928083628346772591003284128128935787611886533037994391571099173130876841482981473167438924150708123330466386665268851715228773495808650709021102713080114880705251086164181615255674817104786219400105612800134647100048960081618136339861314375953783573446347009738022397066733317884712174216623797833950508494584056480430059112018417300502241962981137643255508625993667297921212396833626254330792019745755537985778603339936113973147973585880467482663190555031714751074082657545538452600524391171639479854543854640477445274442320820115805894011041094538330920475598313012780340587673381134517847042396208849358293399476294892749263076151959475808635230500390635269755089737196321432027975808869585297731621983594425668946663498655664182852784053071039460383705531953070578143320616548372087637305421510498196398231622394615554016244819227488988991548181616101412911142233274248071051202784972384904402642968076980344031601013659880856422960754069569557133508005356595188841456265319836545998149354703533396578804947612732090048553113590869747145353689015718969841577548117779410760419019145652728884040518827950849008264536013242915228888937975199955998596828893608911271091030997306757062186597296734639843061928429550429210546691609154182803517832368415521818655679634071112430643855154156248975176397718812620984087360982992383637303027505941877062626357378481368868368293339698892774446869696629499689660276916003698605968904718417160001971841236265199793012787419139272279869802272459522940152432208404817539812400825763713606703033447765411404274369962054125145048270021051517411890882549260977472146205536677900755200879989232346535925261273772769545671215444999501484526854325974087574445023559503175888094678670624279504968122317381953193469955615100420921536083260321530691857272259929860039539254734318064647706444154409630859833209894281173897950682749552487066282732805364792474107235461194594426537978749869795964322144950143520616632736083387789574626900889609416213734426382002676575339103418924761056359888170083539644955852192240769813052521731950132374196453428976165813540733130263030285478022485192552078323237454832679632890712562747524612292929641409424850290594741557599275124250850699663473537642940738391820741909162541609728445916256144727217059082938576767130454384335990826160862846719632875160286080403534720853621937494941366551991508536892373512748507429481445196541693822917931530918037820472872238945587726485845658358368883541761056472125564386401518568769577988275174222434711115526234369721170763345046653272476633423782119587911761578339722874708451279886599245183279164144598280214437270189462668035792333375174806410499318521884550682118360856897563251181387504609424195574432639719843107892775247235667228839552735523606622598788598539632877284454683694923676064844122735368292191324554704074421666820674612656707964301200553515990474170854616373362027038659522738064231262187406268909039981671086150219582650064497781735731850521577151608476313142971006824824913916249289255612638476738621823334522830285701381554374765057846569058839482531341998139629573625019198571058084667923649110592908805506833821771837094406269993826919706824470532005794540835186100366116156094508242398650419987316238383574666454521887359026121934531604858339212666377250620851905462362373373281142581664384249889798596679541759200369130045370371962753606871830137648121274105614824487959863510850054873490298447752975753493966553071505515441039093865374166652159183354997382566893264526862082359621402396340971224268268700253395582693224380599832426908453047814199149893110710157169474955576352194587457686296301838990582420127878675579693472318503074461060348391459879497794871139135462902548628222497438944743868266164360683181248859872326879107661623053800860292158338144328453224074623554187998881747238128535968382895006202252464635731610826636036431485635531605049915414413088721541443317452537321065139611973306948781391309687331861366696193940257200499308099995348219427655878113235218778124571834239764680697306979340608138301890778537922762154846640882312642981642123941745697135666153982555543529498172239014522235919257419431464218266477688866772502171232941522897844616291056628542007145388341678148913456674450692912906319135618469153315855813507648754132185945574577015648665261674662085801070023556816875810595967699890198547270641753128848749413907086642080806276944501319670197033551810041719242513644274485219781537035777096179780365547150100641818050275407358363121007584869042036045306374303438876152382898355737285260279010965811358399008202510641500684886037785145170399362693832261888230189959127100087907541662874832239445228502391848679138156920568635432170416335863703532435303860313824517889442520080485301480423264006520996296009664177693761308208068702013088347209999166455805747029726506424859031007184698953106901743228378475715367509849704348348205993122322475198548535455451980842281450746416932517417116603293266776227819083489722751003080897525205030246649351264612784890874118303858779985696639063450520022123934526686579920442386148475724289010511432888381458370014867822833301640727611403694136211573716998560584173544560803368889069252435338105397159315045259209401288682676195785113132383976361566212857648264097235668922065045948831798586410105643818698894289927631481613114119783948514389640201616144702822217564827342006461530161701567304518618437705212706257342258715062895985488617620522961688656521583778424714947986648770706732481799084249744141303077278122172757039389853107662656948276197633287446596045593501802123231361682946910516536799613149656188142307979002819702075307204137744966745306251107845657924638003827385686022458954061439361499404848428696980648326210846438074333655839868808998847151429570101451205496684289667486610186687651297313962832144102683416586035991143893180762564434460927475028253732472243963582314418661898353373236916808695029220481436237204812347239217482268429106661178494353167259238504105377931104908157295800821890410996537405229404620198482059471956546843007682203732839906146792078803130621080742887826745652227951039753018549245010806671435652203409852097171275158839048613112946667339640992434926471623122346056816004405457214628656625616892869974683821633904331762863708095828508190969741762120740550851100181533020817181367176854348727208917260674318103868754990964287428041065285744478313994874978924434353732018837509779534604400528119785269275442489632574162987942882550607639516510838711766467376638752697508837939890328835740211229563543208743741416249491051576822711741771193223294539197409213659086000047620243281888116116364492871555990829981454358403717095653052756790061038582200502577422429256977373229660938546733692944968154326056858234085073909150459231508132267678106363250595862745514892282856540694522210563558028622416764055769526032218335623963739880801424611875505460955509412272002001667329078978000709638482831244629559654502212074332643657186971345144689688892295108020016256807995121841316098330970217827686024487144336131445923206014734974814869132077424597364339492007308857482067224118479268240533045986927545897072131545841540477232222083920803632412721763116289188164339403686931713558268000635173209745052437830526334298205158572929372906514408225209314003833442860094371776965082929411189712087370784093552754759466760770073958299632583886106737450792618043306725140535211613376789603653857985032218450837234572589397448244920328733860279920420127995062845861769293493474864504649196863533839144956932935349913992245366418810063103071095056877344542309645895436141863087624149444741986669834771340530095779787207929146238962639088463929969063931016383363832131953937930428049848759627949597793364835848003784161018633174149813364342738798030257797021830886503641810622157102928202158718144562664355191289239074644949104273596927665231146956658445818114476377375235012859312659257607505565019843356775432091750690113587867161954936552029139094377173320155808072273331910017793165196815422808837057650759883759702175411773808713798533896289683026298162805530110755775897853482385481298281050149628858871823221804888260182746164487902917284184000293674697066526008628284388308813356335802435105776352859335154443801010244994217478189655318847087378155223644071454282954832131189537540818216074865979777622791023082336484361723366029171933992616788286898005789119115696128611373040422299624444564522881179747153663579146150494381217969991171955339291546798588856908281911031471838112996786565145305967981319080042218270900569304480748300834564251502360936375255638319351742703436292684023477641389903904336235185135026393009596644489877604174378603817234206079071437119444753952284355167788857090934059098426280075550024872583065055751125935389631517182606584600128932682974216179130811687821272103921757969833700705560047926599743236495254475598623484474040961714756628827532509173759154603250809601144327041198731596968007968936040759775018037409417146998188504662898263050340628173028231979912553091836280779925113306555777258958054972193754768545034660721841155705309674742472328699207294954176864890518966875077362184297915115758515906698154334699735695187655323006157281995740879843326878654838770370483886796963447104488103666255295862834343848046267812214764251660197642270203629450879879092306899776262202336341177118201539905017307149399611554840371522826857799838510938400452826367576126056398439135294087394557427764849924141468582429138579177562329540201682478667600210215138266641101300421780062344321791952368617769613880500659250907025290015574994875260137231942696283769173901232800260299278068310630273490101100314067077900457927698279313684945163089509182904830296500190892833649883721439618079320874232876806864909920444950735986052895721169951904040833898408356330664385412889007147543866567070850184695379003257164362715713573472251059295865110984068456897156582545572563335559457657774761802015683785236403149785380983156625318580942578510581390461546524807271983290957729580553008835764393546571457913592767466432544838454558273091398616717779959434994550317477143659796683456454234578234953022033793923089622734428667174667986556825373251453774300922372120275316938566597761078235980188630750756040836771274187145896698345702753848703603042584280212778831071351132772777499204648303734048642790225836760077390083656159122196628426903636660298543235363179945147033963949613868716717763056546091885655184434451689033462458468291241431753586574989124759556089604029215539397744642887727951622306124647793088265423574801071780915277401654871046826553570309898131083104309486675394151163167665828140370086686554764383397704275712504474922142296908062278760854440485881399571274756130190263751507387831188514410053710314183163474336751174923205317682583915034235450586022630586870277924322969161754595344045744739971171211920778991581218062470944155069472735140123455020462906778337817621419189014690880707981810067348593967972669348769652383220191082087313696579981377606214334560839130799199491618842615176620115163301336524026865060392172540343455286751808258010462905820836468110735183372975196145612252537135677118878425199402354396224247751737334535338915072628823213219610084406315154799859952158888471159978375100106259724395444290564783724282711276886130872971766745038778447060504981792632630112179328577963021341729058450693842312785744709828199036893333232252456587848649909717503202216728521499882775465830655901595843516185552054897826736135796279574933052201119161084208023699613890043993283506634518164076838998792241323064158867250047986219148727609138365553456717578454745567604129133224460955148312535361128714521074304363554789821369772009279301372617048908280393909998355740828980056130326328048784070258801908538773031881871273074613664205091087496124190176913449970774575283633978323156110356482124709035953681610393841375688337715782793829413546239162705760560227177983532110818251344199026772861049687035060733720893553086400814265991650872235972694624860483666589113039585075104744947269939264526460552266518924976453080721310935209623157608488311382603647916682468008414223588777410461155693227078879326874361283795757685381840746778209846776273672446911189165465543048479710421523977928920676389663589638356641805894421474539622623175326557972526814663117697801299371109824534052292709330039962951371443831951350573178805666396104212257787252801325283848330829972881825074988518314717684205642585248475129554534338676312935464407773405000721996838014052269594709199118955188405370077231658195210530473114914491375858791465623887194647984526528480268964713172715150104012602307121222879224688811363287433466723782055811179420272164792256537042244877632969701292769131500425202259810800999798855902356890432902314785387387240209474483853941778367943233256130938177205017343097962453249510339055541937311556781096005736046904087935062129874882405284974393964694658467774362370280141430030440166179011657976026979051136930909194130040439925056649562424683802034050894802900026376220057864055215622740155388028003468955917543127621861314760525568998950949893238347287908253998423463975791200470117076564797800856626474611921493201815268567633485843782147331176775382064248945809658200413472695716237038372077935659762005227802251822529632003253692765319844596583810375507928342527858259174564350062608434416311297019553754748518566666109082130176889791760811867452945298815710766128602140319019653862395629151313915405878496630720194218580207054805464477547695567872089601597179073617241406114197727650252901385992813531379709256036120684983888215192251813217998093335978213175107048380602194223577108994591747051824708603819575788002816155616116658533162847263728589024423372208724629332702835317492841004434726304179900869416928737222783808028826637801392053292867729280423656591256451489454928932008400609684183178390593490237620500022433912426191828329180108477069574155867364119280128349645820683311575462623391664181390619885224573436830677398361010464231646413313553235227375266445338203004095510321928897610402878825716543401817838874101554129489492109750777460955977152478691288112448292842571974688204885654909561576851286105935267802656143938335859217886735660059653009853654620642543463791062988857389831835436967921926477578037976099151997763156973019113881696777038313617431644537854570073193605219700151735410076686960130543727588160704998778936501742224661743819326919286242930106198425416346048533061312244441005381190421705295021020394928499328022918752088000318240833795363864223783182669354546763785703606403992213306997783815919525955558887819155273311550013170879490166772728426303449497471356587672814394265492052630061908000591094495621854521757908484182984669384194955881207470010603768356344103320545001615165724072012529860495889470797218342597016438475984865828098086905490367726146202153986362941637717930476272183136596809685002918031141079704311381186418491415869758498660224546492765131028727586293867040021300059517816358644077874811780652256850653071350734245894460268346208345803133921453542233875444863038607087278502777777508677629920222402710743245913400402892872090265865447356210842527192228663131418011220286876581195927271283513242150881645019120899669021973736772018155467098939927354219911627316526245069499200284852366347161921013531794460181932739607212488739815750393461817020822302795639335431676555278850293516327345947265795104011499734482377420658757303463602505161561392726898206604832108554232208407202400309137515825417460421057455961533919845890027397157437538022426415567778759307934804245360144550080463441240544089726593996633007997972592129223109419470783842041830759662553943244560963589541422566136737969285423713764749526337556977162602199226734913942723609178467619658720575970336763996591575636399342505878894376683014289164175738503388810078600218625038800881754282047678427259567196048406057121007965616492691699693920855774499424977562114141333324323795150936409664134080844752861415797124250850592580508106462051245722168848201979344115322991552482048598975130100755988479695867649524880279423231241980738873590666649649151139629244887105704564341997817437109316921664762069094056656347912220876673531620143957944457621663868466016550053394793158087747107647644547839610999272348900285145797974434466044051117604558617700843387605314800885367357021156503610454879928403753217591482018829939970865269064553815917395418408308262969421422960361926568803854599914531553195305193918345501858845493495578823746509856082129842400795180417637267312953711599532987137948096818664554688514436258350366624408525585930624414700201882122046421925917234593398961925790163177529238655519765624923716284656853893447270690882441102813258419107757550548159667543119569943978415163324068894070439266081121561861902530322071390646769773268368150661123769280024896835575713723112884258276892878231095678118996696977409489348724146614973972794941266107636940295823628303482422371763319971843239990398128493939858682724464605407169925940845181835718891094351264176846914779092252837837532395601947453490905510164233807811599663448262071415872381354203240493175757533707935096946134828527465137714683420562623632197172961999170866638304381504998872606717267657248389966739493478186405997311990052966003532994139326485263280930082210836770501971287076699002478130085130527296684406061016437823071913630704942204938341960095350999398713515879252197394280615135656431340816156888490174782485783660680040392675996290863093790311150672767194187688246283075188795068973905489798893999883626631762238054216550097343843607589214242046806810224873073877809478772352739016455743067898417558609780598011596558666081808783531930027125973791335895789733400876344311886148697683788112151087712667757231018332511139198516665079680964485325566384175831166949388592161416674567555538237860442445571263339667721462244674158690129562054565276810473636826097898649630056827907376919863156012916142569306478100698919702022653867416260304963399712736676795742895556631401488118461544582007593167883566826708991945569858024090677654274445079856845354905475878108274277202197966003820209978659519699449293354316949164917055441294482092967609251479903225889004953954995722993018062179262112407110162209578552704888605381928423608529570140657674221348313326026342177054373095357010890780730221354982636285288782655869156856346625947313258519565913846892446244583440227704967066534993872354752090977064881709000110639125571874068247047136722570921712228672111917253220469145969221561229752437455506882056173695494066627332526041370446290865446151044256007632917948614510692258879443748157789125088591113417223303156749738192086397220651352015828008698246876537375323344666978377328101114526195995886665010821688159759495666029035275833214937286435874599676476525820860555244733912117129797672981403798909728650697649203220992792404020662929795608333348370973437110383136407411648476005069852015674472277835899960842557884272473530611705160202186456818014842377128587661659119901186881409516094024580682619905112961121275457411927534638229399475349910748595614107959401047161296588915916567992554444225077969298705769705847914304011825454535611172427337139999943267212771932319339130006890262678523004204477598136728474379012867170965176478255946009076012677038666595545097404684858912713323990972933798358653508097267094853161645453079087157352995507516924250275201254820633988339034478284894862532638437039404450543436312024049568194850386290285693371915547792962898845325057659768207643446294689814524433420558044994658582375053659570536224403818429935935441506813507092057744497999051667690538020962176636560683578158732037923102676052862595077654529057952721042041385246156860576562821874755389025205785080074069337294298773746305792569937750402685661586616804076154221619388979463853633831125958244187970971954952240747959539519422976858251390076954836547899338635688061829056793407651975802467421791025033221696437760044128207799049032330812317611237997257214692833121847175212958011916642273935144376698375199845306457873664077738069965291870312319459500416451412022582697246981461488184628904987272836192381272041977916155713134479968757570339354019325461289360256544031228921782203409543443883693546040895445802479018084762970341979623021602945161124769165018600598116417274382667307289529784092440165695776572555572957613024253354790950676198191970142415166593574460395967361853255106100792443466532944181807012147646030124862963997533347247459834339008685160467240225216136263343752004066323425499308421418588260982094361574324084564710825443101883090772625857025112104655164462007203915374647393215292063379797098517074773038060536283898151196954606442017113929566885311883280626433431701717020517026485281318412516343924730717133554950605158671361101058050469783588061150722926127576939521408030298283970431417265709132950829112534317694308075468655132922242764990417404748134107636819495739774643796865183044465668398318484194824417605986382138378235313730452285949831010176224943940539018649427132324272489432022720850526670401611065492980272688629950320140783550068178326612442947337934708704036933947444883640146301430766548886919995190654063116647678194049730100375198570541672527647023085919922739984234149334998390978640343907692242729337668926604934944169471569715547059904217421925882575342592999565986426768451410612384687880654457917717504027762823606330079437584074366948131901830157091267666207989331700172020539549068640945149774097741094373452109428596847172702340645067100714287458635586867823699633907994488074376088353368203121137324451571040418642925879449637775145772351175866088174938782675387764130377951906050406476302680647426906879414474482693519539380970178496731946452891438922238632801012183431411809807504797024389919357272570527060547047281474647446208222454074714169406520696951676001055917701364897132278420170033566432055511462217933132322217119327373477715778865837696990791171131728353740193571986318244470476154481845770252344124845509681281166649709060432274718336680981167836515700468018768170956889324184407362310602566274757479697637472090635484029491734727487308120195052709637583607462545479352954234171272681981339902641902576337361165697385508744130241104699836432221001267728682180949890762368689263384417518856262832129659941213751796989052092475199878946684512057837358450431489084456881613840158803969872920098540862969471322598632313171273219428914135494323359122937242309660154616499698557962763275554577984454403223040904934659346663308857369596023285750180268502120007127142076555657726407983020729194806512936021776113609391135939353081217736284318944173962135545360500246138787960676040805316930025093441825713421613614440119152289530653007779053972003396628941794659641777983559253422287774656400034393526477351783515933055719947159812125038017559547577745951520713908433610011537904901507890705670881844574114508830512299700209969611309712189372853308359428809904927007467960128096971829283941281989605213233610705214431760149950199589535897183369078283138634236857956796563419293049769815209974528878312145973684607567476636060039687917435421385034895326295820544748769241330366118328689112778317546029127912955676007418733225542908244759673043008045896634533781987536994863350537722445159010541656658870698989013753888024327585151411858454353652987491572718865356408268327225110147009098986271677224152877689862267703698396995978281655794088825371837645374022181884118744813382879471964454937570020723469625336015922182028081797260491282924207267129800242376002246485008798898857231588422146946147491027891554652123059424861027260471269813241493814990176735748960941182680504771730131645894682345409075051861661015410701795541759759828042293862715551077779967459122466163847477146011175975982804229386271555107777996745912246616384747714601117597598280422938627155510777799674591224661638474771460111789648586772191861044175307319060399730981271821910672442441948147115278343039206536812214246550226930206567588127647543438557347426328154927705626600665467118487652072673356547316696621770698336458358268302077663377786474895873125521947859905262932469843638246857387232842777898399257375979040382852977873976846638096241754775914830964299155281451658037282442319575209277265826932305975246124505643557559140534014297675082443347466243985834376148793899641444025141130024688693719521578304486934438407345590866909464481382353532042192534791688998014391786232376017552145946542744591797476063616652401862061888475586487380583089379600294714755490167949590428156184287251585293982983632066919799567389478800199587980348283125992532975991050207350736266025424310513286294034955417639910947632944854290444810268915259589521457320122663991033216800068635048620073570348589610617902776607181677068179366318045382379191259561984388576095180289432157965212056576110939899154968840313775493935408569534499080090127038401726261801820466737959946829543697194232579220647470975895251070020377417194263893464967571542725040469387188357277563444876944595084986388776168355058849700286857269280542129179585813191422838038713728275528683064543331486880921516972378760137552798110459669882917779624109707091370378839304506450124598867858957886370910482165298115205833227808177991560826384334655419760315048884191986084840626490039958781693294270619622974531271365326944415146362569734275241608734402697978790021463626962620120377533883677549691572082415463924241350575749432317953795546323852419930894060511341098518780558840927355911671616701871181553505823660985691939227000646822883589944865752267148004631656752194201966183070345216392823182511277834283289541424721726008101478758030212294751534403712723321670865724341810804779578414426518997788601140202712329482376233826892096411116301103221754850809433535043407762834159300300053391341804464235262400380739510951370111585095347324822374380350893528935216587780976003257121283541953122550820412698760354189007713651108604718194108088431110742536391713898813597531932334651579864775046845758698939196311882411441543035704000826401267779538411066650964079049875221717226415649043495962670656328990457837601136851326246834602134845575646260777352188360216622168327326752466009077868093484338791981564661208248486780506442969584602102930453724633487602599622427009937073587107459968463323761050293787408079067362688314322240026342541834946497494337876425107862940494355970889509680133762402481909558113491329791361379976702061469804350149070673315063787624020662390702718327904802851482956061154740695997256194929668302102119305025062268263880896540629845561979338912841975881135820072574356168576772366593657751853637407687010082486727325827055947358759499152718354765991563039137857167298544040275171738826587384991774630988127769334111333640702276667861050716885045092417768179812507691095090914411583370303122408506723054581245437271259392013793712989504976889641046583485074819454011857702359172469012966511482150074342299282812227997873756699200712962845547283485924965768203078846795064702194730980149497744309949779104146628500906670090421960298663311030110011132782301805889845558966393460875372851907436002284230389621517161956418065627000999956013489692855739326265725163640020407998471412336038886746834087295761469762659715075739705145216740388083854201531984940935620834941808448216518439071864548579354119886526224032719177493852757822503822693597054005494545632486688166937021367054984886527552679637592542953115273943389962168015529068835137032902484582581507127636005483568596542941065170419630389669909871302275853459041651175097486133027113604353170371718416809873141819585031564870772149478854628003926277518456650430912603414221842304210133140285691502890354177509096542281408332982473259563282470188681318906977341224009824572047781021244257867941962179708245494715165738807912130559425579829365910185929521458891989736410574890894887746130638684259775642325268634634396779838391211928481559046325726844298069038018489373878662677601466755693021431752909926805769995789731762891660092351933832885941822434444837337458570622675049768273613929212565903885590939178962936286792195698567220771145167687115170363840099018030189287795668529739177054160961453069937591596227833917112798101298430027748909358748945398117353381576846139508418563804583298672849362869287801275472398663892413528204505780353885364847097327544925680094275596516029103457751245135941932152689509014544595241696113698064708110231533338827666229870284100724886605287603754043021857842964223163531335034068040278444147520082689003786354784156536368956731168839504335456317801016615510364384488614982713956079572913905790086466129824415228134778644226453349015863717448862610877742837337586277208196830696383180588110789389572837677830118699970089433656062457189838150176746551248089349447700083734530619482002243872523604954757117394662913618252446057626009488669025658132931135067443779323202503802054350185299498077810525998530448875507249312550651003885719082485478389932660286033739356873644557467569660119191601438807752987664394513579476071447098889327766053074116311530139110492328219311058809736704743234405890882856400267975943534642742107841490615409296240833879108156578990949881571269023662004328021528958961577522206062145798828404918233836573512543126936803798726868475523692007777213811796492400361590234577003494115340683355738248739131353919147581585276254133758998420361887955138073173462244771235853672790530083551436917470851610091475448224060922455757610398609663567882894550033360433372084655672516489462327278693098950945586309830114378782588321229906713291819397652202572455840081402413093213342095068969419077870202615357580218210512329081352831950915725992555006719879687514630234571315295363312886696129887510461508593563383915070262240450567951168869460511094662767237607237505288455533235047477489980158288045753005046091690215964523830382629210630322585173215675280891358488354854871241265327424716575220157935604338198464883776605527026552678470835601024356860883266117880977031360613779093609113087234077209618102390157853292035471271969105674794704414643312131439560967516626112894440503663881934028642048503807286098791982980487313349900484552194065734654155537801466230578392118511432796651242618604478370665694246510969746211106625572671764171963200006067946154444738300958784936312325235285189985719809160006814191918616838901518124804643471901284000707041173800540248415993671028492407559303963487240301375351991157511804441626152220088089789683333245220004404297312612251617655694246030207535958932402085289249243527073965651388572918316494763448810446032143908764832655167298762199973683709458549393433833258846205940157298446429786277862823329069044923276593292449912404613383396901524758560101968276123720343055108979231752867773878201326684509880718026820392202804849215743424256804673069717712187345608571520356706217008389369827536191719737107940739990603683952061279228549713860022565446739856276967564477699256300949570927013119192982495577576375085942369144906834763454604394437131867956302588382681792897579073867577438197352081312680685284194436531551097133568125748283469790178901431827752618088331363997360282959901000051972437701525586481910612361767641145832369347955064737525034060992789723071950827784970011960313162475551008728852173812918560876774785619606389351240925078580628668215537123624648969325920348921913067134717109977033736289595978350953252359827128964919871104481561301082918581273929221101792694864281968328624692921084643895996928816550769582289873372386157832942848807562193230957406308380891462836413811692922908323367569040678765357616396175426664593802436019747199540348365085688712885529242935186799465568445132086630207489953169878887983908989545654675923206058192261778837661222533547338637096772959302399118055662280926495004498775277334625217332638938949491465403821243218073615845361140460215552597536672022391988105028468107377043772329312159753622750515723876452943634838791352898878790582155011110423358451831022761133433580478971414977152515778984829893616449182897931779032646722874941867545326918364087982826661910595314252866309267070173240595070622738667057928733882718495187976068532280614808818646593287994277974612452954095267124969044104613107390919211239694068351844696993047168661742405051922297675298529668486734836811625766352554575224403184392246233255616522514104235923273201888336360890136050472633749620582370618484689529986526746636302195871613693678672483535610994037381399698900440515388959039103282794572815113975877627474453184293053661363795169817274605208854646923204175911435001350395075348489615692495090020755605575438417029014607818186992492393911943824110025705182138823009803545858781164004553031127717926661474377483736623746020207353840348230968767789362305616789380673178566313716353870471587401728905272491252082716893043739822965883776322658705827681347353299478638582774381654779360985613156779341800020147580424559377378303603956313491357634013503034840739927578659534391275516020753086523653852745037888597124866716500398774192653741450111604950710018649301535827573069553026842287584834032104779305348522095490792573563977027573732045507991015818436798097731303516449897806847700924124658901717949986390152345242314464073314623970454745260504301874212994382125706449150735469297093206380290377591188187390157910382794684926286064935577057927535699984474878454484558005063460310194327718272203125080977502995191976880246589639811415337135068436100113109962982510923400768862681738142858204141106078957011495068943086279652602887953539761168458073043529965627122092196855252288491697344907527823409037934366431756882408319294978354314731449399148449444634289657179655332850400946759399635949907338642665621874810726324787243040629049467920253848591539802660863028206837106819258636756161674883003149343012810529959988806188629972368964165204568060779510100917746573081454691925813273129673025592058716565880420339131539744159172871948757014262221471927891106602750761289442732242913669946659270657251041936310238598175490798699438924388900893934634121382813621947180798111450300020433901579204393125539951922260908899971256309233027142912501440398187050042025960878087081358686649017724447369521944670349065022384096930518259399680394210385832160164007694778919242121489543593744009993796437285613036289431167437089467447379716761820864159316835618424004845427076218560664395978802142164316651900960728174606413768465552889186181960348825852074845556619089693189055115991626908725698821763884637459550647377739141580667407665009778341493484216184403838831093760153938893631063154871345972529048370368834150168607515857990254115319535607077038149712274469609689409530526009808174927009219332674213887448974859582609816278112393479338277056197406663789713662110111506206417832730909438642104434100156848794624469675999352470493084992705731112482397592335989864528277041548277629085165037960815057835098230275874215779597790045920608880043548743473529828147036766578453926047834167045941769174894680825377283621606685686911351945238338908918911109127985145874140765028525906720911115279925914212843554397575899852207175909946241446928463268626340215826602498292115869480107657666054916190877864527586671942368344343143419381233500212897771314250005292249716731077710017168511888229988920847294675210622424553471607991208322047262682159688664508167350961643933992447751146236967030823020942646253674913470340742458766524088261910336251980464113711612273934979644756701454581288427010677196263293691784822862791205618498280909007323886154644578857828584097096047744112659161889517766291662527168721718762516513631708979617646484309698655020383274990369013956616772453347773594284105079107689335238793554981878467812308125958197651326354256394023461702890360708166424177501440151789871339407195406803684014377753823023274168651273314467179277067541525937370934213197597040931481491994889872286782267469651931566305291459571361839749552474801943392794936563511497990843542657131020197144345952011778759458037507874625180499505221398981478459503317862578489997751009183675879921922826055038028507810017854415807312470071381244813199018918287915172974806315354184027249731986676050304698921400122077849186541670628894614373987362169714665740339540354657042071325868663336279283212156148810545073264464398983800241706849219912974800942850816694356492957834344123652616984823031940948633410216606988284623109833870141892807820737483205430749541642896324813950945589933704491826186642654150819005827072358841898280998019151035177063881643966427934704377364802695785368103679866531939037687765826608503687181035728366643365057717227866672879309080997221922188813671309348050105257264157381340641178162104806787143023891668115663107287605369457537784780650585029952691170323330371671960112352344407475268128928355868286840263257160569745001944449517018066181081906441054552466219974605510837665828858129814451526749038022695678115007030523761609761607516474358393341040779805577229347759913433136721597866105507342278371167761831994859302758572613970586584709868667953396094629188678055717113687861007855007438818571064126920509669914928942274974254510850292688489395447482286306749939427340324868374491455647358303787886059847569183700454233012866275857927095106789690533359734293614200328824671488045835314413863079762659740489308711076885123230786079342451220171545580184169216407608957713287564519943138023272075005128755637620339753300605391520811588010542944317855589339824635645831046924158286611788490100463414076094998214465414603928375102473505894407349196495403702722453457220124463687003138483398423091832402490157951865933785992829470159857959196859838685981944905441298097484199553689636996354717206181813585525926232995399169375917092428613664218558467667720623054441488582625370532082454374482290302780270657510380017108817832818651459865583258719554645852534197577697821772923612071333641240281634970014373150088552712917589196082897388980202176082104877545001333613191713197620856414914813796406630406540354290848751446093045428797888157247969800565660799594388364820283160338946679044511365530731423327605787108207926760439535354664225367818502682922884743863930395837400973858701426510863446204705175847605499045727257503150850585856819746842929041706716614133188504384698079735601777104811768366410779396794362026848191177314824089976925551288263145278012643813913756963948911084647998499767790629954544951573178700804071248028333711170264272301544239136020661853406307113082815207497537193146840097106225037195921638658242822894083649272628245596051552523505912078414670760567587367336189411174276167915553017199436756847928532673226578045593297864425666944433892545689917122537729840428963254728255533679890350772231031642222559368662240293289707900774962130957134962928964929387875975644766633100100120853804913657780486947710046538421970875553324956543022798404918623196790625317699314735845280277782058867692232477965323935598599179926338256860793129715306595539487832777388807136981497464050662517514314106466975480788825062108036930301495236024766871701778304594493982135466681201891555895109323779106639743217171528610129007333518011331114135668468007910399622453150596207162070402855157026143358103007802778165023775172009678562401690788151274926741016063023195786733309667419533263179154869008772125173072357898092522530225632265419023399141038030993435384580270680334442716519277258234253690592492756444995993189337302024156133921728688211168862565852709987290601656571088073894875836169521706209563268246090399618378897872018226870237853568344181001214934617230676752863599011280889100896473779245979568825007398502380775095912981555306692489535737276413238566846781778140576387723487604032512946764713594366594134553106314069585626346336897310651638074355343126100690967453765014405198118349235318871940799399909553892895779875047727780327084660936154885596579969702595623280284617474416482632048724128298949478102988228377461856185823233466718586883495818421919438832220412925662182136162779449004102238014024216582366043639132312295443465694982722206790823288070241513735241623122747757303256124704268544338532247012797778599783518199543021487594778160761885270838202084834997471275528202579694699665538193959379828961377844300795301854003696616611576286812079579716153560662027357626724712099348262911458725856610030202616546006848143871460837279792596145993239211017039733769873495439047451665419547377441161880916700728524973472353480092459473691441023228343634384103720771001346205794664067075309824085550357688699700784814367551040154533652214918883832021327917374952250859104094126462615872664616191769631733141663374449384885148595135867901870079581736475850407096563444530063108651340154568645460985779376822846423033101732799271214469555313966505481727640197265790621953881325350963250947445989891087859016969225819860487325161631487225332086811525038778390309210963973140870146326277487361999251603690351640181322863841015778913834548208695394911416541921224410372588235373528329662254040539599551254188046955347016927965818084221691146779495770903181471995224200489058855937464416153490934682109527381906924934012585401621298388823606711299047278538251093221267600863567887299111060647443854063130702691579329114716835748930860734176203484242255797432510010038643688160552466827732801481669787349633209963417237792378830351660548716717928740011191447262456712470024976224582240273977070270235032377124169131491308448027264009944972595720923593023069927300052249073651419777811827203052590605053664793101848708283976243597654102454719021296462440721878685429130719911560221343598109261278099244929883532142115168804430524223133517203668759109206121817157215013230491503852431276016026780710277905987836302849099513323332565542428323312697082604828410911646293553079701347159992856426889889700767442334648965004511482489448843811905203162023956125155080114293455938402258904452354916067705752641775197360904402044833678818915689702778936604499831675503334609974345390667968123798331363984458622049182698598018506280836505817585632828672397021647037926115754368783456640465906078885859361572607337647947362839418949283576050483364494011349865491208210048132550683756281970256869699549187621976397204502790044667563951193761315600645448648552507497994208500289544449953357450468366227668720824831641359948030706016118223091561752595284900289952934287376173510267424188159371599489096979222577214401390912722461788838743608051967515303147911414335732073658590493042773379844712919544464543044009597518309741823376186337811529128015178663600901647697454495895732314679554993893375139495643626014549592646737347216021885313265446860088537207722134527510310595262530711102355378856916499591169220838887707805173543839856786701509637808868647575766982532354044245428400882687477770328538261997625425819929342059121797780827787051185845230897298563876865112750727634100359941466012227948957495592036099460378048483855259599108171236282744204017849802110317627877887503036302263616097666758010603955547997874569981579733423399742444758845313933453664591755258134755046344267161094890817996895922670464402169176805100590718447352631235416442486477743878776517385347897501402520406932991135325561481360435329683129289912953561529040275913176773412777046365308522132575486307933547882996383406999371515422494380882406473326312335046138821594795169175925450984809791108923311377895396640746083457300976511706075241436288346609180038490635692685329640055165359978579130606640474557190848662504146276335720442508766033207641200276837147202583957757254830817635228170657759415327083266255391096897305850456225936898498975622702158265265280620025184416489819196909558212078989726717646133800839566487722019320463671881723954704930209279866104118469570486847004963864125953067376666038942176189387542375224018745815972284425229079773722925510180886739908398854921449138635625388637891615918884240512998193651713692591695779199884949414977115194315755826307059948575863534749639756855970386267805400720089745025270519397969812529688311916459045209756305283373094860238329627213225690073767533911168294719812770574262437522137582503200873637532046450005738917934659235577083622041452850139079464067246673601827537985447814076921256085694481054166195675264750745239025451705310940662636682474575734607040652757535777432010239133411381357750332256114390097609946952139817702841461088413608565918393299393135808195270706927092760772171777909876385463446024051690499497747577482873009339789406414736945719850482990513484286707099150933044579663919535589147801094434509827017367724097904948059288384657526908214068409367522488842466125605269509780101260577282287359937984997704573176117586941984674742904864012319967446222686363326007641107029348897236012621498459684160318742453158435205489185904535694196446063337988493153116954758361115749766774070315448057897817050457319225881549431143902579345049989550037270423618264568041589970013697709364618431829666069073135476364512034680880448544639479881054680984967013179549428668138827658444650585179771236814267458547557138229072663460316438137501465429194535993436082062827907253188657517973424574661225027443019092242962776936653158716809444242786249840749466556352680450276843578211362734069435616425153792322466645823710793214590444611109221070397604565101012869760593556579799723039393868396179918986917991593869470863242416010161030988737854395677314829723489659476714272134128400437621066020055056620233395195755864512830241771428237157769328767978452275710423728172468445461622447270366618640546724925014467120456547835726921447053879805427443650665491900369785230070372006141837257113091116810217228672125895948574600435329503311469579656490062446226953912511252868037826375208346201091939205299406735316501758378263276410048994464890719508214784102083666996441555489973118544459531232788198843519364669075619174436387489862636276503027206860925188097236088479380162529503922552102831859119520952160308797092230631824304905136125178526678309896484076261871121193856452332588015635845663256815365974140063516653852783302799332761818731642928434366351615663255280877405476696700018814831299264949756061744994556048405651692066062944190747116474057556195518345387406404646634465233320351037784476758856666609017287520982244711564504556724311091957346662677919503511119124849140645554352577254965663926785221917623854753819710831983228483946922294953737493172577554258096479498589102686359453576135514660375139149684512296745547842471779306074999924871503917371133105984182400457742575917866712195051742896119673898889045793126077836316129782569411368450788843444978664044958957817797753763317503868656921432845659076387703508545492288177459213464479036409671937884800156599085262761750977394016437406423215378834130050262017131975912486458792300685002533813548915131998471093397988436544604827289154971076037317445126097171706215491523093558078456283921799509366499044096091569942149387112429146631205469132238606335268740464186976497513460031842898257475120258445983103982014060948468707691618383086238789106146824197283200526150385110681990583517695632365696941423626101521553817250369391988202927136854440106294367264512033344244808295285077865022358866847987292336334526758265461364764488099277633165502130074494529895433961752661174901691213005810955424491226738528512234383695983978048397524645101205882674283063999608907655734436344801490488298357189816409645101192898539876088229692264354208244568412368752332589778385243845422759205676092607958467279386639764013337529817410380083971366987501792518889005096162725302906385122448156294734866718079216757439502335418797146370341359507068879603101501646447422392328672923717256538429014706590688672940694842542715905205340933901432108131385458259704348580931485506339418705437548201917022688231751090132941361718770058091133457961642203012598022043107382966864907037504453868442844087909458071383896209544920759961553665571306844046952712994878309713450788275724844899897349703962246511049877700417937126319866550424826450427132291612309324616413533039167689451483585692702166031906568999303527296694254093298585047142854083867108892734431087363457002691119243249637729822940094402075202466206644738391720442575483401453940803546273409990964069072075622907374684131198586578798855914252147080351784967358936933535007544672324613125258268704637563439646390594790703928961259764866705690718158460299360428566416523782711376077456210903179808657173199934312817969129429620455695201243315446083595765650783244672112585007760996890714299062146372250183703199851692200508139102053789839156229925006468735679795406627829502247459266561768688629321162565605008454294559032917372009820858817353746878318206447022686127649760906343394156649026426219449599972627879887420686537748400124027120252747334436166813022720475458702704640986434675736414944556040180469025649085325167271670951279005239342170274303288614132330961696475560201838621599787236096212275704210996873700071225799429518696300412954188779628724093278461798048647907699890577733886055838249114228316374869287853814814314622428398496233785577350860511010509261293230994924741892675131618818620753257403868480696490469827999122161138665663820326019135968402515649247906443983330031807895236961651840561410338434799376178182100474351909070654806403205691171664322099215471240461694247104315222205104885366382704720835222072281792307724378621462986066830039443184031897119593875880719811504839775086249284520537660993570351138469597842959544064857515050620849712281233606395414804523183037590392304193129358047025322396391151279375936015140870535146062989951940745755354886861982269324695538210219472021248849044263655395305394353300405061335996832016669879477207952586691433189909211865226058496088149626836546723498404814381094319857403683774663709365806373392945879466445168261148333459808948132301423449736300081770030290154167401795744361620184220760535776542316284564276440937556897155378728695987224574072558628891627542274001393924890937205554561607842415395618839990558247974029707414788143572707914922104355774546093490057376815968281968019771590645796605754942541814453299247981996657119645518856556568121513349098046580376847618266013737175683727413061704644380829243916537132963826165307231060682333889999510255307327441209426994137920110104663208749715410587445826115995906877240942869787594626942988054778607764580052294075703084063851604360593125556585533123116554638655410300726993447731181690786628011955322480995617127881556393519012560771128846947322636357783025965642326973847446967479381719183498441201028423519219594794118886452077960231343063217174354069248862375881350795013019542125685389606693125427932944450460414399751105930683075898666312089709178673814431062673285729135247335737334139964981622560564197417879844156021330123029600421489114784857526438625181429619136898382227494155863957874082378090383414087929764451188880233720098864012236174176430506370381076927834118901729401329462385639308531532244222768818571728893885168650075904844157097366365393941138141433007084179831172343974321289826930882817908454608352276168839236706701819377906387518688982678985926122487707255370774680909173812195568154246781758249863590845775282210873370947100534470431626453265098754187048260408504943289449671151155640450375992218315315062189417680797400402678059163735949230580218910561624590130191307342309220118774890541763475234787205095750830124580097608944902014228321517081786382971517875410232779377854072683639518037227273990724613281166726202385362958044768744894558935561294166787711514445952150728011245289783898892439805792611339511716337272476322035613413766554936091076077542886394153750911283550953891017569927348105802052447498860656941406880598157145534961021164041299207119157382239649687900615771795957511675590848192969043559344490289369648619008661184836408445470922988082018696435010241658928067289346189212883998058867547233822662874674898276007213969179081994180723645143829894301735530322511478911846799356943769256545351140882462644178781754058520462752091194551715071532232290031783786392997264579504136224307388747429588420386537963008878284974910153671404487270605223983274654434529356528076960477221503024060329960820144287406646309024369558220175148190212769591948548065002515966276672115626582703870721458114744697943698506765768823503506327908552602752457845213931189712195956022277801052170563123963444611270021258672357370900902467406949257666965304797371427626570535957448790876199299797549154709567456866266693317816026949924563786133450401286482682564546781442573431384860066826797672708278086896403276259416788405714594114804629164881285200102610561984527854316767343019418002873928094615194818546866310990795150448813365012546122141354279122839130369472625897800273316800303122198079222723393023339699024932381363017812136011313683103886773390012252524103762883920011468747397830196815162344845844170847115405630671221502524006009566845020996544235778554788006584453063354586519748517271104686923708210374238344516214463591642683264697674851191611783934195142162634345728069393696716440345231117981331367472558103023300335647091931311841549327154187214539550089621519955776480953224728170568462835256462754305762000017214990289645138438331171165858417764510618582508210472454698908552605715433473640776605980218446223023035764928698353547722866911672550929264234953591129778086706764009141760472511018422954289469724271931395782511177137364661288610993859615446366855566406324240965511527124487408138633958403290683016637505159378894470032446794442050062323805678075861405161794915675878485475379803613320458867201313746842227773933830101592787382664035207938573727331878722116006978868491056887673735468207179344205169186912073390602304035953144024848275524988496686390561518129135491333068919805095831954745243476885587738310414344539933978264379056007932577903268772389335970408929063798623591326882769120482353226853311130949276614545789111470718167829879548739779664939334049995804451114426378780550061812019428565801151160496597514709360848244784071510165688191515476308537089917774950031546779199405543023845556843295871228070339303655080520359026902225743269417733783302077850881645997749984355147030418993109278863628555954986664521514608322432702939865354711714611209786446464432561800235200048641692809012519555879677770712014158540324292727965139982142625427852383618248974400837646571991833956603365094970785232889745881493347730994863973831820193244687919192275981928705919005907540673571852348118683464347785054157828224490798584087005861205284471633587772330438082709137396889505684555352326182211102373127136881420583983854747049000536093865761777730487830785597217538818617272005256836873008672176915441262877549503239222116487221786152262091124259237746705501612558235461544208744584214964776025595727402918471645315888525882788428685588949650842703942989935442747557848840925342436759646126543810920255629982051541480193747004803579667745874100884131811872582385785448488816682771330320509148049902706338669469099351248792271005092774614149529146261051764859906929923817599024416187949702356571809514425854995765179296210567446002214133673754807986035969594685698337977267285287592506044418464357782403623776670298728323706045274425550681518095558886835891475330457011692173081904136821961979244460426499343848452732374619113711082446433501694801550253284184628733492266134568944139002470663355470788141605485679668656432669813031783621646465882083005036445481292288496446164101250237576828218945511845805957320909394620648677509380243791289601800827940474817422063327914712842095137010561943271762928685790909493218055568979066286289154737548673198693738466419585618899770827990016924649425190347377703988630149201118352837232791996507771558163406176196984072223186782701235403499438429168556505151743837735392032256115992975687965574856371399849841889818723863447747735515013535079191081808269895360125247825470432140977846932329438014725512584376086099814602199698631548473576292080996702231230779999766892614937094813131176126725029020251125017695385831757933248237475871601959893096899542945715238027789223568504876418241391023269149165574444845124608305145787417507387176744173551101307645537897887522221852058613301075912720128415816099012918291185666715739299809291799149161000466033329225776086756566635965341818542256059884318442721810942318109063106059677332784039505960669772102777361411827206434298538442465877284718517883633752819325425830054996146148373504141918616198629106706387911951762050556410548148530782364372016539996520950423890411674976436029024341956762244685142089456568032327777818280402353171727161613847452643425617030040388071688888421475795728132416306939771904869321017748493439522088977977460641321606591235428730663498564951384299151193754156826880464034407400319164875242281289908496049108875248189766295443946375362198306085302662976776229728237088410640306798395704550798642556241329569706903126069372722704973858490635481194665353366026431535545612762002245436501409287070103845024942299682469894819311063805848963834966842315468958573941781004780274310243436170639373226671414047645055320685254527772713379959897191293351095335218376237814482821238983318392269540362944194447793933862947820856539160276865474221602197454162503479486573308748696362146050796657211558568264712564019832368722180162737027408546123315314874653193936261343872784984098267899861969122026697545901203347487171527203423784853201997739410893991832399353436083831944835040717016050019719407955692916944124826846029055460248055663749256769023585654963056305499094738338682002253272751014765382015718968917643861760384669147127050209010166793143538898179926138949582056843152542717333984584967784219554228496937753821419875398362804151385327095150706778317618492686749245187887825652388078755933987418992394106466084284159517680029189967446045623476841746284361490524099614609132990782507767172994873799300497060952190291591878815655029486924994826388639682384956086850057999208125916980957625006325227429775722353244646312991916029527828387808637437948487816007986691844944952033890911819968400143601937093305472219047178616199521109291127917001976672020216396691842224134953526405415034347849373009481075000992303709153882015508200330120076040367400475028238121723533105469837101009657554881166142817419714224111146539649408810687135316799674897427937226351358103899882545160553672510213641692900321073122343007239955691422524643012627356668178228590169033995255886470851754284397934232749253399892584039232079835993252157435842523037436661389938632000800645747508807093799846274709665708094369299361070027345381568480143981800226497961654983924247214953855166490613388699479448764070625660160551717891131051578981248406744154043863432180804960357763693369650750249675465965351715008599750764000455954263701196268335042396940932473254073217465365771218978633545568241703910378182426567244157818438494538256203497811749471046589508232140820478205399922170830963792471914357052689273788296301720459841639676597939924684512021673155759406108501108401501493958481324314326483170638352293389835732862962500645396532323409016634553497614539777543545510180022729878166610572423124306235039912669272559398387044682244056902175272089059731403171949939375760651704430817843584689023226409067025582563156527103991987874499600566965311694201789033319307912876404500245292607775735544830851499121604626040796635700429294141521078517939512489293113108723403687549333211997169415582242253234526991651484270807496498243209108709130271922073605282398890333776482440248216436744892838932717872463012952137775840656766503422548447952734389296263521706924829572233723726052121486755901243751068863616862068481075325255190808700823937566799300052564004105686873213457742011004302127479640462677207960288680754533284461163963670296167636106120956409159039226759772561277082336910179793240276009477905049390594990355097623285524569201492338038955511453694537989642439077531543866107961725493579716448034461266623538041455573676426251445905719258022229306403304943177399110774599480518484341690301247105284001145301170159264176031004668798434006763661357541593810739490233845959978566490063310019258076179659274890217308818654512491561008456492191733984184936400789242534005288512740978260728184499362334439677783416430328617074655574470958871066122859798438328988827786089949825934445706255208466693362073645613299517534649909660709934312563597490296567184680351887876443719273432284967575348743806058683938732087107123411960330893060235219350237964753015141593728621182295259067018575855904869810336131061953704410772086023300066943559822989972003894205071241309633012473989889865016134460416369764129918551398564133480244010903820420980509818816370765602535422885206425047489586808991794668611719325033248230241059805584766380455213789323057235020097155747602593772076776087468148213452253163020878882398535566840846201887763338893823940059693823475558119660440536601708515543140928633570921594481160175329658341333471773027110597090517811589017086602990160512479450702430123230670262179701141510682002268139997507258321303561667949126100542012864532298006726890009482097075854102198848852954596019747306361328429698553852265238161308896659145091248868131259535362960576603197504295041188439397247053605789479862831714003968480764211909414275681202732454233195931119523950562906226110099643989483816464487458668307548577853287408199375727485219741371809429677774117222393641356033211909334407556787838113045199845148628980006084838694206218527192801877804248668080299512897034732944631709460038595125453386835579689058465172300670448889684061086304061213515520387421392844962022257546585820866986406049865542588590814553099484349384273384217864505139854273974290958570085614625618349527002281417325367653979469127529747013170063835415965446342449683526350594853447447210780561078108296494264788100259793187756392390432917853276342037522975657527434082950845479470152452608993138857831239117512692255667572885133404397696254039311749337139944952935680106037969445956859752498772673480790732676182452335521216214968023449292542886551457337565576594555709239533428142462903172781540399834155641983771801898211247608559555189995062073007140345208155033298149750702442677264360338737539731484313740709266544922952042319900734594639311996535056807332981486584110919944394627232845367711284847362246063313602859105963523719387163459869636443906854053223193152413546932487576730463381703029447983522602051814944458504961203269092337527162355133526234320721943009358815033935989744933526957874572783140396703969100170734149325310220632630169252370180120244226884929098195551171956120838155014485836571665102690866487173238190148609924699131546082001992705047305688761418932981083102352648281081024854502208757221283441343794849997279202583543417204425984693274091417821439492801799745659873698287428268267484421213715468232751128534165237031653070432582833721123713760969593993754953622322221974659619332529074042487602513819524269739101756371975343004479617825043115331506758256273534347625253914251527570478784376788524187196634624199270080257610839274976226365490018653206454995155802908398513272627321967284783025385221904792786893895387803686993188466031043633524373271546998988111864436701140284262026150473882358997472814933432570654746370224518872890612550302737919026403965774176068989769834566464705204716359214483070995843064717275076337180207145974456525141885050371637738189029696852844092581931744100555760898502923271016008982572238173945436985296547694901873840464656437307131959011407613174282203883313602970852614512349073071476245340502454237636666855757401206040598869556301144154431416969860740322078860031327905539178696741635552402507676530856322427378471497460377840646093468129918719028927597630701598408877817451926901476910300302349794585110001808866062162868011109151161040983273088089954337551187183173786558776487358854490366879074169182538313306362338205820154885449827883821742437580549238159729640619631058215167091903263187309338138501130913327709303425112210972155056104913870504262198052602476116075059710379436647715293534917186125066116367383304995648787793656979112931958782777740601075333724327900097324072560703888008711373096596344570960411750894447911916217455169709648447620461741281545361284226015513015895258628069570639244435478023905168613385498619266567622760358234985569192248906901164598660961567955415492157581283540920253931708073781465078832035266513457070655368569928112426567084480177864614974045492118431227621845224410884715075701908834950224375698850494542410572662460945832095962572872030994776540107398558069966198019534500506514501054924018861089134173060759238439461246569861605609094541772907364009391321956768364333299619997965424348026569406836986706175874131676505060271358825744337072164588195226133970545205234412809231730650519899545028585383522873787286982917275807824209826106060901509252110908989964389297862943014111400676287749920781723794746209168998389618948630773060274910267038839433524742434212367121770246101160240611185716870508244049162389434350470250813649155155104327250747941024737478192265205933551362553018121964249924882129926017740801037198842125474472160296950027742685077521758669179938013625842241739856076699165432757061230452867280707631894705895440618842131571380033984874086809414461845854230344951448521053991248932455486659305335584578277144237743385339208241277632165967538326650643063880695569156202622259469414290079987698344209146999897956832667090414139806863332515652569687878992257432796139643702654314463933379900081985753079788176133743609483928302233803279732038653646242498055114022469226478931592944918040382983649034888638697564414855608560537177228737148228236864278113657203947496906937239915610036828075141178473782562212775995916775814038532986888513655232313938431742258535628070191544007763016347647781261324380248421865669855274007641051190109545289838256348407045580809052214769722042873822020644511165580202158137220466347663335175617990500897780885600932081454176443903235241939731547218920920202474270405857913543792600976807636298756614782644338926121213456594456801042227616524183764018673453391488079001363603528432174780401683146726188067936493046865873646311483282698049202278762554540178509177497728294675692935451666098641948145836444789096038304582853698956080665666190360310045304720024226393881572068674690061929873082248490016816348921255433754447580388736158658859248597558742783859992954170991722511534025422229692234366177781929653313496747757220978430193818445059850750805649483189679220583434147890510257617490997582001234724410285079412318437601471421378295110218735899391708168680559881335469913794537831377114135491971243465810931127833266217592227589369934770498435251921073517573702005457345130587313221438462087602775184053489371323766290711205526949053003888228042048082108519287610767728145489279440322723628412479431926441924307968137038294820058697420150132353198720519920353877314215882211485974318238790989199325393415037876899596958043272517776898661258893954420139171306418862951066526896062414520844803403474113314880043138647317158446815754836531670512601746640760728095967213272942245361042667928094697735836383498228114766916959695573277028279120997926086381701765421015111581109268328748595064626236299259249694378182229169234325485361604152514206369252147745980941988926814776443905376111917463026074170414492241949800170623866816946607989247516971850009428744446624100586380355863065063609572709797349307096488907606301907923346170197456656248712884986738267854626894512094622905482754233025173213282785316517586934054111845715104834632832008101152525413119367954561261216103197427832103879548253917431409877065257006037671968383047869291003267483442066840667351508858609166297657227799692600386827334964187583321180809168618517134591156850893149404481996107250233789677989918872582686705377574351246508137986281348350664313246627092452365469835174070426513698824143308835526319454754253248458840939937846318673381336610310058114645515187730501413081566601806113226835296397114624010498314846460439520061637354258469826052125453859150536462014165930615241377433037246441039759850015689210279093786786031851767240469599157234052900381676072424770169781521486151947462705461422112569127225381590502039583051468585003602420054909455026826185095875426210973991322095029548958289174232981343154069257570588015736545351789274152712894131431826947690258885478659919689883599904388542274846947311875197488771215019159190888581326376998121590808969182335059079714874613336803970635003695553942259073453693326389696162384254104794629483793746381324612408253069026914650215171965524256788471272297526679202803841296615750218468110886939399252687943950326728700875818861049300859750196928095204823757138945438844241621756626373518033643277401734125942745582026754402788121409286880412030002270631808259318676648149044725799446704594238281114878611771247129940234353193476389778948446256041745478020529553081502542980157090392382147214574805502696844438096038016443726195300440399081842658748795326360174773439634741333029275581820008464886098183291707862124370345940428150160414770581856441322231887793921639889612736992400225160535128293723655737319319389834175384397083090358533308571836931136503700819056545043298422099381490045445400448618221405506052871683134142627896441695333980296879517536667847550967256739077347181693399759001189891113962465206160718856491192664269401606959061610443780149866699828433246525760882571010899195911118083503036507974281230709395198402548016944626205923636351071990148156774400012313072541025605601593168405328169973390707153720880901326541540840848694648513376227482849916127474705322255057918337197829980217375914243447148663438084599101392554944659667423730119121569104847330698050817129727313806629229678493165707003108305567889791232981303751031746783401120813530914660733675118762187223247896837038279501239544495396758853738446641347202470015885201761312154814372133479265672244691795625863300306994583628910381264895233888076384381880921180739792768314123086880946917176552671971341129027158146752944276252132950154301153369038922138410133788327539359202090519420939389794128938076595308702735507730422191143004325668462407228903402171151273168905339467851873822784851582247048412773926828056517260376445844006828466737354482592496916214239033889318117011389131501922285410738181452292592185148575252476183848077583829866667556762888310086015263589358635712742177728951544583129347098008471782896727341290370760715970897838993427926255738188956319405072752087325999456545608586855358263133708493406413934913749179077218228531160094982703667927892358788431608491838953362361576576833422289592702393915386811958152996066452081886184389697200189356785489494221651236101718473760460603829616442733117304025869985215372164775363206607206123292932396240780047428067808124542992795093505143976021192911303780217039508295099069944393911955003407215741480177592299719328271630397133938003492679133416508911394642479661320947250898195723750491133129166984273711489586628649336133970303624716301283210070841520262768996306818969526666944051675113293786905003412004284173942954144584447541246771850871030194976373064645661863494065661595559022203881357136176823477846310988547480314160751831305440342811270350719599014203058814923214884129356944529643170313190357793773919016569125771780698512180115203637847182328949534446551462678468202630396663019906922610623240862574936674402658139719248013316060412804309403011781839533845697347778755496505226719892039806465088098765959904026835458290840488743590121024857071905695585182299648163245701570374833507162561778784026024807954364314277409752046296007705952321593783926560584763183164539460869129139029707529324575283112206316530779455997093588019101795478468222029813794967339008709934835236592521531747809149296359576803641645315741984082949704240390235340265922135259853080332431785857740605690039517496624783114615470747101524109270990190694605559239683056148077265373998499618880204526136957223089073682258369725346732930434907962315838626126344424086314103499740365508692160500462809793942595737077522421277559627928584177313693090364594363844939823392918548955367647356087898997197780703866209274631851985085192685262453825870249573805010993816323870820228564474021890350370205158682457112552023153087809016194370538717681644829394491186589768122858228286305889861029605283254438604524159887904370477377371368502135393822653949023421710889783710051749817597020686825702725971239990477731332089067421121200821839867778705656294246938200423781349130666302875875209256477327316746369664746257061200346715640903478963148186821345980612729682565455767498591972867379753810674217385801948693932923297854556100790005472533051670818549550829573316453038966728057387828058258833867439567213201612236427190239990318506978094847298037705172000913056269672052843166496490463110313400903781521749243406714466245262478844479703267080920479660215253622977798413035291824916677547333861097577175208925700627095398419276724681021271464465163618290386785573635507001183672415428954047748343284348374756430452744506808442943288003263534813266047601721422694003496285639702572562837188280089547602386663065497470453498437664038598946458144805319509199259451498233613653904412316740712966326187042419884078656034688944098073565111719088416213133703832847527158014023337408746055090197337083604720090201650957663760378637218832003863900863187002521159432783932847926470562069061394036488309455202394372760011556448767844754083561603998488513772923034323530097939678336983009127779979497170462853141004353493338226748496581775235312719601590617282846213714010305334392027034513019491070344617456577179219132414373649693969048965732825756691327645310834456871594499005092022404757994214851413924545725326078271647130569958137234896227241015135814633935985739176240573446271578414318958068767448800803490104731595819072414641729115982896970259377776750067320383367599920898141119898575770545690088066735105347037213293489055455497205353010557324696610538066099500702754752262676383165272527915483314536193916719551030251519417178123912448276111453221886677717673417406452378993015037104211023223884776937314255347983888883741324601694849452299051071089558793216205632208515653007407950559249445974351034919044113379156636661772461772342505771351604426630343126850879654103973473927452905140551241030298362589336235834267865532047780753909090946014043806764382911478302964651821538618920140071149455186269299132473757299220611525247829166545756956638325114786725256097578274064438046070715424617738733768071930679719130310725974717095148873747469503491520242571874386619420798287288310571028157936402714634532798473494139024208229738660143735485609080295713469226533118264067965254434989996978086293470385536157001037969986461806802893285729725290142829019704050111709396040179940077279073005957406453529014282901970405011170939604017994007727907300595740645352901428290197040501117093960401799400772790730059574064535923916663881144597641874269200937829705225640556982994851451162539665867422363083935081487782114697145156264218397232451972563939261864816182977438532410643492525416862643522704313723804662598556860369392975077940069921092726870253264588061666922557296352244204858671812045093427166631890519262450149084600688052235094443465827402258290512950304979961401660772556448746146270978688973256721019292300982454765438008643740010975723666092413723186800774476268629452639172489702676745679273486954263296293307799383060695174258956537533033198251374669746258716171967671157859591293894641900519594231162554265589036040426117249989093064050953199964610719970516938281588424916149236396001113845325917165402764954766172956590312791649517360294213628187264592677678276896029664972247633742345885325543235731917632165397243501468576239165650433876800210156944358236086348457350102531746380709120581568187968385839451042367958767056686080265948295232559420292102688752911543692228947178983633062840897730393136992191147148162894383234242910144325546512377642992120827639297377159406413974052092305309640784163165543554240237060821781822992158282156540176766976612089914480600595299065437623636120263059889510077235755651659219714516783674355129084511136295559530875867083778001919961816556831004557022827891916130240361835164122316270904542939796741282350843309452202160626684268919718081496548307692214680927243772183273970929550675247929813115669882315933109698993912254344793577456066112690464296564074054192882264785479797974455922998213530029315531271761722186319708982235311610694068488157552894816208209181667248131289081046237699070132293532844500814089415189311098796540721461827574805585802435381615139187720044458506579847920254569441147796639922979053202771302349978644034421824961632018918118043264783111515946811148164726454776176349787130866887569529762603031666841214634302624407946869782859874183950317139429001355908772255770537385820548895316960180686323258791510705889327168594220715607638907859760776550843037319077176693145523913518622363114271160854458040847500024799875823005870882654914622078726726806363745375980674164794484814973892387547284593438752792867664432725647955615698313724625104542888500733489513025043675009241929034354360108566920829426185038839729213803592097852633481338499592725301325821086087156279941191224265330135185468301475883617271648821814983502877885575396597889061068322286186195298276402577225660572474465593403252865816014386518537361611416307557297037999446651141140540794271475377811114255133972834961152875330388644328160811651900971960558504031993456527982222342807299181713054322774875923028252948026550571740861992523706296814981242042637768598819539599684750680120317039135076007001949208483688796385142405835386068968037754420706427165194190884481774909538052581044824739134996228296437835613093745711476150935895945792653518444582440734844891009395575602291056062448456125600438212279003427907039318710752380856389211364039358354010582073711565980725630307728235851731361937077949085709984740133668500208412981911223595969682225964545883214339357119483477892683458897400760306939454021357274766342848666575966790937797646768163015848816770646038970658327592363081409299550394583781385143772011353236289264203778348412135950821407271208953373316878810000342084057618038903775566026792357942645825046342858264058246647041364199474705466118335438791076331452420005378089995503474173982479708963230657788066150878820932715957565448426168832058940287967211719805372836240656118907999138028832094343311246912681414321820670235390665254965636176151324015679568910354880795582582532800003740724316505915305906941655244026442226553465708270971438428418562650322627493196295890247541653457612824093535406270144007091148209548333649386576628566250273021544259798453829481913014999381683903264080298234887741471682495878481818005552066910156137025327368239846402589188012033765009206477291158684977059128142539364633256149381380988193472958921912237302958434157505102177387600274257006713072132715585027183263165673229741655699387896932382888666604753463987363328505616254877385435688300572624974075468515505447792066495159632292580229326617229622139077254749522646217975460868209939045420657122232019376562938297808861803061952849313208496738723326039474869730793856785007594093947867425498820242041547066719824068073770803660751254641737104593569506195610338555273220981093912275466544307152856539660824821860992013074825707698853489469154319716569722476616161766706519887344489662458628625152225384290156087408995434217695175410335336340373475038196456961620860504864141458492224453185569392104609170949935123097068124336744992981962743873931320970401669537573173363924066206733660664354609510478033905319817058757712382737802524734990313350046117788777274760720342573148159707116345409091842317519827442776377940258294921372461614244122992493589461434008809389144670032034652189837272897423974379715319830729612428502696561588466394484055677766860581950531483370976868517186306676495978906788870683150525108802156270017004232925652577553571474880717033038406465942131322256028818375188180027781993016740998644106271998252745569596806164230149058371294203283526086813465820686611208819994256087192395986575599068847944798957284718971157601126635233211871997466584003580218134043653557895102240963230644670362396496910274014153840261860400252104070107826599150449718939463765389742339594447809412596446793881059540177061710349317906010285848179428692776802516063469818648761586233701525160236371817879990343795955115086514540258797264232005725044441943317120137468254190708531072152085126939846628017711102642445638079158824956674349287553422153367398007018414596890640693638164153469373358041348621682362812485519628207372517116447100484339267712904709544982177124599735379498959250181926670099192319815139687203924078131733288227406183489936891596258827794341812597822374682335655696616170703773942455538602130433493640075319533984910869963335613308498200462205237942126112738646977343529840614120293357476985428379850731423029608600645839020326683297106647485928028070622289411984685237118462881782523378018175736273865633857652511458976914251738657976813345533125961089216796759921620047777736601739698157005189305563209347680575208239247093075056486535401470969258633244753524002357951420808860993523690497927164952973307312176270227758280584330992778199380439217268111765936516774634858681152391360381723993804361913708704178324583687073268792759151242132793069249368067256716409379581154374100844743180798479818456229533783159209437058598793067431495842128091771469371599883933836596763332855084521448717349872982802287224597211100337067885195708636469326747159061232018112861922070378166898254061531830765384398395669071980485139529940333118652808812321707773513270097093437728645069055248320188640544591213111790441279949017804606511934621383518200791941711869477902086478775088118722447763439728760053349119723576540686820193680867718864154368080099068512360463269609940850990396948362171570718698156808599431927550783617631063522862443582975777239716171244390007852725787442545538826516658015450494415164016924498904268345734562617340205714011793825315539669178650853286160227797761828448212867294629371491109116351044932010780072370744963492569121890493135736176727370757948988198708148032945608027014245740279928915695074977187763259012185583211683324563832463542641366304744206953390687461804874269573082528928549775570446553072537265354490916550585449050090807360813300777288059176211340781270220715772179918469199964764765500100977660172796469665522445266993376993129003168352117905283272874954475129813402506291381095496685728387795290504428896615155422823760174491373513862739753898374287836457085777879177722829418378625092628139451414028381810712499370857034960067976856336968647672081079401343326899229203210797152854322309368783898249784699775589777584162128896661183097189395618055898887347882238586298360614828197063885376638702369971905688791420015005893278157667955412656153240777511837016662680233363450787841366979508958640285849250404849337961711803280455707969321708308871176259199594356441397149528262209871179393056412254938187438143080847275530838917269346294899678637549361154624333630992676994687019223088148390348146066609544524703883761208316514201007631833758934939996200824800998604628306243249049275733571918058260532493551274110735860302253057698204994600214598639757850583213910161582089381025366404328385622156050481874565965450748771370455025814588687870941584142363695825390500441026067279434510615024772280622350966331573612514266794341407466520635345465839222611463235578393993709702620191622134738856245398302016554714620847629726525746426872338636231531355355681663605190357189524466423758661980411448025219901302595893499907018346443127068059900432561387112104506890557506790767625630503842626225137290652256549426548273213499848416053950047182498565601847314490742691964574526581135702651071623877334688337258997786436725917411557016552924842063152187379159524644831952515980633946037421867350241980390342917288205856935267866581582011958760698252396492923489146794430847865749745083669623296079018930796244587484372517492298595716781255748423316730358061373238720790093363369257424578919538675866761134125824716030708943168749649125716727634443030554358794396727983916055021351483332405448295912401218783134030459294416212927504998450167094648495344091524718377825576002939794250148934214633867588345896387026112729779481845303444231471312440784982148467358627326536286255010397360301794632125535434232983465042878299269795250762117660416274969836359499603243495791210300046219201462117222885844133017429091519974561741221425481510127488263009469748351230072170223802516362654245731668291547444218100277761276072978923682586116206667022106584256981663821798412038784102644877355661996291918779924348976235918131207934212628580852454714318097767637213645840433599276725551587668729268189864664577371815671372712732706917446076837023027879242438214038304398781254700621379655600744129064710835313042028929121521463452256753566839681362781899954496762854591729513324623126862712073070316867408660159570991663158646522388745623449645159907497920994590343139214940679848302722545724305143530454907855046857565598503141863084834865010575124492875671828991276457246072592552964338464547294520764118443817902834258464092984568121756169389359659757404292955715291507682970780202397891696925219956916743579510728110135844878034761204586517986663278274801506364902275231920574521535572880248195865656936663054699706295114422061255504568691480327448602817268281027424886402616018934181365408817027519036327982203827038208983512455779035361653446984428513345483864352548108312849983289418172916120839071390684868789213810103679650443525120422214656143647220149894200214383442012409701466236343858272692961086252552511892129071483604566795595168653305310545101978321657417626828559346918714924724254791232715290930876743532838750563162595363919968592580225709413045416467857239737626687111622820934741373839530974538562283954012484780817487662218271515701356954660145145276861488219451341105980195908637689785102904745476657438215181134510250246512821307882573115182513573208273422069550416205631424449297757854181047996194442936394669739813593669111845157777992643506435444778907866885667636555675101330203920641099446748697238001890185771237393338518911517615291790335703578359795955444897859498954246647154327706708272651894378379480640334221433772404786786940630662072056502773700258523743934557949437175759482223948482130909053923116986640964837350683077249445046879290633705387963710117044090375203852640296257030044175089847800778547400690983159410928873587189533947358288473512024777514415286414333015237602025716546639313515169580288664731538340423443705796376486698042917498972943309837151215686192965419767908754359006588519119491014260755969465368844561880990145071492835593653328658780734465634881032988679671646781357384388603935675481267316383463260815222677433610342562799044580710243729086055639419844097513553481936898944385856295365499862588604857134920887479532609109770303465012940402286028361334223505478683117531048043788706828828150004082704666900724460766081328348616471638169678446051551761653711887635152359278589755531581273539168302801968872202551866090543478414559163466458713173467524042320513784665145484852108274337280013486724506825679412532619761659887652396688873925240799849352814127096654205069769479109091969184310175731322507064339087907860867329003063983535165159800074053082689602417037023267069764470297602604698157613952922096431184121990812443297453496971403552504286138984205987355762655435347212310996418075573943049847583589778675340827775255945346907202949290138613691171938131736016464766254974355119237231903375664039955424477839442983518287742464123279166224872611661531195565153183793037448307105649190863769246430392533328182321026516298438247988940816153152609817835820542047575742391907906610890617263336352753588367285253235669995686270183081216740528018000255368992933693867881167440777299165427880446784135620093629755456915180767133129637553148165799090729310413796284759941779072489099883994658129887050988367268841726245600654681144806371742950845879829312533822895706426355589519574792100474878009906747134908177116597027874004848558461844362188045597553613978187711001600120973806585206022746739843219801950690953316230458982917616258601136021828935305946736287128555704204874035807380175224160105364492072700313587362744654707779352664844640806718320237279420143447234741680498214353219066185429925469027839023946936756585504715201141750008863744375280986335535666305314474278010855994616123990295628653163830851747979431177026166211075066725911367956573126107906874252713210208934204306864426562190889801026878816775863339198793606817796800152073864581118643322230027606609792372849188165221926276820901885478038944356032042433072568734606173702324526804366175896199744461169110304860590553199705636008633935746768254932730261029297265221999701378474566833692781960326841205387250396773387410094302331065949859757562894408874945023244710451411575928385431904365609979441778694565059086737279405018103589133007802251836704712947858393258945203373711540965251726143245821365109492864963727906756677570290788108245219873727940381999502492852736340743617223491460131337418826157775394499817582444937381706204950516722942428537471667761788064434756742240965920803803416278472569426829022925212523848585337347913671592469499736083501009084159991613780484158077661793091915947188569099610232560063679650977588295435738186298518032859284770413724366489514614505019206944691005545175316280653305226400767770893310898674759236311424921196473798385954255778544792305750680638612690209013250630793951922213386091859506512594966211156752477031726132363270363423717204669236175272964371717948451046238560425822273820574669416399792178115941355964646929848306709201425779742380093529530764213118796303250033849846428603634072498312855593980962748682443195781859038887550090259136755043758914720260583621377666420090901070593053387190959348338330299912816614493302348832428627809450374459419962277192591212973961871592020847315534698082291794557411069295622770746468292250640769884404759019173477414664989263523613471702165066560590473280364968243983685148167372969698615723107288050308655420546534599832179968137693852187938647137415299348482991880895775760669754960742573489972049994459247477655065588130988577915322125348254266184290083358153300425533240532142124836043612819221729578384448001546002989505011823896463097856070910788010264937937656509471879322583388446088955461529462664001960838911309128568907495244109929559185087086298774924629350984305416318920651890102210836873850768604495583670088449719941471180764413202319502904398729819740588179575559249432469415479940500957863464910789359582772786600741560112775892715697466918567208804615859568973929234646086518259734809876278032735783122824239714918079349952189648914987489119544660184648597939334327981695217348104730074648312530680755197063807910667955898766453000450685243345844501419438076057321597242893329409535776902892813273095037334413744484240496526726491230745760280033902974672600719069651789305684608570486241921921895529501206499382979045221890711544996993791443408977751170261408258401444153573912575268782112047795676433288753969726244731879032952501475268642593745614354879964023555025562412865641888711495639054779427685872504112799119785252786355553260549077541637281878794216675674857856141623043363824076503788015601988095772380487988087768681885315507155213567545824862107453652890422991722156412432965485960404760340108960793000197018816034018706687673493011680676253758341019449395995975179929452901381967248764294353034940384045489020690811451703580193819159005399253854990428116443209598104297256009893982978142801815867903361601288340891824265607696572754763199672245330775663565149889240332801785290967159121559220796605920051664715113084015747198573315595081493132744386096777289684562866947981365031356609445293868587621647238419472667526482797803646166461654600938432009638665105879383584087496361419706343732440744061759639504054302308420453116892618690547745512308142928671314547872493672262714019480580720895607295402660357300016591846228694429707353592797791351415457236366805613510337359416057986935094459307645925364350129491834074656822106802432954472119886042088970448772597852229355144143595866617108405761912964802496895729633619081064734292915801249233415950727908608747347297779283102211703600785545769509313647869059130192897508136820693747662440979739060858195703694795621733909224235687871954488870765540417538648949470012505326595490659115857931270481659345687647710613834516572863565673081448107224136252029771512301152163664361755541537773135312607367384511610608415135837496499914467183123847817266127832291011902305693426788974768845305927887905349031050776142554299629387548417519639979120671487710566996732225389139322340156445850150383589716631779696503376087263341625665152168570773753040224794403987545693099761184759503630211288883923449592670037904222571028065129805454695532114953758276649718670663197079169226050790892188740761776634726929343000028544451729601647189015641206994309986169366851898334010548662959489946569035360554157029370869503683225813239174001133578912283864381866214276391120167628509170158013239407971658678751993359226067740973101511742268902396322001301650111700896408566091596419960202060399859516759933616460872516105373830608301385470114691786335380234107417724977129694982389334746097814666330889062394193197079768488622039448966521855308553719676675096359880517797472617930326912831826748620578092652565290342801908827059014054663747001383302588936160171501548886893591056944044972172021139245648474988858366001193030933405042481909480846789876003827669218171908676966018297820355992071897780429236183663066794572605188960538234728759328230119515865551801782831335658309861373165259350308058239625590828657292138654721957793122433591473237524037869082536021646294813204884573987051367246382465059987311460376225349778221030101454298751138224482136735267372107046667779742422508385846488729490960052186147747715199660246552260696212706208541687872395159978268612079223288649559947129439200099676084626144529668818191118094488991955881471379931481529329582516076010711662495155659372028930345139657761202158250017927165821147493989825216413139833162921591167878631149035037080467291134675664573677603167044711872286977774937204984115525342283689364699486599281638902933332959670502333106318645471594619892117469604407479301121141664974922769663879341360554362801356521885916919160126501703473492198577912155996554507884590280024197928361468861669687294067326579448551412102933164767805043203023892916209496994094626811268847761941929888728302045325483555956456104975075261052442558093862734206358927768284422812958146473473670736225597282943726377487768399286376323453936634450584640322202749734150248757659910215195448391414894528223832681483980519970765592688983154471576951183155510618730067685680405712307832433568627813031698684340855208154148525567720882895194035878583720245447816863460841197036059946920420502238950509990547462252473281286675507560592665702381967985443697384303634755135301014223131859665983550172909122663560683962724430840465236286528423238142349908676609158081152998567318827000131093821576191329659314579978119982342630591411983389412562602152147455618597839408169145555130001751310208382556317361621545903512910618001537992129948114092826421522700318799959583363724143264712437805197524452586298660913976536312050348551968701426164273739442553870410409340117869028483173244466964383927413217588098000494988615024556839321369972260395131599909527837014548012759527925657066876033943012129119785059365743941306541784682021900338105036071495296968271934082499540824216163965539009310071446388762031349134077562755620587774807984394581194951882007132052594033442134001243688746110151026668901067251610584232452648551398239240043572195668307365786346362847139477187605142398707775353711988544676572934635846988478103391466784785470873151504290874245923946132610892919503710118254923184207210437942006267224493626435095955033758381719510544311687327960567532982916131257543568252456465008122805226368146115975321199170660364359744808288562193226739368656062542938224900619956077533306524648443072734872088797672926968147974853263746082115171227217434461213726243363240118432918898637112347583073897410591681818816689559537182399583109158955865155107939110515371592823919727238518934595024177790551515157264975708724287679440973145302040959076917387500961326483707455953415351331344900038752803101337856441911474235022452362008865534205354859562097776348591737878062122554402259252738483077651799963738230090961975938017475257830796156323362664637308389573846711167092750644157476328242109681866702142077632683755260776111089889449646732775343901491089616361841443514027645812228960506038155465315732310359157359227589113492569009356071479776887007319541022834271748757490709187163047623887234096963025340782474650972500272241452603350827917050952440893757333312319820302154163507867782655093217137817123137161142123181244080633098153607437639502654255747238777747951603707602548634894828153033520219413464669637514327152808029100281629344182641082759195249518173693711365151453769757463035503968815577039389834871549884013238769153330886083961520387926598342627243177492768626963541310684656244843493116508966874844693471034053482295484404249445480290150087120911679176586065278724812579775347478803166890035108745856817454970704973599571133983455436889482161005371526145300563991242445399625803132802285781555675337051796143359354831260719900258511108667542907999170353700606436838865760343284213467493632847981345995095244594136668858863653580165643967245588975213805763615902148421583350868717691213845760044375608187454847305378791606854309384081019497206105993813537730874309360802543746183604369148741127222098901147672877947895395173377894112656204674800771293805345840765561616367140328136450673896217852090789222464391679860438040198487605953575729784808053646541796474341632080188152262997279175361841901057253910235261006661285793861284828721151144331217481644040056183601867286327932539692823242601400072598995097051264681198513807028811692974703651388278161801811431468727933233145431510250480273769735906929697188889345453153536951518987596889246757887794347506970959483891870919998567821390784326370316579878408076134700595423153306313562919723476311123701263743716988364569939180204023601706548474104482716849915119737619157080068754318896722949153519195619312478770104883649003430712202169327164487378907486971688905566978934955748268599453881593423799010669245538086603569309347485162719970008372666259460916369119186683408760398160534571873044883787844599456410661946492827902987144851382966227706977101867972627483623450552498684334621758253519948935838926400082160425785815010148688691944139135668696883144598621199233497225849337410553246237223178411540422579197837762605724976861180888568657979800450074365599616849105084972307353455998115616755131668419573344751329229644291365157996632553834794507661032896848698762817246534181038300169434521758808549607478490075673039704749799412435126184213715027756166827369026168815088921349350732182693228066051823157630541607230367138987483779334050158419807105831531091345171439567188012503059886950631165440619618064708073612376753683950228243987528605105113518141919737956946936386812745316528106350383468283573844055142293480079936682108044936068621646006766344830319224958931559540458169497241368057496365679330791963671525698071861874731197459621434447874538755676792302136148597286303389418237450498917697400714288423976680628317290119085740325033854522235403375989440089793296037412054603543841820076325880936286978935955808509497565067995350334583706800572396726813294621407540131282863688230745377375496644876706623705867452856052628768437103120859783070774298894233319665993370672470968952524985445820981439492120793934365568025694559226089370437968088305921735499028081872394235008316672586298989188652170704858091843945174164560090225973841145776221030576886909260019619975636498357231553711648007804190340734995830844145512294281776021521049358131823966276787157371499828414080368819714227388302087450157398585239725106689569962349628354927273450826891202714752570427050611184594647182853205454272334515940869862411990632707461826679560117012752583508647388492046027857128502347846753390313187862966495520706455076895843839186767906678569477562130037760802451808273452521432055160633150403699415486061306759533659716800235921608947814046818533147106095468336916218480655870713410551936174510371015992161361995097086501377805338975939883669378739548227896833361381628700251093980230769216401666959917739312248390826447912809985780640532434091371862188532304910289011371610830868087486723811585974218156537092967446551849292875004065158071920282805299224441627354322382564952517424671577482689612161852563998936569445055835103281856641319976266974391111677809487179369657369037614319223834766554637308885177708844968323805818661049089021478787690731157126141234536496390084269944708025514624680875023203989773654607133043284170537344139038932348425031816883026913873884588479420355798916511772879206893386316827004321470084246757852941660469640375384119123764327438684183406337690865633424691994128446600486512177804327689855184022775180987901106967645819095323132112878909014976869469812633598854195455671757126766788371557631267027615259777699256164372103010849931303543718989924700939575282429872969224107111180096726415730726186239271371578280611414300201711142648258488927207225721220327713009982949992065164892245518836614215959589128237524836062172044495902485756809969155862344381651671463163310048739229322622194319536546576778120984486254203960830112776745283134067622943688413542209394960718259832600135575309969096916373496655974503738055417879293820300756984307669543903118727067442208400259867930924143662905227305487332037499318170389925641616744964935692665215348150771057177730318828452217536385509090287600520764445585217234669265970493470604553275629606790606632310267244205955949617383552205881466766722615253909909223734700140656139750063356944875096877152084832351897942123225929201006950720089427540980857268094505906415482184309235205988084931561998371348630863160817753099343135682611939113131975531178789183155992277502484615967066466405284880921192853256995495732701336628910201852959715102098731818463944280052695190904330022355676019778705309066426484472311654176854222119167486235082140555241633628561937291560265630374851963379831249371251258466854494417939893950361305635853814653497429452024282804730393196391966568679509781211945037151849483955346185707607532969762060421264450505727237362397565744000051885064382554728183969647559539802630009732975909676681125019203508629139643085638026878054242269120670846669566779380842887975906633338519183165807333128864107796998027738812163216461819722979938232792250343923207155706556369315292188293554619023650716907691665853411416202786881452063334351824445869277959804662797012743488199998367141615930040385490934771232162308539249668813677226572366504800742866450667231972813565442043144422054427955692892481651067906360543142276229820510603946839073598742744190252742980580057378424677214050758689327578238964933029539316754365582636829334227866799690862018808955961688981948336656830850488836176460312166876308659491983675260971893798508642961542780131573884226269097207549301238347693325994685064488503584484386598349300601794354979546847118805815318348388546700900036239016567509098519743826089176297051751626446321046822400453548606399543634998761793295439245093275322116718512553617107202565833354352696800851148963267718413948971015796822371232377799817045313497795344097553782240414687831031187320430287713984126674284308300996375651519942564082353249959052809366080177081548029774680469873018442817224891333669076425734983149530154917971860386848864164136682031527841507301603828760904785507046797051029723762400497326796540443757434614926309232993953102138573340394654643138039328475460166828945703985202898970561990500585663316810254247961224979941619238080817186956176833555930820343291711186119406614245930234168589283254022811223751448783838043753338600524598377152198085748474091159656051012610213573908775874485223070727867510269340595258400443876916608889983769297115767546444686686822582163159384153340218454302004455678786165353877900684796481611546147742567664346667861657143213956058051068524929302034863111876979067573730613086580498053996249830885162974483234209187093248655663168599888218076342633618038033093708068565521163083570426598784939627742574272212686526087553770343242797213162471865621815021272100153381435276404467438408179213985247176560645327166630534436065878850200216200832224339754743884656908084822976109598909361512918143246941901775429720168260292606936286775939441303998070048562472270746163817080272609324491040716169431127216932459613466992507264935833273692236372077527056795318598698939329745192340658032028977873471602317472274608055716294488616376900498802876817834462006220327101913512335770364900808455544255768267109148155967365538582594382219513580156377119716793670206222456863485469059877803465897456584478524088192688309227770546049463556158414097453554239477673427530500839360542653385834292408867914093681442328587900922305291527999159050090651924744141709100477084998890303385633941944104864392190202256628773984626697129628687375722161881712782123563349047154994707588680405946324980613245053389545238627255245644008130368634687268413792193795785077498902782431583827323503310967089933015706641952401640480259861958294666114657087896993126661948681911951688997857138260889720165022115150000459167591831413795284292401626307590692810259150476906872272115545836998472442221101278300842149489854275989287579626814082842462027344811563776158858566660628707597984538985888539735915067846667744073558896211764902638877304631228815008241486403525126070075059042685515458730819944836142517500969198812147177694290558463647557815938880662395420189374908403227510206348923283093410282378940889895317257072781466983925467615050901133856273474822826535359010089528178689238513054833708012163757061868763785954802148810067207114027051724468180760760129942225757837851526237298044375489744603759100293991487767534772424112309983814691187957254447449604200948758632104967562261710980657037545797784528755506706813330119403702836846318300506680753062470647522436185743826977839833542129935793422513520349235503103226324224496188486719775355803165214710619958410406221190835966907897963380812136398928437310743158230935296944233518933301343708243264385327899082614976500246622336013479717464642080798369546513329453775576622725244620507851699672019899993401013335072075807710403826558364817000188252048738626947279776868198412449713014367444617738360378450588677310415521380295511482941381968111653016235598910147759480759411771570116508692185411471004985307661544503263624343420505278561286837117886986242284537112278047537319214048956991086183575809549838444566013084746527651201522516404600863882540892101024615835361898855615679545559434153937745029100661215587064016652981681454915048709104536360233696267900742045245107874767111085816038833504907301984545965754311516272250132882641327327200458647504003597538841150858712366767330536716517667235923474108220556620738971458967361244286013184480990099661941855126591403124482682150505096821172238621231152652300713165865427360924785213735015263087364504209708686975277506519538734683752316717031793864707833381254703056742160675957181244817241549006779553950339497434406511014026688323398138407299525779426860509803857100388472248482378758702492339217271606723237837596682806558779053366211090973343419979784433485265324350722533603987194609870643016788954090843383183273800955490568085092791321896161996636262009622696371104592305859857933213945718121849704692397468471194090316286548267278160233466412458675531537220698657075888456159200392763767615955391438114106410712803664182738485702131664766755240750094911376831891968759459457677975505054359139588476862792044160738994386605970487557360320761893992907847325701218938635124345040256111531106159816041062934721259033810339622107691013592064184427275725636244992188419296928450488655716808147667896609363464271937555630095802657166740606967045070055976452397530935669267213475656322310521709797267882011756733844202585858563099582772237670124261950140214124151701706257482391993757315398056518447478149788507156871414235362443327302122681085470827797568225700932570140588369636640436028018657355839449184790336263501554324008794445528858414945115640942709224065884058157027469906282629123540380245799757493270182391447626286719728006741510646157842608708921008843375777396856008810813692857565080184359309963392248748227346979480784064776775774350810648131138541202668180146216960634863869351822833302134661336932791685950307992469114783325130820766910151785797169586601857927299671940055236690498805765228834054038295723294956666106181631097892263994073011570024576283747735763081837981616381190797360315872121983138196203449769816206423985075228327733732583324372882160597886109873551913778558814037298650838175116326674547594083452969670926281699808448890104436399294171335504917218530444136127553727404380196616706233382973802404906298258609513935027495898750528072067318378647302489130579054815627366934203153365934803545221237593231989288843748037324107862086056224621755669140664965603256270152469394700985147116009940891283519475682748329672272176682993494445340679073655254171748865839010393192874133368705592913800277273147754869775541198401388960452885541646155295967306253288304118555011888298415869115770818537363775060713350543268713538259132850979585614230274360395764960678598010893795565430875945538732132350076030077301079178964083799188708619632086790511588913741262048385411578488220395923594332704524591411473507805455040335819033847064810142486891972563811686319332164976298148495396460838748495439694585152579518091162665452367335174501636083335297396558922109211569119783167291844257925757550040307490466642270906643224285132454408076050309972583021790257921821690823779438834808656545165803224926641396247339605115247595839356366074438299366773118971243814345071442634906683367462679651448757604216490046578045668108976237352466304486513946482319660407267126392740537148060020288141194791417421096450631305594241005639877803076831545495507157300582014792515959046024661151783936785601612532406275242043711925061379648508919819095877705809924908420856001038860239431557064092622965854619405990986964765074089090371020410737732283300019434413131898982911460768793479475637926076608714832586479309319426065037650312207896059737211942645807433393229464562171529928698775723744217452435105937015224486976130482977756125599017514547595430957297867274007217741044287624195270575130818896669903902513418046187913963917519996106880395794578140869943557929398861400711417249894605120231528627326923240980270344039357213519034584028877988233814226609893318496674788926698874274514772695849546580773589496632043196842272939054023420699365934655175946440193569680887573651356552737827558456003178125785472579739016890446296702126248612178766264775483706533502859187059393901778046471759424323624082047979583793498520455967990254051594049454774417608395779736867376905855647918279488713678562976470361971927727368758174220619342121583922147169397052507247831658368690921206606029778144229145154061195058652651412881871106491879697943160479965128847403654083999670832363146792721324493626985707407047130584348263293188454405105866194037558732502573156652753929021523622074153014465759307227508883267063705821488431961565310418901791255484578746340538187505614044231461197845130970565453691268255794448780425882950076968232189862623811110723687449921424691504040400313321866823059154359549671890135590314696913736224077614431031226486037647919392677174935407534162571025588711228300980455394033370487328235883976509095216726564747258020548090639892790959497565422906184606794762581291478097037557429248089816541744855096727088920335142693606922157665634684417142514188413007346342117709133884972815682697556483084091332633671724772500819038332573981873743660364293416815416085287464587255653507621150730885068803456968232915354060692724241361263834962430252227348220766743282446251953438168663298333351231892641537539026898020923069024691880866165342597137031996465636551784185225207740037755013360935861416370449092199891298081723596202953847731659451593254575127621826588269650230832748779521264161760154839038458698458319371172093681990832889325916016831523789841750955421456573542447703079868907388542365511940355299976861512185036911858118061965525762964582474395494638849523052293904319208347004085959062477586926739003838567519596357188381477340819136711013050785355589760197241318688735176938889609209708119960863932376114367610703567567519545098566772609283078303333849478963026102904982778516773496566301792404581418889016861103714921870755368544212842300294361846299784470990238920908702825867759979329002406874041289587818001551262385066983520761015258102922206918505898797807610317527440586023149271114853812525022120659086590178202587801042247426440305081493400889355369942155412427940242883301635560084548061142519736000794683676743928913680375452258525035643374923040611881347898649501791203952139272589351885032274797283045553778306485639221525481817233208066725276659643162054180594480709373376273851917793186994730245908116531708464778489793524433572038061469870092327006538735123781189355588073827614313871047732133065852429217695200986522155832270762404786747201853835783437702235042508142457128437565714796893103634180893732997220191856775283873360133944177263815622028490159604474228410691468157779660193578485360756676916433461402954821501762780794026532754016988343543419531698259725727032376723271043885021457551160781078490367273413756850547512833318281681806879234839423579028304653257090996989339293195685942215104275316137785891330262383995724924625652092380982163100220099385178387862912847546474997380846098849157178387404461981374483906873405912842383139922683550617309537760077334415519711344778011363671293049539990019837057605614721077458334412357522587981973201543708493212917688204045074494910930517869705671177011419656169548746956995545794664902459880581820522678280554400630551716201091706454966577280912312827303711793448888192757525099425680572045715600308835125483545318216700312020988817566560248156433398561210335218031222038724546176492771976075616398999255588448247125397544419957528755338160752382890749579434084784098190504995472234917678089989735554281691198660291050548190046634137155573699308168787927857366696462826628267844983767811270499161680058808699835076429727402925188906394922183187369232560399158730451177448334267912516853853293533405574069546616393992231256623733289130824466051596075681864137729049551578853288990615412343781361699480463908311094735416191894425279561023915503630620246485820967519520566863096088982742416026648684310185357920109341489959132940129700809792093387285245068367706352271937561210705529957700568521654739563093401459950709068494399952610995037011491148583565840356944392440181375872950668205071295542099185087650711181272383052550942709701808367332460479643916371196248167128781688086672286327543572199760279585502124996042934207237855661033521342883540324720884075362274770767226570322161459853084807014327113323279558962703353311330191389309874263357207481014426060412219499873952098204314094001173960150011637464937393337425009359679835495980816817494264116175890029744537902464510011573256811536605504921822907182084906673068373474135408768646880362810534636606363963705084006032259444236806840701090414791408074372432537542045294549232054885409447277733086772895728448351993062406233360148946570102953727693192398007913742461289880620940425107182168700354182717824693588528969368387123395081807112652032316069421394350441642211804586597284701987470587704917452361406216647182684227650430987221302532920806244101356519019242976831941842247953230488722276199998130593434354096340873414940098361137992901040490216519800169653451050932011865288950013498554815797648691997535540019962392183037155704956611140749069890614688031627456504309292968564920493914266325600490954672462450603867027790659778255886429872457951551827889549293791361864335494956074796062993943328989560710185007412974027902759832985344536654737382544305064921875584905472536631374537077658929988754531817075803390144697612612080121923648496013191453758738420887032773631045444103175204216817020249242468543393848183239720117336727143759140357324974219076628395187262094877364228903555507099568064481385391213949440769981765712217675877697741374769300803853092414702592673097243425147389794333082207091984442963493682734555999275654308492145005895949858388972194908048002110310107746945750302798672045602966829024330049019586565615233850660108608524705125925107236890391442604480419106885691711560554676557754131337846734357281913557921521252441634267287935145798726236068476879424492454329593759322568038241243080404415170323303546805930255459808401814193883913099131378039516586688564053442504597686306846470385293042281253712888124063837191968251315506404586582122027033445251500245556971852044942712661755709779076522016314099243456249658234632741999669659190963031507721622959737941330449069123546628999767870639644275439705307201015678667651462562096649852069770710283319925355222101790715425549106689098901571435225232088249354832640582544332289933881814332460776202119276353556055401812466401180644907486567924930457530305406358998581036430506691788360446337600725210593072101922922418953223829158909341282287505109801463162395736714345765411805422274015650441113110505863376808693783303841959694538613373289247160253222936973132249379972928005992675567247975790953496341417002038663419614534418285905495280534099977630879343399759789105686041339012606507861256082320438045454486313325106637239101332430231854665265092939118054325741690275954071908417628867735299986425460585144807032455850880023749219853889982576356904694020369388274466818401399841773978038022542914925919574927731783795745010729161896999328831375419807672649180013064389905496374484069145828464261242049616787491900287079969791885341262481087950554207435264417947194040344796510910272448179190320555977587738427273813105814360328119623482496877066808719029887234172895279364187064069484639801089564315352334229003147981016684313694791961472060973085801361507055166513339144332448586946901204924773255718230581885747169914636031877933013847597598611209617071626757731572976133468570481409796915486001251242060298788553533764784651123129289985200406105400658342503451634685630309405097898362527739341235446910129362617019899713956710393977453100963054901054483657021671991872203463575636382441116170937888938549393556125009047936371715422408061034381188603305755612486733268456069417527934409497025997743501467019950271079144783210978457155621888327410710976530634168129793345934674275670724413469431451621670473376735826853171960542817128588708301593160488414921903243630580503307219660182809009404327179179905769932354438810503240674918606915784062898734473767092342257822449454348280812656771732125804023869289361125565308204506530663405614901036968658562063810884162112507243746872189242092630265334764851006488240187531107752387990519147513017011555125936509502776638656047599326777269553478063270493039489348979598091177892565374432654393742278506271653261710049130127647658588781300480840711844142690290625420067897649616996620372407499901838392496230801679713342360699757087490626659373346349331174723891567344412867677628500732867428934742984354169140694898144641854134452472851022266000796138096075270104077275968926615167444366066579171195189270912069311570060784613104860095902797295146546772338319753003929982023067750861479378310340923251667930588580944497178020124060753205842690453320997327935806562077891445512444048255269303533035133590148144451647017174096780541342209529918090602912607156833927661689267445611553209280009335523419347624811687507833375052144864123004693591272455168409493435643592020840086639728874526447641681222431979005740376752041131459356908294863650288665138667187098401912652087193821461049629177160561124132622984729181973501923264693476067359179204734601950214685020422272549906050039052717398308823934696132954605823559616885961443855177325568257200408640667157261428742158656293653466676503053994372643377711755248633346546866174710294742570747114524084069357459330581066479105872577087039412159583497208014347320216673200295921778311465479415676323580901593449839343603113947019602368064364710155265483303322903249484887401748716255541784323459835831317368567411948216488283219830392937820890066686416563563299900258912425367465987427578424453135056811633366503798136161033428769139977909395653758746991782052951266065435874802495310546207908286923825317348709348850922029899749216770759304665115811333830478324658453779995964224511055205282259855135799543314078046873828830918171688650474647342006016159445817592764878317510061540571533408027770017339348691597254483584995703116908905023479004182696112774389101113682498365112435221732941277060381302634181652357514835007798682610689357810835786811158166380254286394548824474315217144653188212265603371686438855279490837229672715058599839020073704352045196213006682618638971124575397983167483580286609024375336597037955301742860170982285254346628226050297822819229679749507068469470141114718271237717945439542475455823176370720020939524803055024861529194258380746445612475663032936211194064385351261733638375785199093033778956350709984872647563288157718587782973537054845621840616651638052116335535956157136554883040230839048499053464022753635053221312628579847488712087974239197129806515715622514535737622964969957851618947258601930480188788414077064277898211155038934041729907842887791396031909094756427746282346450496185589571867270893050509917508259060162303560854100261506599582940941882231711766856103431094090151955603594197629527151914465465701146273564760341664073355301078406612170688048776765829603445926238647585574773412285590994551261972615033569804674294654465241074799894679978464892745481446292704610242772494517285427202517075137258797350890288356512373075140216213117026404825133197504282209895138455281362688417732670088252543172435798898927526987160398846333076402741020725428607539146320563341900517801695481641794931734887812244472518611941008835131375554904941816728642441721880263881656275398573336004110595994336004451093825257880276648144257909554842576325666768618659127051483898044159755020202230844231648171457820102308761368940062171591863696647566801150589395069179486179388110691357391119291194764571638424398506767609270156013876254738775551308216149178633110756769969326398363601998430563988679303503631101462125926182324329202305048739735551038806183963033839202244502187780634180139029250800165476559906039088069177185244075096351519581930854853494363752693142834726012863215569558934759037521733395698605355818133404046834587120394074492363546970801353967029689205641532705761785074369410421620028138597409944580394843717122378085916106254729128941850143373320113941923776992728498792167957048572084826211789537450995901605731914510330159219504779986163997351363430181270766361962564218296135571474141968251977845129239951809480276157790515052996245646768594108003196552477778443101848753683776930481208594934751495753635190836645103834811783830402008724954329435980183990961161442520808102461548343772159007474654697078956825591781021535644406013968931598445159332120198273787780746052798480631885339359255326405680475871392736171274390494442064001760465960097267419950111801944219947030763868082018915210696080337311479275450469180708663306830471771276993888434975203615083864030923677079665962407466530320588557954353589859477754208465854466213117417321363819376111745267198453771073659565949816596887595352725655305225867778743619699554527008888504312759094143302364295198309281704636367105770040823556263457878747852344823998469437807398003882103551971467793674394843979504226155553063937295775976121390828294776160906986615995244347407208254872747416379054120320437632649767578839449115948526175508148236435201449006844903755254950452871127759024402682896602399138122666872871694391424233569071672197485298549065028669385313900278006222810546594919496576773408717385262225853195847657410136500168835483562369923544012235969360060512297048480867065598283362546162498884058080568387476805924167214899254667697070427975947074439924019217135876892945577148244404837002827609384443667265579592053332863638211834362027746460871764560182369204997521426141119495091413659399395988849687325390545616898630962962774556931596271112913890687533714285816832655822915316734128890277343355493447886835534106128230021846623652602520308299055735996294121284036158487698284476721665060508430933235779163412598672524107411628555608874176483498207142090696390405828539182621622899826869597594938059048857536815235174514964661426965879562019976643810050615041800687076584704534771470059633072335779079437670642119611920582425444418641308896296689603339150013243279609922778353395891846625759931945266902421463659868461586505934071484008604030338552638224638158915811836335966437381856210405820132816569854031673556381630196805645873480396751605716449040168382782016031003260680326683960468558981291340311753680129125576890009703604992591452651397757729834685305855369363518247572333780440075047551435090756127219522846296067221062160746123771515371186885040037147862817884264613905805364750289469072392890947226362566212572056919773693290313934135875697822879124283350725027285956323478025040789612019789216469782287912428335072502728595632347802504078961201978921646978228791242833507250272859563234780250407896120197892164132387436929916913977434727149780099649672978953914872704895812275014589904462389058696429492723035412933532387618921156458876442971363897816413221384394558034626557913144029141250116885199892287079988203332745885087873962019584284916999880962566639784614021609505972997287096124330457625312926815643291803738394819151464952919885361976689649877753470040989333379727159490519391803031244093812163606427205974993743009579616220470674611740857341097442874902407222407192008491185818151812427633852311408809193386990524737551796979153348369860778847341792375900020696454778980465442096165582454565757260109829279462120160358645909800121461108129748652676649377548555016380093639144038747044068074173071114912039559556476378636872521258664199651815527268261024910471618972792199637288140577295437189483001292061255825008809586482343503115842725044714417992408858316044363542631311998838150344747327397732657258291837424868253221336201914847369762675550760047847475071302633152791442464845831054261792732559597899502163649805680167217023986364221513849136789469665189599636981895289292091091581455804158302963877917869354121830040998688888707650560675784523488371448929958031397226925002634423933729377836121998946004608051929181573650714060521324366571174865186510958665531766993318173830344832523723928096067690523685146455827238435892090666957383546278011242910414205647458071394447904816658809815878347299839103102752287469474046967738211615109724712756091818216032132711544828799022091580995446717910239857757760075937066236993152851061780016222800130689503482824380598897428078097863373237536738751563996250020268891715608720568198038132159271334649860797832469882632505217246773232158505276772769080739518020633239202228935130743426597860593702510692638789504893955632192116661135515559813269057575409440166368942600926755204065333655395145959443033647298697252246130287398349730483019618694555657529791067787277547211347230810666512202661837023659008353118127529782410474176812005473285408824483885466837414233650591259942286879229483507726271457547046200616509400348912926039955431957832683200403542687182806825496525383158353257730798874142984638739305884324111675854532875489997195502300338352132642356527110701750793748806830785603325414601943320967706374935741539533003747883990990070253146296598041526455897799394876475410724850931927603294897917174136213784198103506849616403938713561098187853350649482250675345626451525297740329892753756169181748537555073371637048051131082092768493599453069558121008228531454181705533962376276768523646265893677373342803558785781280821115743061979155371243564354768881163180868339377582789315224641995493001697844790900079766476198783361464566192197575452830238998411280198621038498830157743708738410828080144737287666819032370967428941970934024336445816131807477228213377537599246894948856887259048714181460237646959950801386604347059435174986009052318312201394591848890753040173686996125439466721399672314030349362286270110183021106675111156974413093694485088430863920946963800556700634047876561037082409804867884265850559964776275293345172179481954550738493811330423859464446390168372344019907188086077474584650233245520572489711651503735461248395335503707166335469558335922089003314811093105035625241575155460739324444620243895162945071839767616987097469732773185008363285906286338132577347176797086008286365784771014243655708737137294057536068519961990142326153519121878183240382660104099322768038702518282689905013928749433754762826805592644380644635852915698379751024085994057155596201690611806063853047946278101163688371115018556420832409881625698054524196110805010759134257423116274388612649920868926439355212150847906167359649534179203357299319229870094573119991169784226885366510539372307341483362776594610820275072013548479905377197752110208021488139107284434838958337452396079131264461657388531821170465993665343126495903472419700891057207310514031003142001607836834277549263847812555726811479079790178690706587063474951441625253213465913541611593773542711274878442640103209138695354514175104568359401016226775468370908677917638329951341468046889569352868045362009755798588010754417592852429641027544394174983197584543691671545375831879858306467153427646260166170736520150241250941328917174724357727936423052842049153843136718688623786700688669902695498242234826535568866776437975758217353681724178526139621292352814651019033040202959808631994332812220298985891741331294125482553096868723311629218467821310026202656856968633389860311490682515184065358262028492036911080130045106582899768893986223020029873020266682395983433721483435941141868009441024239480597129516215285958031825836245884073891924717130756271362697428833359520054337402297168977565143850023979631220832296886854415180768757504850991986416003851929064901878184328260738036579415375088922473330912890232978391570165470989902590963377562583277115219769901272065427673634314435963386698378990691427314298771210280981354038990518196590257528717110177255359810918897180596906653462252559961087106029038506826103736595190365980945903875680234895812098378184566328475101226255811761539113972787869656636476038783309584586952129741360212303926230727583162017153270980917602947021388975447440476453541813844023239519271050083654112614498747762957664613152927304082624646701708792176731621559023521033971585954705802422838270279714940186022288724774495150192048406390897784706393683763842470276918437140113263995349055391609284364993786270814923084851585691045365720342141118382724192599609844030715132883908461395367071412105272205061025340510194029407497595745271749295390793858606386322716975883091315775480834273084500345820943756785117623829181332285007239565267328818090238219283414941449565542842602213790588610200418833919731786325472260696786349814689795481129245649195627574858991085116766023520108670357206241041911139896508056310177625446789940282116489206299309939504162691936328525056590712236826429134597500011438126624463961940292261249313966460082178386024222634029098826070714131013402251822925181145074532496117982780980909040598668887394654345337415292835273206845203742286706180187577441930845756845900830486689521818505462058364007276520648231602447922945765035027161024023604827609189292591418654431079730615857216897581301459977941667168583567014562797481377628779120199707733760091548850548543734919107244488782685079767274247498877503716950996456850662105235981331559735770965590640499957013762197929214384231902193401513373371463885699756025752609691992041679698230878351338934097212741361796713331802161065533514784012271805000560589962544108742917710596386148887121653420274202194001089823491632143341096645523645641574425476162806149948622628197947120995332656928835757076874231482565476213966576158701886088308735206342138180550809538710626433109792183401239101558732344978992864043400856643324403552063429457083508674597822201907204349182098165274154755619205328716377066988391265389325883009078593309732527980300713903254611166790612622091484958642463137460474292851212258409058847153194384311331074768044632952910144117885336084147241830788228795538892654286664484346740126017527830053237795047173946198949841265861788389973276677309259772363725112409369357153099344533436315957211000477806131956256649419026610029205275667024981564837479664097209386142874282180671772944466864229698980601045005527182047419353303659476484286197418817359912109181105178317173557233620487679773497979516425829722861089343501579983963113356714420777512245221594458881235393183178984277679077619574751252027257634592410599926915418595094605377094715366442336816034537749447820380314799452485419024158225473078010510922138304388873009741595897624392851682724173540249533525649788361744765198146214873797373350201389963174984048031417473311253576810877282054402753015794992122482281883158599032176421808576117958983050763104579394151675401359916459608896611203563607240992607138768703535308360231371618275879494370788026235451349994710057516165840831401814160964148485556955730484032393220524854208409177214991579667050539409497091309426035844241073566596751505941297650572681495317756547067231503130463608454835845721446246720883776265194604923072910857551718087040119262985996743739966703984299785629244915783679456050193823228919978420229143846192877103398117953279196400870648499992736416101929828283644198702283182353696013372952696400314320550427157165630034780171924642065185460756811038794804264588691923654859303362606440276948220974068354234243978019485317192026063360302189849987739570514319242794157428371466917177565362215383803955612588336253255619898881383941315190594078361441569787973390220266643667605661260341772385273381717007465432876226735779917344206401459575985605811985204360990748786201063309505039894971353174758183494361183335852575639212464655851461773314300998747082934936630501465316745749214912742258220888494609209423211433462825171607831824274822368063119758762681072277963874119144812076079613539844998783245877808558470791403580403227933215701389593658177353967847577538591986059077025714985199792918862071755406650441436740619597569024610752451363496607249358249381528623686592641392363275844595423516530266033702306645558408623065624456971108791978300610297648846110574242652954741764866252078704004909017904671035984964700603486476171102949367265149700987270328479905999347892818513060236900749309573793718138695168213954681295914649862341491832620755026387682489509567486763202646934551755102928182498391196467909182393524187155525228632683189420876997759678736117498348588993008982463118544784224101131019114582133065280581124123005358964903636926524369193640694048651607563283689485719246133771989589253365265257048202672064769802209837141510874808272712145526565400494632261371175565225578557854386204843972745128112469893039538513275572087385861363328451549809991216221760819422983295375288430849748152659895095960317076754986645374137630467832607288385165158982819059836624424098412397675433819956413887733902556191040434070925405873312271951500439073325700740229108927106398570264233945072301662562178032650525080887920390398302390563040930830181301726145707308395001842861952901257381244218064366115969970222769336793770489676516002294892551841716903012990721201296501333506270071422766354974111199921981966469870956664006653242100394714517812910000178032454064536894501473949749005669062242571460680569254946226479467048866362893504625320978470128681090305962783791319601090907816037257598889091566804943193195890596973623783181042943725339610072872574632977674802262448251157855302750058601415419087537221131528876724434954889393712681182357650797573755918622609547587939006855053792263520713017519988485814137391208239095529104948088632077345265344956069737731565388547835754306823098580903306345184634352421193590099177251932732912298929823998480331430713420889867686491831766482764551648509783183127571966685940965467399168666738031142877256054767215666764458975682178499580369793880035091827535854837351023803509660322552556599141555444173691944962156924331126508124794987752339716009896404320451632415661243250145503431660567536064435401981471072977478011550232305077658642923557297979550551397602321950701458779264414739212118715575931178810856734946743677579086970048686007610485539674009396682669252994853769134670998340658310623221364207499710367664880906366581828908867836544765605239961168746643503885454965793933667829994221239057546757896113200214638887514277042848516141037908536267285432992826190091240042693001842308974194723371882770765364599634437675073059724489094684373350253686017508317203951523600178790732272888524363703330044440927812905934536866314147010465934188347468928262998823630130601376692698821779885172124541457337848823038246719166595110517463243127903156087414886070815548311021325401335686854055883431018870889387613937325023408807965938201480483031644811231762015402434502589721776700525987685752911079948876170334681232019932311321928743418466125998701817465611791461186892683702520165299119898887494882924206169649654308944234634175306462620663204127052479046522225947485262988218016651037739152095692571767605139151290790833063089131384670767807136082989918994490539984327494024388971060176275164865432435041746821740477205357907297881903006476217956560515937853174699754367850429962280685938360583506521637181437581203594638980135385789008753863779994425275139716428576455853881509599865425996111121263525218353737540893838299407147671947955656533381033560920916513587960431756452149002108737452194070166079074211714638920928718476016090249231911042267151029060178956746423834095198359114240864264571107074853007624980220673638377984459884147751507162293219203102605005515090769789431943783482112231317197696873083287468383293986801931916537026638200348246498888280099530802191763804197594627304342370504981686266314633138199244995135040933685213264862216626143045638015541670299756701810799145983714301340032034976529521643857783420248049746048135655627876700141167645327657091594698785747109517077561758971954701469140528987623863446660752169184051529203706434167143445810148812459041088366769369630161221404303079623341879278070741455430961219509880330732327122514307467437929490847000111815787217604725628436874440299990349072352336477956148260727543047507338357941695208541185814142116336633188436139304608640443812030500873747407430351981258795565121015437961854018176835163955314297889210979335064421892206382792601708085966151340923101445509598050049709333418260346282226613652457862436893382874818080831166321408860189627933379691796702389260039510884923222262487914699524694482213222071622818763375411744071764408256359777491004984411315866456552169347946993853458952764802986158402264099994210004334206449394164465158608227497279056804659105802319981404181666468971070381589917825990524437941647676653136370381649556880784171970666908881871118929635540970894493508380867208740873858916782805784646387301335632900560817556570518689835182885385581894187618464318855418835322055865514919608401350510913042964386737267017692094625684048216955942243816283631760549072993983829018770713786482195962795827372843849302107651701114120971271895136778113363452251194325640609290920398920303114286931102996162897157416513531226509765663872541502188189457696063382654025201746274843313786593668353589272889441372227122323730318997627121875635903055240593344068040671658854991089223395103185228040031630777931393887881242637399457661735057804548647097133656122691054526803233517094657822351326347119775415664800121647618915383944543827074135711098802738252435819294527063872430289838878623739726994810190995647633987267797438188240786469637206134575020404386514048145408486372294808918749533368453833291856926116001360905269807485077880809719922079054938464491299811604451051248201576813423036975845979313525076499172671897835920462441355835396802043901129880820848792705993984520815145552771604555450916639108614659810109436485529958341589405011322175918918227407885854505737075417198079357657134764225664007855202712359649841814780918524754051782985983587194509009264562032214567936003200980365891403659248029705970423893401417849408983405889420828137541084532719476594015784918087988412786712883469730444534633001134078424469746761005216325231469607461797235227518889113661084728250447333876988089978824961745714326538959319891938094537356200697795660073292073759878773953340122426282463811760466552954932776015165444339879779657596421303648495380297336297340540953656602715666209562420401897254100269030887306885967583236348486080031367493378804698810817924348705558586126044335111341550683472102803886307988424864795993442691070980705308289506513928987245609474089911504991593266076126398135041864212683987924382810639019024427167350764624024576817524129773437704721153408616804178294996765068580625127475299506559532498818661118722169921472095560654755219761455049109990697568423675215339297355971225275715087665659664502719171782052938851093694472103279129972997894959537217965414822046848471079713315292422565810659649076885751212831515757008915688390775159233949705557155439612034287580617518867039830867833408101348168394370339219341974243163346877167554010287905951855469702441074836909988531592235768360501858756785573637458577148410634013348975908777490583345539770579535213590168266477382725085565578135488763598832002785770631642240468395161657169656331177116454122497180862165255308450802635618913260435962920096403238435463721295159475370293413557820560910346503148279361410656603454420828537160023113668131909196410287304920850041743703833744628104646209427769637855809342757875987841833340399660193542026714882612819488625539504381515336088819835281749473542529613052058898947452978981927653623021464927164086320292356592994191752454776144084306022379318567606483039434162187536270414749761396384298639152870831145938517668485369224524791339701856796618981007020472212331804541923079943922150899183397221294664854266918247805798787826538813387791747999298627164543339304246091128474141007611054200897125853667283631486089863434645693410241748675676488649993201676076913951174561630327374498044609078090640304676349444315588698973721502306022408768962808996777200829540097286219693697999085628637818920687343124342519125716658608488533132234261843260558367351735755946247449424091891352020742489171844022318266702073646768610186247364849275801473588812961571164530777730991879061029888628714930204679227525167103708071639439123743167928668219344462247657260407054599859682878959481812296099664498418954355051269746222228405582160178156384893241562942941023547244744065298275956508523080398810417675310953945082956686670098059680397238783071088873099167083990986667030216146571722478408522623333842572081681007339653460321498432069726639309186514925480137010383870547849580569239080907147014680319441188291677410010867607146367034609701658774793861986557251491603212619971997380349016484226754491259673931239799007483105538506866183048290644335568139253044901755675497722458655370131148854521455752765003400128947427422375583403216774265860294150285405959573417873490709801590858265302204657806921368634418238335855058044069078904876946952301682422689530301950384904574094772378584130809424481263867625452617907185667849491594475752589043298597155625391687066405003386911470252752877463230763947736622050212431711197669755407073331126759558114307664350837766138393741882119872814024301959257723399249774565359917373704823455256901746838618160590685025236871722925582045471781431991858074949168211910106141017546675307620289154632134291872260156914532339244678353609292392595631799247736426558854142993028945714297643673232226292360240155503056432028370518644027032070094133089307407897145934113546630626365872857188977005569179639209408954049496757766916683128261519805386857951638874569339612697366987222044985742652078573393450055218249597364838727810394612054451563797961203029165947657469934154327101407474577289265442299660080219143075163201211471223362886891100314198269762081161023720046209913211643260706919886802864097226678090238074035935421449915746197968355714813677142010284368270041034431879942143613811977053870570251577675008745353928774720196545049062159447237705651061967599990856948777593914911594201505099136774196405319122353927497551027522621259329031592920206322743156316398835598947694912780282598450835836799862035335202068546055921678655283576498156695323158588572387298888221915594480378709089164856729907213738605360437121439616910385695176160284757070741220885574454803861554929996011109008952930561509283466502880398315529188908659028176649338550360211301004261404612185620272908635851705705207750060330829518090619335033657336926887231145986400466223734847362980287798810214710192458549374877745311596289792540550178074749196477840674655279039319556581389669254392861168127028607801649247175794769004071383841871022921733518989407640808971431883089221639365968753798701420400378491301275010036189355286464804238014072668778949947024252513956832936672012672774688760322848694287301349973554634498410829039902461431124852884825552468148762739942714989089896406588465382777488201549894005594865085108465819786193302486083380072550353705752672616262712089574838570781071679039632140611479857589273165206651387414183990141524080694271641531248414657507367162101437285661506728048482094590121411539705704846221539045505320545140864908348169336750662852070850447616870476424706292519842182340567119317597738507121384356616120054129148709109996813318550345675525027394805609455333324261650049742736992368959557120323458164445061839809446368120108418926213314665672159947081981768665914883268231854601655417288345341670449309166374846568976763423120189832643839103418758413624196745799464920222197983459305656369275684935977767109310304141130731253956424863850145550075794360426654494747022596898510266337438301815326070463610412035069829100774024752336575842434925980678196106766125498936694745793203834801189180462399344020486054740053972919887064890835327384625425978152377016539340906639616141813699362622724220637338198430677526480387417719061345607086951288294213418894326141155983741984309650618079924824859955747397586597917835001625124791176820566112456878979546722894411612072462218215036111871960386759404634081534052093195489945280136392392045582070502328159177110790863859943266252683370835162218627906963513461000189272878972239673342112248855253794962334805017456457141696886360100538717492882149746928962534740324906591107947746995501662902714298465088391795743901191544231663338727905054893157337140084303338771179398455028810515225387855858852767867246546822526013941421263800251511052536202028508833681167117913145351827458269079362143382873636714785502540618315074263817135131076739357650065187225796621355848452519981400465049664429369446264325353422704810873584386515316574783693494381756184393891019209933920793591730235133613433361740937889433243636766210205752064049860033947626117730659790071733843508611904667283091919140548761824903540960361117175873842829531071297887413006781572900718720285253473736830526838820885190065288899206711414175614821804859030161269936302200424573036545063083444521271814048110646265502183349180872813431700059389454647778071780075541159447956636875231302809685638497664674164239794038097802400682239304397514877618551014680749244431304936842402797966380697010721859444694667569526315883828526261340027805651395416472679784720187392873431743195634271468612868703186802680513077833113336497051424345861943399376038313489195361652219857173400602626816423331526275325615269986604467428210001630787133567564176057061036539724403434996407552391445970004248827807009018247852047697306068182728689501112304020259654646391688265344062451389438008685826309926370738304783630389808601099489941257512561401534463844237087490956244130195998756389104652096675458776600865903952152693072494759346376552499957398136870468238357822213502275156277174392239955413454901430780658888714513281337076148502576852323638293314742805966880964620998422476207439426900279429172375897478932798562424729659085321594720533236949043402796626630740273131643223047124289657816081090460225680448819724706799349489374391507550517355788273674663011336512806280676387389443510734047785428449458103240215302688926709289273432162228866530807917255253664825319222486046719040118814979669189723839048992144990637834224725829744875713871639376603835319582212583899500531756700955293648507888404290003623246079851080944704118776696569852700224236542148408230742496591289909650888536308725432732151415989181628756781130705162568510558151267135934483217802678350896047258005426171033289518836389103244737167483205917873365096282974559694346240925565281665664281336902593075874044002346731373767779248672610262584036880816938609418304354216051232899431137753391065117317425791903877442755577466603040662009904063042605149202987043184601327389509099815270306433694469041004457120223545117101132875640395937024233171029839349008207273903649597967324607011744165743432549961178069176467596474687979151557278151624730605833452636485128981677846980881899113210039395551118696836023267657819460839277758877356094075598291775428086114543301395004552465512429100491137288596606867189535571189037333006490897568335165004948243750201336851572849963696746425914953603739411549609823443143510932022180970935978032954975959889508110435013606216420030405425352518200915587623321754421758808594192994016616000363439101534009403986138161418529659189582746862217600400754022405234914487411541445060350425636232969603659720823649255942147652077137457479512200232533075772735440666725460638556600200246857044600372754039232960874325328139244892759626369997460819803076121586944368125434647600582345170986588687578964346022705480070837900413305141721926594157615687911501913402974858505171486081731560973989818711788963997543859385148127122856592027869352860760961001450046862821433081002880034237990803160388504060829762941823082783808603522724981023677059060464634773095240249025118717986424339190253045895732039085850787195225501777037652162664218528198174050734002666372515280934052081167101126969867793722598569334951943269320125902423076518277713527188447253277802055114483586444782301154711844183522932511493257269886174912260328402072777884330020182435128895262643485040180117669218940030138462303925595731289815372438169530773158947855646025489012335984452603058421107836641770498438042272775618146361497082205297894046841964210519595297634427944938008762375274587365404368603239256812039681539780620318441175173406354964644946886431290056599239710398026055271913444121764931576701250232821586829133991709434721860199061499472704193722324481136577736478433420225999696279855298823483581345198218142567592434988631331576435549852201618747009448486245729014154559189488870773043749586720792483838574340109825006289616607997109441836998747844395676792923888624160244369027154652760022493934903690547167448296577083073924210015283272337960935692399033882446560129800791917643031420219423739939643744425088139872031104733044683994406298819697937197577353254193649997033298030950573019449051768134116524453593299051529119861470957035374526557874245185688896013513044654670270758809946090330183569536601327917187944495410156034369228648022224704476758696090322096842256361340563483682971743439491345035015456271211307069128196826386733221318404444149770373845094446175483054536899360682058038898772474119523892924216374678456249854279850314493299533158554300276671540262962651669580914607881017471430699174419986584732904016553566585762630805024149558847753348985236467223893416365653247943645100590252258632136464125849984679616184355234035232472111052122663609157360271302132944820897661410378070919365580262218178495712207585119042287800087459286773627633230096904378031370895252076667175727182998614393655511837166922372541946679808216666811103956604393375037280755451484806816604367467894326404537115665863750531512081271327549205306822200052569298501430885879183833858882722616677568345546004203873216650375630854083599997383442031879253515109883833853900329096587405487398852972968379972293660129231230716020550973393093605034590395514435053077998616792471614432707476245085130197897386992709933257895246455475067636682646452715255225433388053548362739162623925296676645875489467344757727335601383827372900539389665659223059857104848277439804972058382111553820098920966136946893177199111474717037337482698105962706129131399606088218772148525578898249605715119740995507139928669201545658383431014260308085868849327192298415895092643571831409247104705184512875869988410928735902874312039343762798516411032441226292631100110969149554450309453357692140980331567654806421257727767562525366210180850636818295792871608398234021472035362598206364552008523128058003267168668344815110463737048499734839907210272119035800884324222116433444508002259779528179717226997323743864517946984457648063948949183343852518042878693263275290244789047593794042859845274992227797210002389112154893838239138287298993173119476173906115044782792876911023764755025225717321948181473706301308841788981959816299954108339024441069270673759595699711953593093849611028657407650636769449089301855864987037289727234334572249278915326092232477022877262964249176980803027823621723937988540050362571554887536100890114568649828243767815051248282055049206761472527146521896630049688579599767752259397406030511028985803962621881971282170519263223089517468158647724940066347625239985417319602616103692419571597760197169490239932872743974658804365659364968801685286397751552247599976494185950268040500640969843511307379711044119791800574646549307802152125298100873140604694735659064689241814839126360000736247105564819825893808874576453627742993768135876541917973572296127000892968471369649368367896352518230389131039926337585965257961649644990890955243550865890255302785990775532590127306002355311241372288339546404865777833161576829861517865092413747423720887013088054395225927885302394309216595649098407706095942612962824796778811133533262952874797540987883556678790042919545157674414867840448236392233509566007275479391401697107231858244127989233882002377940639757536572516250133516367264435915977475061192571301623009093734510047452761801638070967737009437680596671422941358960082475538324597480393206079604490501769207058512367261984589568309379680625434025095746216595188797550577965491955049492867123325133755673871605735638002894299024885121880124056867923618924755604824874955328263873146464164205988538514774334331725912973171197400042649872224381061421103274992413637133754743240629667251815657913864370256202430396479048900504429852624465756623621882085409494236850573272737762283655293864213194617852606260499906254796884745853044130593739472779307753507819355762734410692155894072757362859694496638890921585132706101710614979762053857085281209575276329498576677719475935215242167687786817343705567423740243650963517997153302057143111464013586402829024515173261076716920225250063376243107416178747624311018029013318097223112382400446652702557913433386482338478240836415091426303214665547366175962561696659433120665985127670461450435565056763231927238034514025354212809618536406586065956865009005429840500460935485306206267704765845643230355579621397040128414507155132958915455166928658278389403391529922388233290253888572605849243307420504807749658189661060918105854541979324802037965568280399926145969205463805877136490314877440480911274281654824191745721110244974231615616924754790847307516632660981952379567646387678825343150882208179566747714706801635105964756831889832497120460920855699713375741446504693478302243271003842147687932214248571356564628340103242412826327654208160894480701691549541907889908583899738707067015416665338419583507169714519341920374457438205104077772973273608393241637456285892241337653863674955049543056637708434508365177004646646381532867444822629049601846860503688344077608448239700256776213235721377269139239309592523794220566769837043926078903482673734754528332857659917761012569555350192620551799398021571031241431145302306985898701030358942128852315150644414206528495349362202442156032850944544546287414074018450857333734350776305942612250192525532512991863421476582140383079795273873761052730263924182242641542150906460098831844152564307260014686146011619491302403669382475017141894225920208067077454915759538454237813886087021786642478602868245538257060700785282733222651056334456649087436158229522645069096083169561726052652534915020704138021903400570178831183123741998178687238825101059747512023490654168401573350143178373352481938619828717997108611704819560792586428195619770249670042110009538004738803920047245467873090629279686005426820228388866840290831335207688650527791865629012892131240315114784046500075712617797115876960036259178899584553203528776418478397863166507073750966908836131673914766831068048300176113605941255839026184975476669621728534035859219034523767151164313372600671055941435933213580593431965154632317833809081857823319571680232256364543546573965389158512696172683566529545299336653616507398029873401838864612441636517466666989389248273782645426314272038650117553097076155873345431026760891681516242126487058077506359278820073571778056908881607984334565970610092424036098417826254172021527883071915797667428851450587738133761448400083912643956891713569322761335281604797325611648002436478133941949391998144463450338977304830790172218978761141526758491378276713640481452224170097638024592754166726985901420341115880451518379364707694489921651958233263828168333632551302342635169444008445773426489193207412771550956432261038689103857009585219216284841848988273268655470423667527507529843122908730541983950440894202141667808219680982797670774928984971242388093354144951082942562973278266923004101161806478685421633930127455892232424786749160761576954116883021345421715965846090848019719649487228542292491332269577189910652192682352097342852936279886092116791707629485847496149978359834308720070047710218568974412617231091035586226249946839024978024823106107738908043031729059847704522430321003304957569659557590980897187735513274829633988645718778469106403556448961252735144868231053002778188431067681436348836868815197935919480586451837858659731027120780587817682834764220458041748546527255792593212754220935506709152174607418634501047954448472804322875904278532798925864532242985233863325720785494344100713049181600750957198178380956000287475827557145959121423798241034420119904298000834846679847791736676339167559812330736044998178330002714620794715396260742401905177826968287930733427372635545596820513214757796885165521578563821506100375744210687869817590879723105471878597945093416353173097134275573684804654936846085893279519387805483535183845795512788897107538526481259181979522714467314889783066814412948090438764754172032883679315394873192784282061408378211112385518592573720264234464661698520633845340600855266871699988254685318368450116433542242467663197456134600849630856057453735903033205858460474211719831580072893001356115756207174231489330479644746806496381293164292352358113902966994946800145068838572950498800317429475562367674376499424361295901887816363422319493407258497317389718473874274935509850647269696844126520678050219420428761073628889385885038732456855643881657884628098866182032035782303338009930591300723334132345096025973746052004357099860029814550957846283200151357359254602735159675644163653011226471278640324482400773799691764665060238733966563567934039835656807221965404885119322488205427980912971100770045002277546120661716691559139809765659822716963173713238023308189464381281348664524959954457359960273403749531981034137354585996149549836091761262853953078738457075946329303714882251930381717511543835002670899582654526381103725254887743926013540602522145491981699579873716453513255099052087967799440782253080775816995602711127758544868440276052939451428880029095380284854110122615778414915814077499984149629224019889130831785966691538822900994694745024784490257136735697263979283040328606345468198590148086774140892108904010576575031104192216149418743145878476136714773918305353143832266954538329922394045613360601782141188650929220792949664091216003590511538805649216270544641912365189082065327758919973892229390120026823222236977367233003938217236746530526507439140683094747321260320884009899014802678019948268585535148065705391400576934547136732038757724513069759606056795390037265846113845113230645833725058053167934472599430552175008531778636339819472177438498394166462144855051887706616890278874741977750727859461678481964887923839242970123021952643848769171169294191367645398975302213189442746898644511952336113580869952565738499513227234485893231138679783119517843877135064823078704829980344715507014188205310414266822948160081609502468235978893323946769501559475750223592602042472263849410031136704409745365861030801205930892752761072852639425752928436218637764253542781899306480066569636727516169718199072260193757116892594797447612487628882179865013674750750063832347988396497740048841235756668657161421583110847360913934500027320051307981281570222561690655268330308366563814134700708194221664848221041593434919082040564085952240388003780734926165030023171799931482592911800377474465950156593998138623869286906265238206123362367459640720983507701108299079028069034109175096357314561823190444770495486618716069228030350137359522412331696418348799080748080408689982217275513161958780967752165398983096203489409368385653942119612308102110347105174241643465517192077927713852950602675186424396926553672334478410068145595114903678283881757053538003894600276907056312702323014141306631680174679733509725414626095995788159410727806596654228530160830980948279808777995415133063418519778723030126639225399955941394962110041954607825206744250803288180503393892187565244451699554137647784167163730755847972338659392635224018226080316927670846826907128840619197491176562869996908497073082337564779768748466753052691929850792803668182143767960730508738080830144642975982541700786439730496108341861969661959632201840359163563411843581859820514136319153091251744066240493909245135885190762706889366270990559464689376680069204682836304625016402102743791785448024851286182161251211457000357346740692536790368909502592398915481716225418252452080600390600406155405892907732068730958006174997192036471209788419244666709204449749874824088659052669358894877525751640135436742379201453072202353576834544681206865951393272635592769965995737774411037909107156835865846562208586210713954935453912256732806295275190075494090489639438880642545570726221159363124394916459725649101842575408220047228888466345128030448319017840074011676477395615436471395235581999769359010841775219733620308326257616596841193661458533114207532119529276697170420670518598424997628346041231639081227908900560239147276254723044656137389193482911984549306094462945096159115367552528626105912712122041446841774978186305011129740039411193508189083573332905511440743044446758533039081986774585870646675310587332044486643819547370848098401901457110801511114446629507460652330517345945257725758930786370071957679284954220239137265682599318384963573717455405038735780540832235428668250983407424619172124106592840528111662009232829603017213638492851047735852983920870989263169843588574220637445799561054144370524882233580267567460992544022776840093593181777507857673345320731185308379736957382024604745009604524055600641568355404686418106415591598692574489030347146086368684207141529519539968886399441629850126219826547899506312921479605647184999313392444952972883378335522530665608113911155759997907138289241837357409051932411808327532105758344340786287664294881133595300781151425957827964092837812763167468852532329802856792473204532093854210158071474018094794611604862776786734377575114375923330492549945720627684233643946932701733610844401875653569316078803127015677432921109546037466986463058964329961957990839163885107358365539735868580394756294040228635209634721703945047038525710853133624475454200105259671217835787463335941659232356257039331280188197993487698085088538737901567888592495993380410450709566819780689097913047531270144691199081713805793823536727157978743995647891549064076938192367836672321819058213639903497314398119674217404866069196506586883151348340187681346790426439557385900654837580715281812895107414409604501704396548535905382780434813583077244516003786097373743147217940264953077294295524732164285858641931339046225557314287679022533447878688563797709322070475438244713707210817280726216192203451676638569854214600293710661317844674349494603427459097077940257119887375313991238132600095632063682362858307898741532274462127591793546312149215856310068890958077806059372828374066045173381475694066896879074464372890324045717468931622799152607670087495794636552981080060563205359323461491322115081869171155006556665547745497875592906074227619249013128677758013421084016288308729212261577650952210150804466374403297822650479584839492908809137834911052701891586665978153952243363020381943077972210074929529190141757752516992977147935001371899644889115206473629667612182183930848992602460041899154669973852196756729309643421698898063419295331116601520268906755263925108101725929474115970572467020836237914457657307631055046947966134150629498747616641845707823855574370474740572018709533927231232500033657654418215016266023517184726721533121075096401585101898137749142654529986669208708890369491023049304630341750898351467990256972876511504451026758356083496277333454143953879619686112286271837770262649999543789756618638452242447394924921505485101221670755524051021038733002845936131845844278673382314261769735636427084212028318843673819283471319508717312219101203167211411093958999228846748017416567609937878196877076344759701878701153635070426806203432221962481896791090562799268720631573443595078978529230696719511043330556678384953840961252779583891054879684848620867971749300845214435942534620011241084266566758689780827762768401346982941929580203305740047491397897105912264221040732557891314047746709521633731095467107147882434746973225362089718434140168951520932937289579617990097453132280763181828994331896956895304723703995389058396574835501508194701003364946075415680939094827544998118100311514311243716206028508211677160529015030383998177874986196350048908052208969068279491550381572239746651144204071213280056065362446019685738573258138094507943474066036054359116810385474554139010052108568269641743645926975730111231427615691640643829304144191258097001501476260450843029947397770443406025584831551837098621043718244490932449990941239696807273557499097475439290255798479709348219032808505910233185056595885693410369752178796616771042304942352351086300728128713214793278040206646142623007856140840325983489255712085118985382238513620972879195187746506418610105011000152392140198811550103331906715391496612736381353490620189880118606264888141694352927513020120744485069394971565696370052810443645796540085580441624842571854483720866433386657525228581094828921725783915819147691364603268447620225583378843070662682013656256706042916609673993739633372559817540236901883535300799015939672492877457231001781338885062942677684523610642620854720708060536737626847668768462104365662552545771558209684895512560427094838699004537060236388671367910424911491996301475646726002794069393629208526804159391655694283101370172150024613412555388032120174802466199405716025981142053849733099095858647713112190057785168213546567692543695868395539592269791198151056786242787386355969635159652578010088777516139485947653028933659176240229706578369853607110049534756757228407933874696396982052754885413863809128046556795786738024779624558074935723887491817201030089198899323795339275624929514306391754175652362056553753374784035475143499180169624212773057517531727140899284179971054379976646930483998576569703889161802688948286649839647382240305236838578791765498736162847160152275110555356422709303412906341214050374706538761104405763127767768795582839693606879749299247305575701450712864877603721671366639964795168121815089563593221450808534862645244138042319376365335527483533321558341288886647780139622494602435843022305917574155275447784716651515806015968314346993860224116703396103314344414215237812127052900415296832835814274572054807634173997685403211427870270994658214566961420493586005178320307495998499945367759639015443329837295987702158798404530424172368853956543113249128001668861432133590181459881534511564969308722687998154401637903625847449402767622314058383024632327835558970491228763755160993522863875948264709234548966040439552829693496327329619453926341254044358306491272796994144257715378660212159628384800807764860068442119512842811118606563381627587966850467909393030243819414713450444610996238141708045889385979634382447612009431475013914511029035345846423398665337750340328875117844562170190700826875371234894254845267952905967289911416216871720725278954130366253131216168718400290849140108824741929033100395853328090305689816195958414640350088183835447766161764083433565762829160365278550533429201734442399991298215606563923309683123260611349847459047534817572479352289989350094349507539637348289115471101729844079071163848822988417921854283174985756016443562226461225946402830864776638735945988424504709908678771675009139300382117519811184256499449961925019393804725337399459333773125252463064043429925100636277264404252212933536398388871255865028214839351953782912192325132955047942707747981757306909813981758364267491567563803402416350300899745884664455951052637730388753348734402177258548165703260033562049041773557909734759843947599584542976546367412107535150701385121261710170943881638681800325344560780113893154572325876316875914141839336568222962466009146205514597833791156464792666354362782330254858219782070997473109160351106470097487400073152228766473962912778621844683555002020430719142007284627901831863978702570277226878239103697244548641105888916691110592202944493294362703541330988052688008793461709563048460288276601190708940730028200664359866943099128838669523792986662817889842726970488860447376760942026153771779179096775127871974710440809155990679190772341720808085990428600454545675142277138473782341100531182443063238871528440862687566050697234784773621962023765844110337215904381189469829313069286115985645313989313994899983340440092422837912517555217462189128760513946898847267718746650478527066436257483191690849153712588054145403632674786953964910372400574613022029319950310198775060288023797500255215749964464245334988591590936954395808452804500493663983056378225410562624168321730113237466365081832155139049801939199625148203485233603520297989224377311115009165857010326003536444475177424698915893573470565875149762563268039695816969490397599461063976343230542272130876246685734670460622349378419919838013099392802365227419198605426424971179228205037053758742713666727148553094608077962908093583854654683498403635552168457034303500634102350285348776635304712506884408723266759056557933478459113321260789019286980993596367757831289572697042883799355130392695124058919984490604631927762990564603947687565277618898780750820211548536425379197075472907112634428136059928119173570992152555519802760560371809051890207185773505552327139139625015942725393023718644501766178359500536742452835334629660040084680727285331808352724863433160206496873873921616095592777074720918638361912857557193948445722793390984130659405999651263847999733328982724471352363001173194587972985469557496641486067831936412121572645340765807066896025318540147824874797280631201916673807223776392087232475421013217402193170524688311956613036567070305219123786177939256907627223847705052392706222283749423814306103440377982382108877414396313901510708203127545660795464337135345992806287196946972555924876234056085997602542338053560291986990956076137368277070442866704641224740569967492098598383612829365067744980245221678095700993792811010739323086789354647755651487750747946650087569269504913255612642806005988394995155162576408277981605727557443961201814749780045132178212978637437510997476733763131344406693221698979064814152245960579603637492938539058045809826035568195289395221669574156422043036643722991469676043864419421301367590016932422693491304924670270778248184552311346110345348927331506000123028538334230363824715502555136874563216693665604441464245556981823192741194508279688704694176702966019507450249851652980618680546381347525143843327899199609271085812200893576622256979935986992214992546471768210127651995959782470050142217475458619429603923945909288284181468774841913614189873828126483553432410169649346552629534556346170833510950168069402286750567763445714741321777516730620778218770649224444752082800098342557045778491919168841767717868863033212689549197645739407537009883714004870254292603296387792875437706956043733999010029485263815003262899728551130103698581932674488505222842191805455408227747527607465389890506437479816983471777490761037600628289061945763967812992880200275967294498615477065204732195418902967085837806056950268859915202286168317793181381113370084664828231642940194035016674892993924087057564794251319995861278330973526538433593841675247530968424697781918624343771115599252828273132951369787821407425451631268645232757808217439154214688943590977318156580220579640441942122537014799189278853790337774328734095511741378352019197915279650013938688485569374748216129271672957278563847386324693858405292467490402241343895188323801079314601834291621633196573700159794273900450006384165131451765590859700264700322130221985224974139157795298792909634972898511760181137446922094253103131383449613559931817883544164714503878554716659769824672479744031166060619891225041569090447646624571283638206166742756470277596897462784181051476701358042590385753062036572937840164916694827135928569273543067691788670004922027323162640407025502795620934962162273386194868110608449358956017870858831338441728876389093153740724000728025325627642840264865650196869797443042592258495804741792279253400552524744950234083926561723909309423006093663032348020210867886808965918168479273683301432714695684457049365421273852364197627489417603760297520161535938944876220235739135468342725946282950905765143194209595516072612741353598331918412357841964213428872566873897084383114104658560037688220324630865651541079929646904657770652379505345960246149402061560544843064378729945258226263609197006342345695812108101880429485136828673985213253451985198680652792016175389656184118252242529689346349832387862657383224882146718221239216145216332527567001704289399052465482587785124125185612578868945553166549754643047535031903559023214381285817927533984012460823890717054605835960586771990218346528305718682775107625066537094529888302119627302931858892708475701485689985296650573384710386205996389432094133595779644769922141537865511246485379439254073621927524684823828499731257186457655515086958241513497981570174378273366379934306509060649809298386303335394250218225663812732097435466224458876434994073553886358770672063368111132294229836540526882156127024596288572354826421831454614331912545833118125597914736484012914686221986737581897719518823278520809332782805285034388138019528455465051393246902691156026768435854439350762856672612665083945358983093208037001078932436582915508013223812988714648091356440292471252441002452525445080232461578220635868716711055693285438016246834619674923755227751310510012677605764387991571994859706517602138914640631735022338464345839483543502798190272879730320285084688401987594987037814617966864628754667039989630424833422549049244670132939247258323623153119971239894462176588427193382546662161038214006990230277426443857141757458794397897959481580497290597777262187482791915421390156710404249879603838398730807155042530393201138172623366914341884766267550325863449267294163554406164160581260068978504890246540953673844850804419948123152264377783589280107705287235798131917642254407902629775223299431624405682282404897958586204209590301675307700984125504143951737057720575555081755126017901812007351334177237247622081200086044079512395142659896434037642450608295996661560889038571068464029141271737657151348879446426891076941089531011909992999563093090503522277723326291470140178644514635311873837849554388250085692730878394745287492017688644763531187383784955438825008569273087839474528749201768864476353118738378495543882500856927308783947452874920176886447311783104110199160063149881892999061015277816870842162138183955707918405119806759776959987531377577268878910886459165446898313347423547929805191092151468307163238553510387271875446767082952974905345953765259319251659451479336850638167973478663688327078954395966772983270966800627905395999829457773168238326073880180654102514617216288678835870661909367729796642225593369082458671032121453015761406563848832046204655115731003310627177636632725355105114011372947974242341799659537348942142140023658440811338831976175255058900924545313775605884224762865238760627246990302126704707809451241471629495570270401899866663201798423005507008440753327962569991771876542652570331254951397086494471914527294488305094601841529556251474040952579800990146338379776902129394085310248856156735060633863492368448950752823340100752025828306207113719059426781552141092186057054209610307132937255536822579473558746256777651645331092982287602837922593025131851658133770605209210865756174301233428908469922349735151163142174525426713978924805002517223209082124574110776116353591686046523764118520831045560051390958949873097070872311142547023121673320381085480920178739148793448883726854568921487783039001654774176228126058072835541533136900793139630006376970200762535050726123344151011142807093681940223698999130824742465401270194011322299993204833287467135538349457963583689928862329043972258449381710772590580394971625950663691604242881282548386971596653055474254354559734332016501747169426140864138038046659532238806099596893049398139891441778108044017768041263118730703803284078136515237865950551008740358384973781723210016623052721994787990743605742314099283345866153030265910880284894388262719286059268854625261181150655431439186047386383201495201419924016510173976740922604325484294565925858177689977165202674986419890749336425882430300822991408842303703349200032109476423574937082515388359612855402857151199968412130951329760106062238446785330430360528332459477151752110913218469296890135992039906751746663771754089316263526915922316675852838151330957335182944234019485759992887571589611373525007335299446864517727781072935550662001116627864068458347421220153546184274562778139563100350380090185222039972627590546827269914375360065865512634531653422399403325698761990327001829322904538021646980531553098829533761896730953445713037712859925458180227261374655690582259578692098980461167400939173233575445142418155942790416484050121752751116222484137648793952894876891106208346787576323688199506508172349368185004920139539693115045084063183316979565001151633008378271107497728604641519331149777186200581721183571765889164635570184488733065674121671104599185285061221968011073225482951877407666997960230384720072533276005946786952679051431952573547714111157306283794871723879901011073719703379511138790244228576611951347093824055168672986987094588552809896555090500583947977681636213599589645466936774116795236559330196254317145982816376377348304158535288710628200928673451317867057905586242287769770380335867189664400760452105077801090263740143632780046286289324312169848956969268126996557009611629781048808333226401158444986578869198915511649877595008201165471079495476162725359744314069895014347915521487018052440688805318244505486151055750824583348306015305152714103401346158717620493273768228117936382237726367695089960600576457607434908380867249533034011936473642216403187735017426283830918160337130530819470054814566633422929439437912961361179742997959789822201838204339375151390081879567578084988196711699577981480046861111020299855976962841938868761232745152462773308044657336954636549384040081977760970663913237654253918686820356685427661932684390288591996788147248350231950588774756415910641899124069125309416312561954109543530881464234340833160970495044930981167353983129373553934118732008867086710676292802662313136660983836430756156824337100324761286608742139189356752130595062633620498264655008206650187746333184048109653726939935499250846093222363891818790058724923861078321577979026003556222664391725444460628932945945429583100156730055075437247426211846516371207702459968277475890212707746082328108777465643762205089221176286259492333732230679917615024643599135638162060740858439742513315938986338310272411438507532080538973380115912508795623407291394530386270706817801468194772402893961722164417584863020451648879583761092985067605371677640104122787817955001823319726057461761188377946845473203989183811701977866220808018101648347143140329254503142495220082111433074466401362422531925987509157512173913243296534940120953928653470846315882150495516801442870649484831563843727263048169479579203556684457786382972288953534411852061006954504177044547449259708669886360993447006199388647273449927912722231658528362329253648259342107355249952854844231273220467471078064243669958423852863743227324420182834397340003224185901923803059005872229289610551499388306141350064936910473902129154397749453605108064872080131190490223110707230770624283391952893722091148778390879044959631522298968270822053048965601639594558607553522222159573834959609286492041366112049876816520941632691258940484528222903607027727550910423476071510260847037204995330735661652016080315883563879622431208900709419217345047787877409407146870679225942590522751818094928229533182148904042084393337728589025366508426327725814394860195937648754924471152085966166588308595533616071705852042479775057905952120494899134627373339351797353749095540180502086242529471556100879915414706965354572999224070932580384255389746776351480895187698836463589425494284220731203645100502716078039833613170002276335732205805047209990128777689353375985741664585200763921687804857367539294950338409822939797065831425555392829591922969806877722796639729390777908217851732476108735564189670849418232302926913249449134037576977880000852120689948851950118704243081970477677656477051666007382064988485717104832272345711925918065271167048969229098580751536275170955052842903922436500482488074481318574364656698445218053666467548379873567916422013296190351708641479733715775410615161742404449579958031556111579103087313472099035301894999465821929921964771056882282986141014201946390542328584438171240836332265624325123838594776356730120676441085014753981446342859310494968693638264004641625964695149031961110485447759191706584392706760240031145212717647083332009417568873875947770632409980920684630534774332419452200217630004662282023808277804197794933893918898522440855068666909872615099934327559421951361489460327548540028247463818557430386722484814571204128940220014152688477096246122211499922887643919191089940007645004267363603359564464427081897852741770774513395840957604462114327655989257121246407049760606889475217788884675365773130888483170413084708302811779259466701208771841286594199018778750963200281102375514363561230486554615329882829990461745177485814776012313343417313877109055770936706573655020317579004306722930314450241991977428096762212425199286327402583704007529728174354804106393450637326750684346881838874833235411216634188042412330340349096757794165377908412586879828861032352788573321553381519883058804585315346904313089809636940664181370415485931496667115981308994408254571535523006525082284961728723967465082519004532455823574868772006674794971216360282085235430278386536117112453214864879424132133170085231543372774607680663766996188951228804910891117659551573649847388606952471668475237514464152133654892467276122585393614841651438581869173841675434827813176631429116937855646181716609663402912720536530254447638306533550451146415224708651212131290099900196815169592152430391022949696439063552199065139432163036534539747151573501445915609700314795373825072228643267911802228545445051006686838264972907481325848087102088749505142696429373925813677184169065452156108761573780205352795800446849136136917468253717280353678435036189012457777583386467700487187551541811503714129454911427269687720886195290311000652148060479389430426121125047463622256753934768192222192006351687668258215068279880160735706110805557861686704947486404202700061440097794418761478549764582395624980544495512570910640270832390814460092511777876520638039371357117644763292216214126564837394710745132290507372055423326208635230121119230099328216475364369237906325033568253135543303478962915330449231153809199575553294498705280190335116740752763665598147220612180438573003072978792173568500012562331806742598872401099689698138523973061919559283369486119032394925359441583659581613839121854119515199265507043722245110633671266896256727586677388238790791336450938651172201396285944786544296218326678451700202781884192400936490366272357443728744856331087287895845848235250820156274220792392203392045082819462261529184460706197582285213387796963236786401331304109955645374774064577757684903513791673253218265004401500646241636404631178277966053575667603716137442026691617218914299163923048497382542894221998545478689482567054577120830606966401517547011398438289931933635228885729811548286913596032428511636219222076679819006388404842715260865907155370497185933522605711810415045793473539632763998872325606368960841031544136421487826119285418384995743044276868385145914918918742400661902831447985922644596334799531028630278018311500893000765762808870776888556671136106186168996249963879937029113619500621550959100266394298058423177896496506627565297834415149733882552363364465203622013216280321350049361959750702691727832370138371576432302888101329633287393824573874624509689508223833084417619240847605102724686019144743039151080377748192387105291127959055174988229390755127440803641693282921255378008849192870285467542546669735739705365362454007222398956201306760481133915634972776056714496409064045114809482486851179621640442806897195762975356223618168885002728569433652880013184412121411238983851952785119481467901665284068838218695868306612959039774599056148703612289809841138200615859142471286229860041718906453010082032794088580385760890512269876008642460648269485048618629651722184875183556528814663127523768706746675269172441672973545695673316677184928439431385995773850485061097313805782920944994446323943060687595811900386026190492109839871969933647463311406629451114715205569480402798735824309185973826397713404114160166237752693577223614775634790555275216648241460998148628132876631187524107417432987436275385045777742542057576627393156984043856772914383783590182351736877088048034374286323665907452288539522835778681347219537660500846861989626330050330936040997822291481514752577183795281384891568049192181238360412271358296116497247108026125459205952486511422783391156497546662744867185218756181629471196471380668777153608541786941838614660748536539552580901696623778000065583681884719769824445873229844530886990299337887795265719728089915979394193436752271866343782907936824440320624639601866990497231903150243625040813055353383065316109237895273339143697925936907286974042623404247587033791700221492583435241015718645398347845451758922412361367352913626017121554410849303321644230075969711058854695869571172632037985137192940144871195015371587916332125383079389694412746892273986101183720851428693197150286469098732848172073873815201591163794512301010196666203644541295629190355481051912534387131600152412478550452245480417085800974416436084037596380188386074895352662695035328164809681679448801761593992935630643145711148351667475654627759421672537822961337952004829042288165999567050760734870429085908499684909529491046326851763652246317013487998937688779842092948512962785230159883015336126834299177661463925494770519302050031055605493677633916328395389557886997769714313544610132496189019170570120182066702116577665414605136853434511733028437410975267518355759247185151889091689894865760416453321241702808114846759077301327254794609415509728678967187961801220443350296879621964404832788637996040983882536293823039583969837394961017123582184217743974270364691125810751594526635546467514367886879782290229559947715764306712652597185561511035747661042096417841247683015840339793601121187811200823174503714075700409271083743540108919934594983756706127409717699213954110952101250839813654956204515024366843113398973858736113065124745242321542571509170983114140086026489053937071277441244066907683167085424057300361178690524323205442682356865003270303065015077480473870024026729241448002051530677327019111454898739634929248920628971290478304492685380028314875358105997056148380692737300968661098886378902955732473773218392968237265964099999476679557605307182161869394599277816445253696965812245009356458994432191727916867639855789253996966098824872270586902492001784902712148635395532805946828846993357856689685299143803410528336938389808106541631250749494609447408886469083652165710685290293790114001017104187582043926198243372615611135685841730762865206310031274971446997819103881992609016646179754069102972565847469045071925244946583352764174639951788616905673265931633412458545178258082449007188501785142887176672083115995559292672621178256119044595069348961757228325071147520441276776575050868936709803366686786798668095854516356450456700098282130467124423758025533584949678345502763107561618567611024200622908622178680112434591564775661362731079617325234681409070011050097945863457244190266200577367179046123274420853797609726268687700946422725868500716364595723606381633847494349975206543190488268758253505156910742713458684179456955827177098027528168620203131954435974916468654922876308046662143131853417398650352264519025805451724237931971335479894431301843024011898085682842876356115113592545051759006609029317534197237037316626763104552677057284108266195395396768023500467639232238198895390409926916785915668921976462053713869576979999088841317689151137434627023755761356023595321292951339330688041066225809559753015227590711430726120998040611204959544702529022458298103260460366610790784614562477180721220945378224379608920847836988153399857843835847623311114552944993163589565451707434941008645637568236524522552890279717199986729963816213783471325388298076612871462553478352971463013937978843229852958454395196768038647708119996215817080944398958038250707113582707983347809856610300809248363340106643785171705008672856057256658249006303816659250276035940142072432533503290715340643720991049554417219296172851893187876675409135877109975306839422832961708480658343497111814009227825302615934813947551736035584089426644749330958461998620681292484299900690495309560199167359270034227705807777257942989192483507500026253575382687483236342276724808711441393032576445162636301415773729913585526476183106154750550543500397887915345327702159604456635703067706610019201793214017147969716738469733339707056058598922830925312952649427953618367607928799401770860176084753039347911247886123969453298233627503274176462432178205058631210032808102535309052281121335769067348278937719290836686403502827994706248624768867044020859538534724137046928259372275289596415597499167757872687009614379339091219386991136301973189710945603730161110976662442440018178065055572462339859256865538611682612704334070095180088689713989492131948076545616095446512264314966934969743616983961687411240926925087916495101225186752483635616057123486384689279645666764984846476716504656126699086548540370528105028232541582319648245828614979004180345759695865716578935991202692404754468625626567071441627711432070572623204570586425486485386428718325923588272100501781925910321862102525429061064196493219738482292467214508802767736310025106146589875281845672592050079006099263317935029302633914975478998055915983874072282012111603184744607313092642236057201406831874074143684735669302813859684496367816355466904575253185482659911617918864750699221326838807888021781507987526270959165282807676731436874076260554027715833284666790562252441503160456864894181125999979503530707283995418800406218376904052860463782206835537443655485694778361506263598993634787027909030997462772184241100176482159012705671182087668782275764676994285411305424284697967712936556371908112434752499188941044238998876558149098163133828344398678830561422069948656437056345681695102097143423812653705290231148917416269759846890675493815136882312553178553493746115050458035667819443184768513482917267953046515495980756411689982379368626545225447682319382165559881689756544989847223360804023621521263789857002732047970983507338475588088526560046011136366410695357973449086862143285777692977138838668754917368355359148530578245719109983029831395137570525256209580954017897695413946151720261764966079521063305486458118903323277535560804209288079548131044308314254117564693796449370088051788439064650598699529934562288497813679005684246906689823480376722839141414639383441970505255527456615243070311689399586409521846800689011361913009089342682782883757056395195330125180182350049293106972725805703196643197756434141864919570951944115202257960157942174332998712495398481643215884016823180156768220588903344340576906238372620605419470830269886808831940015177925067757175174593722384717722050820930704159311736220200038813060788840091117739664188836733320446529646445934419768596428126244512562577886323153831909565428679230834512402761688835965251028829254701745885087785467432335413143581398900523422703880060771431783425266802996652515958052673968256629757854112732459999634827193710570217727679088300584907363364013164799368378780942754761608277906353980263547708948992177734451897291008461649056912644584004920708308526064556605541887941017689160277283372571529263391248090560002823379201775264068935118044977919973237802038054845153464214411215740926117175317752534252312656527895654799495249996613418668561137172657535761612467563936363465852902198835935831392192491393418642454135934428166038405794303405858305951612584120866417970404500557090151031427979014579958567197456136453537244757325971762416221665609815477651079243328459730350221418019104377848724061746812837199614628391664253480309667240241178483790511869883383917902679307649564913279665781977169564574759333133134262607748971367197005879051641105756086803903926865826348706345405515763139861676381077414451225941285507544942159529485739898630568471553514877119332279431038600662876069707269223883921101042205418231418783870028474888838905667506331222092051480787061361084283744060089044614667973715826272029111684229324748247891789685877780597760941818644316340028850264536445513550671213401188690785557499410205012020584369359438338431421187984966957966712318296941911718158049435257952406018375850997934371130880264021542881644344306720286303061244985371567180909678367412752020111345413499839171117253538517021424306732100031441372887105544078958247023764904752320309705960620761202742331730176569032003677492694227330322757762751700794150691302352338229522938042374299195531100137570087357404896049301491001310514828563869984292941736475578552941533379493920244023171942716029023127159436936461304778015704697510260615433560235322727132552378164940552536518894649839034517885744396354358013434976027147384385511984781089286682294577257535978429545434990952690776186980501260973242575667396516641860943350384149618387370350938070380101695366304616092407294362211337355372256317992452086818271670641961004506900017835172681539217865847481240698829943944692847539212047696704008917516980044735013401137800552105630498825434932067996417341838113208226066190871983360217148256562393710727708004426030257864375469141406467379988133306274980434048844433937285851420929071406931327851505346968127345232046363566630091702633597632388614244380188240491008510158252293256556727930099661715167571103702279090057724322645193485395815336762018043079066346938595228276348528073739266954153406812865943469956911804724376608938315621924386564103131340589115080721932867391688323814944776071992081035475388423453896732654849684408063510671575237120307503288768536916612388601773535404009108803958927512100254971669370797871866429220140145588245623424144670313230350128103244201632163057653771387099052725968494087829811861525888492527218603289522182402628298323270081763455612997145774658378547242967461824664384902978653007763159379196442547839488282680655017633162340101463270947259720188233353881335302545653904634831051730084970426153736764062033013790647873873712146452555336583558282531298690853960026366890725505682714100041735228984821717599940268074649141888703063814711532964678955931808651223026636997204711317478634905277669414273422723279580870002598280525801378538783200311808721509846232270743162776152941280404273173876699769554819153808427735709328137376056176693707288061211955806890081599398264876451200332178564869843209063760256299992888973076124774122838326961611075164891522825064454626830641722718033834317376581971246395144787832000935133331865522233895566025164708101900224467477939875010877461626988940950281310748569751286370900657719141437702967548562314383251595038525173136644265502859810576418370704824060732078711770552954530969818351972929411541825195835308336347495599789876319942510417438087738564230771733254051976361123906352198949174390525500247755923939446107776141318676550924068922230286443171562375620553253594758883418841103183260566160857078012412132972749166000048992747414021583437012481574191298877094711693311104113046464573198787106957011354876601684723955558088729089717469122036925118972468059171125745739439114565180610608056378653089578477353911887809522439697800184582364439544824465655627892290237229846083255470549406822187880347317899183416054026859967487218008132077885533824305278895252897097708026085078817526844197474750300894424270027730324729381969579912766676269025359762295246233268788313894840039368170446872185101395713247675408223230437822817504981212218492381106072004410173724029200225719476280314994515478334470303346453163731315274916269277287196580757976562490296241213427394749494996058045828871922218243736016280861644682942178448664330819416549098050350619393537344184449884818559504965026322264508622520870983941795161372926156316664116379086259966195848326953820640610268251704049489883857919242168650982917047583952932601194431057299970094882000646282506414298088578461198438509317434993315875405684618443087248169038284969445491491211283899174426980355442566720592375940150852875841205623818670543118901668180971789190221229351887427909219551551808886890313447708457777145492835784529617248746573332043166606413022240780940992408614861966164617915731781241135208581516991824554105441256762164334410701735120323683692247023947522319864680946657670084414776271127818203706739477302725271299203114384513520199463470898105814668173287078775610244204807475308420410443016348726332678834504450244842310917755167367076052841051752145229349324802842648388484690020994452862646418420347221657095686434779811103662204260528403203412153418624039613679265397630572391767808239419738793739699311857904544687873150027991647682588517407844000561270342803131241594006256008060316896796077526780558515844477375732040986866150895683261795987193471910824256221882689002334105397189176036305647134218859359916610040431195689986685470952963076078686347518088766821399004676927370948474866326257852632299652649029047557265564262817106736122779326818851162138242414638514198006184825602021620796477460122499966967228685245060285138006176482634185967083763616017717878758478721135242571274834527649231762646257436709226621130773355520568338605430705415874024492900357561116555571699857931310006819332853800182877747232509141158198505769545095128707200576522663427177149957535199423758520108327557255910134198306611780920840327015963024197359149660681090192953878864962912091547913184092762346231311444102527801585364435130263119592438461455078334368713210905114872712309587577971222071836071360236141627933630276200661513014317558424364472527128448286083347674941120679990018473193190469613014178604322552671008309502966151612339140072324812740694337484813194585701844194851954609071396254069592655653623192382949857221286126450946391949541107269221906175681772129328239509816329423697312472408434620676415165837242952236930174326841387410209413223159043112309008559178089809863981147242343125977273072587496545079884608503649403556360642136024636725029758258821423970906963894751585219601005670875761743422200688184018678289640797134211987989424200542623226391091608083282217206238321815660095637661311507035253943137043847640671257073659863704705747299557705633292492870667671578426397484164818987464420627326291809186345695140821112621118307784231880550483902301823855961986897258663753836854851880890027567239148796757475871447704496390596664763884055513983208511051808694673344214696438893651987429294500796357933677630658354791344094374984874917811052595293494608869603961792375636352705682866323356938754782849604914955943558112337629627949110896272845630669590312923738949873906464548234526530112459709369166368198429401975703961105018093963707677695746134167365949186840715979940977492129514475364355705104049071822680477534689219219223966559889264013833854256494287750824045655818033979875280750093213251659556264896843264720950845726942676196203246524253611380812855410809861388993231752761000593682748189193057268792705270668165094738441124135225224621640589669773776626694722306047925937658904054510890872719669296026156460569223470830776597249422251734490049588103258711734985129334074828896282286845140658705958220885463566222379692684577270800624286247083910001271322746693291077595784116055523253942755096006076083705334480806961357479866100345694290504874288654158520571824749343029266450201290152285085761374552109727391108825404901954679022537325594370109330222334353367924791554865089056103150920105329770033114909933191441582540393767103856151258970841315151528321798116250944078384463599269824851477998262383671542281850696667162662017616097056709486112509359420925767250273704083583389316097505678303544284000039700202864233335323800308367275769471670632072715632881451354026654528053705616337565756556156045683973582112723349302665713737615780888148416954606951892450897761458277305644711560367234013737512391133422213509952010356177643077090804473048268999177976468760034480364441486413463468999507845551020302988863338483281810726992000889828571936841389153981116763523701359960477679432735219462494183398303417727528719732165352397478366615988300018701354800725499677948156412225073198207773749493693405159261512147252409133124328535226609509917886242062147076181444365168205906693702697284844303506025219140497755126145044657256971231595797642958217968313207204976676286570471311714659716899414141941558552792132916553410803586453942360439763461695335289846339014437097710317188526335297860098669308669843526393418436970318857439062865471068519080023824792265970669579691292282779776008111989619170518765770471548040762342014690147470123007236720063747941465248848800218697254454637056860047232674220196980822142277847213930550996393066658835120573420953623270683351905374323509642416928024349246375291319682400703838920994682079708205085530265060841729064678943292489042266623714939148718520453336050928192722002667835450900672192934483571874004864525843619500945520255338530150193608275455081483677629431734666870183989663273687066717388978381705851435561662657530589349283799568837156619051174693401985358752506727461577175427929766541124306616885792146630482653762362917863634478732060481168564451331963377597452108914206426210773371687162905791090473783763999340317610132958656601786861508413202599439184688026600919412070156736705275210446025424647662225537968562211299822221366194969278051234613589388009378700644588895530093096780802205671222911732449621946663360850150959491680911944318831887557272880726049204842257269502347772736256681742643079240727324305549238831405486394592952167346120593473310812267074435854430639051354861245846923527729555959508163391240344880846155748316511028056596912604738220096242987861895952287301938329285962799349844728509583416182154386610869136544064259089115896981298974427147086063734408895081120792563243439121604867098037269298223248558249957089431108637654840373752138369775403725350930868402408318659218947543425465681993319202869736416876380780559427264909405431860868835870623993038093248937760639588088169278821723284010080077874468552849300953561681336987821881319879609157078006065875120413681055150138991407216054540732098424457112407869027529556371764996922732097345339032749384224697177560429121963794004392913939936963834312381057271231601654623818608034169377923236080648416685167008845800707990539901913898692886788685012546791682529572979509077814007758372919595259230778985290095374969314464885604201830724836681645348889006164184872131401761979206738425388528296023984285540130893392381411757012080830155418887191011712203543960412588136888048929394096629476679405622656481939225363716863010600798228698905371847071955248636144245298398605497226673813992712323269791352678194750815424751582595707182151747793330838053854225259358687900112017697150694846872323977569602190530277291344179895332845717225695951393984500808185505028461731209346332389767439668678411629825366441222235054206323638997861301160460642764252472119953879776525470989913875733370958754446068818103330791592335169400268050996900920168136950287589393771494933112157241590212362251549726987858042362441274878998655931459382697569314305549817950653144186683273288195130275199567217538237057152252291788997389839063017399172994785964732882451480573157662397274681272069283546859972049158200654932142637378536537776577631054256491563772800189810994441267947276921150956072802362828488060198203017705573603550343134769074127602842407027856245018676049368092179666630506285791925690321609215503829815738436504956833388199142037563207628943768460247661039435202294481010140411684096352222244652669840429640253001700640703723317193522076178313500357425684523102015448618474112946240496328898364055154538023000657624314766841533398052677981987237595528463455943508759753081225407831152856459138266985406198907598592026853727923008414753034616218457484881555487518028075008701148602056630051107952626218165099970462460938200305624610355311040342287433668786969896589571460526360133947402955027742886004823589976160326074985704712218455866713227141006978846958171262714993858982858592146253686919607865356133568450075766467433310863247115800710250863570422004275510279692222982886795051603903278422738873811183032977329682416042683236925334343948056151302774756556422435386312834139392655972966202638496945337587293946902596287388740148807094633806597996983165111929088025119256028581730499108412164179968432523640204120266603390613564414013138932212028730629445326131983133356541252058211952929321494053648823003371378130699337526267525734272054718259851934397122847549742322825404076626173085591797748712629887002266741047470611468698028702735148198879330690780405185216982872231913175583775553832930641934332767058711857276687145649647500467923706677199070691387000871163039442974822989518150941074191583828498300089051563374997092344581268411890557203901380937449267263259914733455221666514058384741593179377470138831092920729725748072689274863625450102261803654579949694183630518520334858306138860891537475768145068904830504743231041756725444567867754056535324624426384501125401588113376287922791445769993245490207100571938902433231581806774444726672317664560768234838627921390923872430415110888337404826020756447675776852313457857843464984582933624074648014159794645214350928554441465662367260070571074429471480899305462524615053954667294574547752230988593834922732118140121819937289727478363913024222954228322658127299397886975817429336440054623339798479236619185224022625456201012629622742562381753005177632863755395427686041957675848786829356580164847516468108506725307386935018654431860678211748070671023860613289732571244782397944323926851468558707175932678693358768547160344896167761171634129966733645058979211075460183012363336069114496418838793412184219493537874996652379751539176305915964610347152121465642747239185396502131632591123081652835029486819565713588747677239629019169319916776864587305875528874759709015918885841340231494453516371582046119392953865006309019687811487252002463250058595509732656697594088092488527662674442466726398494549409633358854494438550708277866043263766955889909423392133453243745869236955358408441578541048678823088765914992585877613493789393381723956612673264586058860998331302388177066929334834048048944814411828434656375280816656029472988769848951911289727995059763032773051776937678299759925957344752814862839444189362992099002413580600242332685520325343646493589775270690343598809038877648352811417289852206157665771897459969312690499427459585774890071501771028005051021850874633374802818267238663761105936721215117891006644603828092457244431417385808314417365876863724975750172418050556481564588826944241362569737929225594590205061321039231722794686286895619967419234007390131687938180418212831728509935919804705998908531525506061112902960745527654160555432346261016708812851520318516352330546845016309787686886251609553921820193843043220857880847407848236511516852457920537636285830047248894990623220277150103893542479206727218039032318085454935230021570322404830357516834614195045183770461312945022064049232543372082330956689578982080018613350050687537855173898229608645792613460122933642789412934723737724118347105671994749881325566302417485511254461353073138250801775959002057552568829353541033294058247633459548911914800263059411228562902099198297089226752024511822200112557157924073365057461275883823812394802411040449071889793901792134917798575028751711212449707103662889052674505062509392601996539954670766856145659300467217310496756990455624866338937724735088968724553086783819397974149839080870071248444061484882489613102697330738591249879037418706260010514215839040887612370365371352029294878765054888518285342824841003839855366231337645767092370447705443448028249088623220965866449859194336311920583162054531014457848223373995095568172734145085035650280593064829271852974721285323881753240007762565488990111484683462321804607071758237816362115737939333656351436126557882430018387059786827453486224103312709824869444225463205182429773306319378288052473627727901023657515838777044573638023243101059133025223974603254422842530476392499368741225941252534427457191435790426198559803235541075551717960222573100794037929632241778553617780508804949631587383212867555429706886595155552168285084918184671511976087907235697860364620410919720649300412315018883777045831139762918700923805268182097875166508952119937827049455139920444798943378848423122248762725989299789548257466434857557926460375862242308540160622023123958379396790618608202073848623338500638603716795394641282798171911311961478216700083080895078544581326695481816638625695092523164821917822134624141759133543797902834142377835388892059566846197981052319282576652938328809119668761048185889645442440220542748969112069333534552351730720139527954521612369056345572702560858266064853839180881791607076066138641953390753463104231631434614551495468392152545717652301762790713467029896411934810468624873109129058828693056154855010986571699431794832040020461502892242832539872040350919383645420568065798193492377797399236164339232844122291241613102368123841230940085955594392123890261014800241184367325721856692868521171174389577355671369440365534188266303219673712204778461396724242393438206557571014652108390411058025499057430927093659718121325372945327612925571603381159932729512007956007811205331463611272220893115014719251795352428209704638353628132373305039579921425714309960203390688005783518739818893141181303060737189155369873116976049855114076377510951304991139839324182677506786129309334341944600471092978714189848380110311027418843783292048283906220114592454197652212689145317872121451331267798784556044561595952497545298575352221546817148984145111384250814105501308548962342436284979104194400095354198478294098804365041833757195053081693362546548668506765948602108440320888369791785745623588814599483392712832581756647814893076301831884503175187702543381512172174738086474183691780511854271392830592551520369615442655792743340951740879029284689484767512818289936936963800520966258096309522447841141623347063886751542015041317535385000813287716280810470018834689655555443257656803765673502026726529968266884467810665749563509998596178894324430751583105497717634532380639058204773181162089074001240149200801923869544920213679302425802464651769831056714850197856958739975556787502966173286707949082756613216383025793652727117235764937197729881838765016004696019807626071729733871958649870990996872471749476111410147825901880118245361021522042204981976181635300339885999787260560375797598680307331475224756400757151879220164485890554090220069215710067763592498572399552763201444121684915435778005526595484999851247978090199909088142554531420111741169391548331482057382804145436271804646866262913735823496648287522089699583629003659621294068548508879007970609715361504930307097144793566401490311205530808240950244384198758241647086058648990739406875441311017445035194648723317674626024900661157888610971626885032390425642166579301971423307771445355387862843251433602125018990945261445400526852137717787667494322391925935590651440122799532365738785963366718867982100511224848175402924750136695005047596708441801263734588010662253040018506698181097190490881302291872876366011259816340730258132566262078794293937730883405816982294048034393246806755200085304321405383703681196744973642664329903378153525502252468254277644827260490649082697721388698375592442072377285780670194840754825024590313667177787679458280971200747091410334539792304070212470478959724163063167939042624636533153824680278462999849295582970677703673617809127448651096131947837554214734726097785221422069774417333930237588915451744621841465888174063321925106639986263693688001561290539774891786922752271866000006486886069438433416956897619104793155040737906994805414239314034277212056417610191846519831622755248470937887500888830317863573072829187673035632713538749271862784783688027045784857087073472818436550765235117062567559404561475108174628886513889489019616918735866440178911396503312482862821277323414956625703814366703949649642201742696525412503138667154925779242582471839304062211931552939524729565961088349107731184650661085378223722765072330072986433681676406634827126596611335519405462150242795988260339343777851368966589207774770380912306198797675448538884934886151790229895133551513178169447938984480551016044753872934602081056423999956531329438181181794916820664342298614174888862468891091040157838357890464703385062422545091526178581720960154959041901980817249863332365323996203529983358128818444003123166844128209215710365003177932767165548592678876429119443885218233896509449510829929260775654351813998833350031659441874901573825151534911730252921091190759492242574830715970710339463947729017711117954838753245430821919571097116313655851113361677992674500225456746172702619265822809693016765263536797856218150440685524250206327743120789245928073083160954493228199057876042271412546989922037225580941931329073979529846907496688497302828612768342445094025419733427838637133216298271886802877048859039816542665131221746650688390343880540662876132415147364980113225683524539644591778808774654570209538890575598696204337257885828876643040148602881347856677752231677008528156703135170869936872283959797761427043044338753674046103409626598140079595373380376608206680710192988098346461125352172626474614809062450843560918326623328614765717887367070432644964237558311181086135320630452731355013389325846980396507589459952787098686773661665652729409662709536189923808343523250645354065363667008123808431421291608489392606475750424360773370076978010486226866973272061313087712428838079513682325960493546269875478506976087090621394446709870504353997170682855777324556183385967258415295843880954100363797690748326392232269676310863039981067968923416082594660541196578250833791005176430719600669142267780803108635894954912666019682168984872798099736518826787773105328505919123036083903834063911136575293847387327396475869511903909612921446578009656278230854852576498319237213841985818804914914081220298366647625638953591530954244210238114009422010543587336021765607515378419898361830584080950957923288723131448256881159002930870419488419522251557714253601969600071163474474393500568456344376900335741760282554910888521532392506087844859788167278966902631720010672064720740459424890050807628233972035138346041011685589515018945459228325869990993583184838883333495905712543219713999285566983682627054269275987881498938895553277521957161988467584092669237122724294525243982523836417638668895023936487670293181515076725859767848492337458449430892319353106512504708445945982293233904494552069195194753050359746278833569846132022212993897490693428402335529626356027699332292725089430202063972785105589058443007897205048804412923489474672886783891502622888529128742952750435565020962942247367934640352551269544793314931432012374843865246657866338104602907702516740675225470354471781686148529224587986189617232446589528197151406141012192732756948471047837285769460924518169168799535580404984124110491975743929251100959314280976592191588701463865514029775960129535847007686116829226443748883090358961861126606849828180729560094573218650739506343957012535482591503536895771466916509576445043362651251199168204088534882183992149037468832063892195839677180721260732788561951313557657524341345366570848659341598443546453769453590903140796550810660494682247214518383466501317890674110392803618900144192600451772699029465191226253027545038060324885188360479364632249905482580495776019740854482383090288704159731204703163934836548926547230251529080407727077303618518251961201662424935513390875866910423295025219622274262425667159298289304043119006795704120100840947826597883650327603103028484313256421105347720758350314603861753293827376171032952138127566993973744418533716325063558390500476440504318465550507304089903892699362886204694026958443150631088978643382529879170065955281987833755417779176288761977750252490672963806218479450140143711027157594365404088338258179644194308333085998477598891768522529027457842168969003684371389240369032563217458039652881882758186777509035040778567728215280374417828553924639303017935575994696195281418099816035856227245541275974536963753619557098053523451326657464468262355483975934275684583454305809159838250894738928769210297688742998711895415173204358065191585613271735168111490983541922118283470365728867448815599802621633472873434300014617603878659001368802558127766026346001449208170959073372666103607362423085988438525246934735966099379697569178349256036933896156460246531209080086702727847741561036000878975336766394492456229509234066383358361325146393239122021141047583736381538827391201590659474884818049489836365636223485421468944007752508002307778637642480862819102818203471183174373034933442617797543695377194812821564298546505610964355938031147766430355133888829485169813786387513074991074046317672875953236553329126594764048735628441175079713904740055133239389619555128569785980204776976005252060680548352054715812429473628012190883115120816936817092279617805040894557835991309347632280801514996988913569688136111051402341987841705950776564048246311888590148083377611155237681938306357143194096425742267143549818473954077948135087788954885441300133174612510004307332540107531424253624326777980106057834007304622567359488688561912669235601232984355772650000647431975147022267052828038895005700215205390805702685168817909665359775812636888591476941979748297001132585765878572669679968003208967718995220502920349071802140169102005628654772960086926380272911146940147119550677284396877248732715812748042859781030245051328997441075754153570752061036910290943137069230002758489532125119784688464230106804490373289192260583773886130912107117705877528703187465304552555815403887856524173249573697748876076701195049289418324591821807077006224950287899840599660972843531403320074981937074803208342455636186316599741500158189254372358414756584357119349433485975635464919175251174560830819180438633576468307192414107500409488685010605996185014204586165368969551147587396066060761951716262525023678143505929992743236542178715953380317592362788987829491326901896017961588736995835363153030503048325861920935222145942082074130397798738379090640621247797034395114163048800821786819413639283924963789204424567103999952897567048617902880627342384547397844728193551281160733812632791742199283209721893969611128149769722842643702754075034764079013453331331324564963028811571355381128154995238826309068009825704032522248214189545731194710504933927455593513204206562153689294936646864090563109585365986127655029652850490850254774598215669295127371133217455907531571802909943258834053869948164099672325312246083210899317524899234438119482066431676943205728014253352052621878287214890835065610874192721644374574088327016759943094565014599538832556482404066112833332293469447382298147582021317975355055545776242963255122256361396446854997894034439749368161016591941235650173277012122574966526646311730711573483666997513141825911584614328108578758134217376132983820767519555975541957172396642226764547465200211986278228782024036452599026354617705964647041183230009657954902487137117915631899562108167542835268880911798918327001510089430933502265509880417268148908812291287082952109766415444761833098113691278977477122980202133212746589852634671926624555388319277144999140834101059524872569030654767321855578141002838442058890414682109669054337555206532913423204111494441007724598556415289012162258426352551147078595553213609880932895069644837618776325259427108701314679076750276325987325766791190434282627051475245364942311690421570359226975853210231171944589747868172321561144409284498744812255972316167944415034458684482061781214268917234825687477876627836168367743249408773244948988691063112600380478865818134246210720845544736421518472876874593713829842803509208275211768993845949109624624375453677491827465418467347459270497448425473396257541989940808113988809617887011452014324499095869529262140219339730031606517359189393323587541379546540821388091274730654354517356644909327584900617263889764584218459134590451977008403452259990961887919339840288954323562790608249368941546323611677529403826834623555194286330995651263696800115648880489294626619364652318434098834586027305854133387446270545353835020397571542522128525212821830130299332661790412226923870614682842645748068445855575824866887213502541730937126041796912427648131997461140265341380050202471813955693977026651364840094792620145897591381816690481772316593805505270690768397746184553099126023123008399979841076047829385141598878724798422390914376454307318765451890953265023109477426368636396795651027995433045501962995102898414290991155800188855761777033734674454678487614755250966994450659033739301500313160838320599729844570358016495399357568734065602219921218156704559208658030544608103653688805197213057760336977912821309760536858063007951517605647629964106247398349695899949168518709749894440934598359352326346812880259885425319651316359589443145420068157243560539801859680943714942865566944149003491115569797346153042368660689450470004538919216435945629122204204541554833978183611551289833126210250769674369298551683203785418677422376337169514555308472609142939192564006809487739878753639043132845210957787024572168036765425369755669337691689372159682642757537449497418005416994427085677468627943345741278193459750892923701449925344551435339662061684616286946318834116381687326356609668442661816850878358302201726827279515949196298894654714150300669941787908569445027324080377784271503413853735560505077429615383765820055942220959407277510193188046442455891294859364538378440501595920916918099209322085122672924749205144015172216109792122102691572302365693498551243092306603059365779850296871735291334499724162964734825673764078783302942775073652195965175395117328425384809993466669701185413116405189495265549500814393148266488144464640209407832353934236123495389862481501646262872514068441540323241030381292120284342758340771587145838104201688625456195295922502893750379438292604020974002976591306686065952755327510698794454143399655516194986920940659152382011727678666162834438312481666252038836576254126699845464566305626956300524145350816449079591479909647782002448130287670724944687100703971599113759347014971086244076651521471989330630186021305048086070345183800627956418712285362423280665412324259297091097700292972121994744426228543308684127337911626984752085482300415690572101220265546980356715481577352519046914043093788933407978357663892407945831053809339861714613321315002679579725818962290576615119916240999193263215059982468159612035086196162185140955383507737097381655129651352026318952939243562395145390317544223633130657390191841231458942990560684292537598977918245736986947330423936923373521115413358476203818142692458622068160517057737223332996119298888705213003969668000446336718096923708853050360875843204027557567729670050070934456292198755900985174161171010498958797084469521957848116947199891507108449626352546703160579177421169382207722093235260057182342362393439411167924584091526061686413002559143056811111779708277736151832307889385667509092809708369331327427004104019029461443725910813483549170741047323029756221693280169277049193289319141114908869724389042049221875825979970675643926559694021381142671289816729574280407646858336987035423399064120619089258734901166405703082400764912261285010187293510024604618222568315323826198069982118384010719482289989607372010907570340147326678500305625838998049807198497734231901917472465983722720742108557695432505903407033405048224226143087628088834201672994184495616288695892134723418576797210819805461815839733317831479781392885064825825088189657616971791871415017060915450039966398970448413092125469123200475844245375100418446477104934773844112579849619665499434168902643712951268056230282085270878043999881177877526438418231405761652466193118860690405132423239531733139514493709568694609307469314164276161660931859705889566352596023775307483043131652545728120657912367284982185753474555387547682602700226624748154671053178253911427371720745827165096276400991584750433634318265463544026404059732843711650722540326513665539498189050993479379819858069782186550218132703931536004981536976329865055365877436341521795877561245185803483099483370886025489091525828237798366834873955709870662763298057251921879145360285571773767137829961577960518685217746247279774458945612549743742831904815350809536033451762018622246012604624880226814489030208699540534068141543851849396599038459111745869040957358146683360303234564462806343052444122209949711134702414560239693118152077552892874878936396189283729487007933111713325796976022839831774557754586129931105181072396948765794282037558844620777071732341338904151955540464755763270276533801079265904501991399911148631955713222124599327298591184973501322417377527672498332161573711800569092997008018124471868966578772680054555115368197971988268480789452275424334870367231884210352035048530872411544593847549658620092222075697993203380369371970118620686785419495255563324660911586550421706176765066648772023067335212871229572864628593292686770613076925551413724934001927652248539432700595619641090703916208440328327989866193987592464676893911495031828083479399860466583725069502119398759246467689391149503182808347939986046658372506950211939875924646768939114950318280834793998604665837250695021325692175649023887656152401852170122116212746858948178985028647447787288052235235682285203593722441279936637967428244839643780680849492301720946887777425186607959324537172908026139941096976765466340943127143436880658920699238896633992377814747893502809437366027590036462416130091873498595963428047847369567350496512427843588542222945033800113262003971584611455196041542091202354470533820147803874100072252486231838881937801921658210374416709758573537411340839395522857874706821842943745044891824751438878123345558634507762627021771657630862420917470500401708664012755923070392599025709615495474257433275765180189688338285495571322884859164029072281974743908432916254992336031309377259116244716487414226815761994432461605729560600777557271214775550282195708859876103086165269974345677368493453307531078550952036834215382026867636799048087551299768255483326900052195031300284825693688810115009007083340100905416054397050104488012412314251727926697809424662461608953113615416805309768800790622553127495864955698799918885362553006113245833548285750636948822557373040371925279780093240196575453942601949749977794696391673674187369879878250594371175061368451255835800714655979918322786715428353719341954906222489359562248723500159655159582036027828741745205135745484097432753825755521956807347778912724295252854753774163105437122739220305406631653946079295428011949722859868862620959705771365767457694642298585674040854993161468923354856786331441819221221368862997065403171115279792138934362829963788413277829395098920549556847867473011837384550561314781570541630118146051812583181526609932668565644749486427236111006399020153193412882598321073694949529160862702977939042236362515914082470343247036819246398275189526910227950314933730899837799279245439411604715911973315412320997178133722888601536303280053212834939228219427985955455416679258510853206403209848850627815661621488128466767270416201689843688069485991007452575301982376453842056047226797984563260150554934161892553326356677175294303411190187870568223554712015982950289360956336836118560837692702315069334026594230419562045967244077011364731694969106130497283217640846953353920648150058350182558510308549034880383374818319442188130958477422037695226471444172459939593411907054416363079721417685593828641120947165620194101307656939546975599640082976005354188661788231110201727155730225505952903350137402586928542771974669844636030298141183451832193293466211910497206119736836295670334194277916762383415463921665589720671002110390859686683905281737196527813921345015475687862913183328433454758072201247546748768289818923468803249712157862218584652381817916033876220544502610535277301691773664780882417390884452589138524041891705393013605620502532289090913146599752230465464962648727050504279856355249995689435484656290533528389052407476828234694425124220524321460496911515995027451192115682913619877757442997508199457149787740475436646671218367186399859386477584804973795743103135561069226488933237941886210343030099671295756250603303590322176674941553563372391168890323669273923796055594782223183502575769569048499578355341992708004537102909673080487193192187349050957832790929334097901123050953551778787974257302591266151473309719502128366443945796395942721434847918265638596525320195043897241592694683925242421860380728712661664237383521768393446568942250005575813151840308505972561946962356965072584850934813782928372217068228979426416542578445420092847486454285138283727783813351358194082795357922839889739911377359314873156434126855773893828279744037394038580890547585376469202656818166100037622459230782536902831976059742661345582628952000747175198661393484522858606709892291398600737672164274502184189906875128210516407142066063895878028324319775810884437261383554629612460612810338131101281474830649250015655123906492637605631557241505944464475789719349309910266809570814842381048841857925500513676842913511411251757939022262587400884536416338712775753025819623722715907425554757340119363083529254662769457148113386654846390212303691690580495406784173105594659185983035030658313990683169764838761011995193662536138889762266165084667337594784663042039384465890384648834728228452379531706994116136410819446969967244407469283923641305679339230152919108360753578089544072265784231508405883419547823568799736621842186804968764307531395163670366263754439135185429397386393035047322416695286543843954922710470012092173801038357609531156944974648759568577239395946125495083017942186451249760690958553284814130398283321957441569941230839326637951758977091254917797311845939926153452213996141098349106184057736741482444413357246529150310050804462575025374527545985515392948604233021458280713117375319139408935171215518043017046220554479737669667478931730962714817804320524153739850169540905116883068125314868090439523232437602316225250438836689868570661653066181904568527474665587161772658516507341550659451756136678425907159518526492326611989419927697833028837779411117501447410422908089023660833919406521113932372676135978853892342828890089773054733631268033251710912983926148497000542686160299429609638488644406004910294550396652917023423634660650422229602109878588006944215698577053669844841086867310506963029609061934231606638748990018828949512561559110240446282053159377096842656480346033781731481405384504499075920355090644590990909144525972567149530282726452152739661221826041346147501028649224457265765754529032405471437060123443121775206577764552719001153953342505418075391219150598379852615733705162295441197030788874317399891457948253499871589694378773437376751615663954647624352081865315975103666897077758328386505752358050171402323620418208538777467983029508442338331103745806536419079447497062847706547679482962188669259068217600673139160665816078583284251386246833062603366795467912492230323889295687728947612151536396030940627653119766901091138048740549377875158608275732363545668580674906271659721599029921867086138968951373706831731568009195548277920465055777750668885211866929765211039077863184433695906723520283999964323963876867320361379164668679503112179126791204942268631969522649415260318384601653704509259257880042440594434946762285550854525566020694226877321894633390276715358202225470331223479856682702825245988012346839537763551746891225367881238189199546378441270332418737376332561304223327118444507497424223782661970461040111226532758895572384985057636480494092480401111627708715552798840790361257278835912414460810333685676978349582569733383995616923989000850293535342999657406963779502140851903006449547774735484116840551028776110864198567266226787228785939335839702878835954512635880762654146340514808297800269911581141860547629512881994308386653204842674055555102533227461342219931036194777204952433882117850322504622922142456955550033137758428571026505201688448712793185637412607277411417869893971542267276322865848616967758187395294670929434525373350650056960134607318025776790991551345034841583984675265057374239747147481254009357819535459734584707650074470973254939310359524408780242766698463084264446386736380162865119392598513341956303926559571167112304497992321173606848975917558263162239022622489846228657935727962491037640382310408048197494285927024632127390069050749887731732188546893642438942096492856644246175264232707272793308155715588664841631953161411736909081320190273895284251549967224303489023763280543729161398227252990836908892497388522995923775450126780887326119546163620900490104565727238121860734029185447799535289959211945518805213829562617740804127330379420903678075311256760080426049507406190564878080502343735589161553899274656330762008009969129076100632053732312693727962007390543343746221025899572139788919097031755019735593786924046361116027206338338409032239894189167224940658460386883599127252142008927927430986616350795728379051438551387295271129836678961619181394864073685794226166711785990514038234729140090097922491302499787040038054145640642906637903922523044921716095890520281781615990117043582891340913588943930495096599605113324294482509836510749851489015128230584721525802518501199967290923019534159104663497514809765758541954441938660301023932894081909479278480783045240452965721750860347225859417577247107124427077986907209955806822251978998647932984732830779343237408852481802412599360762807499552231046321991068299808118204157702024037867235236304158690964281330364662533949494024268686257659183352224135410200488785056997471685240672865751943425706257347366754736503125572083747217077731732426112803077590654692395022906758282061276734984710635197644664427167209384615607255682037913752094903953881686272030842192749330119689065021855424299174257922262045088519366428928772287755130094773646300064241099299000459324667735313744405486684875877715788647542882513257102499583552305099040681646341314573144849393869833134777427352150116669767950323492087026670633342677121526488087953659299373518992420672251194807313265923343577207964529777754867438424768926160681733916928124635913549460964501115658857292538244691171975572851078655298454278716583023412111155300074663525550482452345410485731877910034762330588407257833498442549880584587627134845326920402256838316423222370976454714050912364134406361959220500003871490019578335980781008598886055972848479116532070874593435630802187162111489589626800897330821420606706376919309905812237161050163381359939183593187130304492618018971089282042610031614996598585966795900943374721233344389517882139213168961373456008847211834055370417390886550221553897742480597895417234353658614901584283694749006043088952560611138755438584962726915091086239755480590136238040358262600530735745124871077414263477512509773977309390725282336321002648028822972706410952010528838078676946203715639576047661145005808047717642728780013131277413244302723408851298968560383152465747436798237046012790757806089242271283222644030799006153231410207971238005338205305121911738709301983853679081734700155973475132833216025461225027248671258349531573900562069353295402359717153946924644274388027596148649412924752773374134950714878033537786636311856230615348675776706325490186829580038258788485176455630870877721920831838898622536779155140403649128193327234646410410420881109312609839618401855846370235435946724857491530908048594183126096729940667484419440084259832175480334598617400200431378508286183299756817765710311963158186599504906723797917873672190751564065343776447630621705766985670874922707502808767246204225353894474142413436311016643663969988087857335045346724540669218104268811566954384513391960569769130745213394121929508769111217525555025022707891471738006854236503032373748677870255838905989363050210087166469785711805166173156702947958588442627198410355094621510005467265326668617442935116210475673902419773096614724220870452411170743338851786662622838975950520312887201895235448217394782194244399758999835006078041238792193065679325724872870197685892465232506696114739730088004771044338654372268843956825008857164813094684461270956543139557547580507935142675631381936217024229731878481227768318957407048462335383621659586843308579628537616031367647478472565866092667662925760874527312462223550441586597063699892768170434994116812797928212969226927665070866724480088023309789282035593082888597853534119785021182140046842505467402549771417333366895230491683144437629773482720505996184279601382438264090054050050543899562203257694031141072966938554123861845341651357163376862041548822631196037539535157965115615791687520081674536224127084386082271549504444160687673507152786736164990684079102050438446012308262194961869244003083142930447840925631186320777512643059419959491771706413089068677746385439177938197576164468111066389323583618409159532116359788090633295173261028171014866694864396113101717553654033227890444701001976312123410764636362458309773268932593277419195714992449855964697617304672915269924740555769815934966307737547040710403479749755177108493121353924293299736757220293459757588025764039177569051215528023145210293130499653339373023200920505409685661504058680341637934252197386129365897185693312537414578482782700860598921654039560817318742975871919106932757121799520873208269818635984600672764338764820681561136791228409737944035561387140597390368679930474236923503106534214666419163614019702393423257526942990274693396440815930157918795154429053346261410491553156884501255855500091332206111270101844350069521746173065959864168810938163042497608770615457839544937918719179778214050225790496722122077816023801492381294008546323714040529727769335214212268461859782117443585242059109702894198462468999523242239816555904667713228763619601838487431946537298122963352740628643961041759162471820635419743568571300716754368106285383585873611414883279233104600613445141308647000247195647216798552823676900196362140435649853331976888064888620020461779025580227094968342346108349257247535445213392688736939312898504859588223281475103811888094604514397803692352923365109003413934584678504122917413504943706196058666194826656431821665662964560637334750932895534325174972737913622427082393564558244327306600773155471301780840169319607522344183992270011897688984844635055266072691642378379008047941617684334383228458537684138118251167756383889258394020120613567446919670757527804706934458182769157795686023249588411602895983784051152559797838818410290147847623450896702896672888896476579778230699798819270883513493304458981708646817971112838182002044197499117721541034205165427027031999846634914695207615986506848852203163287322590381506483550100084517784375450743614505922194240241872628249035634126526431192655030406320257536605315091862694230400933310248298609192470044115776935057387004285904866973642307055861273564020540482677643880903258027885087690994809257329017331171653054678392387839859920844949442823545511110755671417941567061971198641995640898197469650383598560001537763197865942684706532072913018346587824492507819878301123504261299130804129377867117144174364941704130959984277496152385231195216354157162041855426172577328975427489642524558369008052069719897834053279524962832641569341561399857286730987422621402885181286001908460323175013330780748312361641782613805117793371447041481211899591909802237467877728128904530357995934005672043056440449354780269634646397191566000926368642173474117619390641454023179390631738285189036523986290070998309862522489234371226060985810304095763885109243895097633649477485841674766441412104426996776851984981650675379539545328708054990529826809162734102724026108419569462737591630570306936049304955176029167714525673235033671309570781769610890255690131338374511581734260872080919768962376158247232799696762659491769689035000181087114738574349836409909279336945471815629034528700893317786462600184845835027509394656574351979662469396278967133275300103362167058028060203271745531773549327571281289722301694317565952958213137736407650325824120958394227661748987572818484763028751860746198159530914517767537614228781538324691582039685564713187068248641469435543418642408986534022652979350425310530745564744585987765188270858920942199651867033066055402432358530574124988971883964658269498141403272968040098567409447220294441441026819291341109421874151328287331079823292514506610782792101218010311197042776907694303544975283057095089336353333318510969023890698062935716343038815074851498982790171065936441270747611298518681777313704723445403745600286219167913221365782707024079509967914180334821962558626695197436112488465946582728765644989771594444211823492755174989682744838464215544522543357771015711153126469088386801039213792718885796109842454401760358927360092579861974341024609362898969559726019190217380700975580237538083550621119923314740908846814351990335032977622554102622476650244698571713535726528821856861123930221223530219051627735697412863498354083903277354810508071163896557294476684579217411209448401996556143553068983086120849486986451710667370769181572544604668202820526485233586992499908059551927828814586941368229897692946966657523038260343104885807605511708300919710119849253648072836156976781877422150711037399536927661524524496535091003452889597770297427788541533978588106607156894926213082779492654943621073456967878550687385561133352065110009516722384444353315866717983535953576451196680957452740004243401544004906266613796295747065274075783714609400233265567720783707945010252698047934975995363121472488812065999504473245405295694916113543765127592357126014280388914399713206284195468196885884175292922668864426214340633843235449035871836990505347094758449581539405452988391465186318150939736233214054509690894535311623502316264542428788803218861917253625798092179692510697663155348667212890255353427663211799541889440802311171241078910639117913801116908415614710432641203243520194668781977732716307048851095190043634508471386726771537892816556212509319933084617355227009185624196261048152846404552681817698323603329448717990508744856244052584667057078202967384386993693546543645644472300445362273752665314529921962230988117645680676713978543791658473209504694430438488370771865018432569270115171349496173698078242694080406450092250682393379568371761215390570823858548291004571562854052309447709233679921158488718861524422945904780396105235477529451843291821776470401267419025562578477103968755033652996221448817935264058678133326215920913490441894123125521539959779526570682574624076495486611392481467006572277196024957345080584087022130787994543507255603602188951099248370331300766185308525391274076920389698099676917560701484757577914252713802209415938774884940496468312025721533555806488881999490244912487443870269648190456178567151821532142145868896572634255779575626527006292978459645061748964253000210922479818088894625167573273500296771470503279987579899629127928746607578196479484752392035222645594063126283248417539754817457010657092602259317232087409327491400979781869702601437421478631793853130815571167180161841988500770608288114464967535146217195521385239251104198410816414048220442494178279538017357430963694436495063518748203960509107089209844314167840644619109367713615057721430047516429278462760612587932649555864471865902984818220160210049977198361803778211895956516892253934182635010371363211577812146023709366910632191188391695270536319994253584490860239808314298724363262584106915366179150117100345827398845023001900255774774312143342156091021425630047292952168051282215647987913148361230334611027752033829796984764875107530862096284647678635312023068605098718087512822655052819891699944505458252874274597063402296033568538869497993828280147109986008705956848412151964733434766337627435135600524136353719011479120299222531533188660251537706833101548890999536990171736942984470666770482793224482341820656742587914678111518974774907255848915546647004332922203989506494527707553293229942626743329882814282556896573326678657561933719593908066429191475031113284467514873963577287934298975641336042658143050921348136798528882925725159524636866705264718983961963598492113415695319863804558148479071780907869529272791840452294301029428367110839506348425063820855586539232765452862272664883418507487413938549307417630279555031029081367706943028970120253177018494182091497923829631656022298361980348204057952319381326654609721358839304485216628721435257511372368450592929824956114742268292183057942653346922593252263720317019199984476757154104896916082005560929388043856153939388610800038893141551425198807281346757093933154300525690378371445159973023442914505699864146759503031812715272789425023834667263317333745588099435443950036775670310919094071611411540557340884834283353599319214437106006859366026469934657200936031623444263821514244283917159614658131742473170515632534823793147494492006979548016468218988433275915280709539882126839893642318106548904480489276848921854710676978861350333524498113861637395731026802516423133941154981062670497502013612853271679450641310008468510052112136399583903140226191080728990981630702063541311154226660786954871773820214105474014024032631964563930096218551712914326524427459441441827560214455153440454002874324957770584494080984033027258180963179652491735070149484668415725465928994947623637005980489039657631382402769423666262269015147894711690498025494902525878222068537260457330359730907758353931703088870854234953122303180229287959906405017737334421306274314312861522090518089923909090287912051223118684602413327860975002467507917126057740457529256436482325915999316644509890191461480286002548234387196903373987053600376311002385030885515627394262315739071459324738698502972134778226071168099600604407499093418534005721719934091308208823412305076123526962124545508422240149861662157316029979040149669949172746237826730178940942495960688437738947431540589473271470169619858250912821571405308578466191861322806103650342003901308140379286128430225378811284489468830537103303123570043462316590768763089808395415916852054588094762371192788990746785753669928142352470441171665252891003605377559735588435425423746517694185144707314525476876928997005954613496803973823293623899801986205650562460668131022520368054832484334969568965310038523754667587856799400946425372666150546757091298762361926700835987626785550302863066879939226509937739884608390668208206623012461299730378011574829644982605247059002013885624414633410581453363132825605320520059292648083031321203507877662958464544189169537342428139035162929142250483903626144425573581074868348925185396565314981963055712419995035132382195118696723815145833934908285975599196697217045343043273161935718967626863978978868443886119041809441858258695796026345630375524775831115431147620359386985073776707427651082481928976810133859699786143424430006768439420759554957407609325016782399296004574035775833310658604115555081469085084839959586167662512905315303224394011724448874034522407180535221879714738531321688962602853125348758585567251370781868635211696331105720317223706046781195086114266665602658062908484881723155659726462424913746676244614371952845693522156184400208981301595486002990251885850735730715293231231813184991789363734145399134110220355654105101077243598605563174827784724013798347463097245382607007851025263816602743671093497686779609742645392324196337989768248442209801913305485964528681424629087353705341164347696964729667525830078693093079849842711687904408338186326775973380325268242243329680739506418067156560271426821123031234294855165365321526945761064682470070767932911101196016546877992087415062186924352558605660814350070546365728251289908986529882762656823007437703610580622266454799657003762714425715772581268682546629468723995640650972832407761438918770424976762342214513091793687746062916851839024680313643989741696135882918597365538906457751308119345519829181491284576515229964072629833896418739380246322470736392768595129132896252267569031289898208892471349570142944686822655595752774582282842997280977738321273253051416992465522506661465591357598655474894260157123808779428472791143722367111530382747753341424240717948860202834057759385860474399509433265113648775432422147266313648590577719435372785810437183379009517981796311350895996055705684217532144079895592318480852487808367550068345948393424783285656352476418949336492249297708858162423150204913980435904498100431493233010594490247471847639893163168444347404750568117237464392161343183812685470940210927957187993693138600003846851436845821166800218282012999174809263989098956653940582958886002827448026999169801064240492426581075921272469063099245607421661169418389720402845531707331523151114205678509496575612039007683156747627210704573566171878402962624872115917692632706359138767846553619998598318230451455400969742685037750120083213320695886019730512187085418438806108838143347134325666897926277024434199218076863100164857338404082407585399136557908117839085420629330681229472933559716393679462033539152709063720694673423381513834269471410243982243883086676898962441571506447479056693233180852464295629231016005111864095688006805225939654913797813563666278658482540460687315167516856587130530521158705592738375347868908081484472246840335277000011912546712330388861562966960158721813302472824787916219784911643328606722244635288310532085836045805147849852094422354984713141131881735244076916983817007803170683363615105313355153309584662365539260080212583362096679555444629622348692244319084746391935174960159592862044537991279244395476191279923041584432891273052169124081319234088661680918543382424029454461017088275160881042747219249209453946970268602852630794031070690991309220431159645042981910857994426090015245142428334158154882276758200364152510502790358004805342809230236998208941459463316935938990700155598350644690822444986197170443076286932014459515648487770125948501151405397979633930100438405319067907436471299584718332138871109099823566722126380548683874189401010754001378810183931591488087478658787950015155396440761625775081863582179310117261440466688848182194560440513792488319715457124384193438967247551444236658936471851822607188363875070459294519811236411780972307434095521941405244642200902221666865483560810185144317155508745203070668135820388435215498794496039494729606547080639824562739470639744064051378929533572858668999008599086906703943434870800817607140504325690320088153694716707609996780837875260810732992479498173332139531838778328235916737012583124289064735474215088782551498414142350130167267508217911100255797251742760073937319214210392603297081076981905898803891618138257991444343221052915690578788474582111038266054989466937643057282009457407529253361163657509360063673498502843887265817107259941078493030813011758648611583290660573274270603069996948240058608640332505107457077136203520688649462344119056316806989240695412565563981942471888922035224322609723175488853172826677391037572371010673933766380898151584267604685203620367240789149018792735561807661755878181538307145722038817729718759389566296149750567853450813459765928283718236719243140097410543729784451016257543958762457903820890293493150148104836451353888928030438603690164265892316220721896665193559162749795504800925551595190461860679188081872269702979622020888002487787177912581021178942507276131979543109624664019772097232261002686374553001861908859825656562652793660854078228115251551182617048217569561541627851396377824799523943593124697524369059218677942638333073373920923189034739655757396649098205261877727084616955873614559295219812689331644338239731423847261594530885254088718865776402238510510879731017225228452997694761737582499526324714118173016020183311191811222813508856982100481816114616760485187369995611471710489695145284969675812583453612978034773231329653596522390633574214202049904797794971403687215328070643579877121283723586718612328481014289386688570376207234844796759291442195386422012108207798876551102503115293716932919965153887804251625602574632408504228844997762389469269631528657293741343016936007603532936970641782778773779306501056973945611621924033667640309078354145513831643488944997923755781587501445520648693471308649833007389808805689434606520734875952488738145285633118869663717726065392901299624512136216182124975855109246086067032927819860265252326322826483572273239183834925820212759389405715304112736281883610271502536481549937009962498261244882629179867282497649487437523772188232702328607878674144646760756001820948906734657407576764552556364224302120916796372613211785524325445167266178454961087379037460663294176926463458502392755446300306386677951156431097661700950080536746629214903192289315461344795220517567305078224066541216430977472513044952288499254238165437964069910930372676864436987715967455838788178236999390729136295113565859212624706051237992070984453068067510219235976258038209179599403622932241600021449483069498884798402571157588664260148826172477609227552782493180061245468044327036949428051996932474056765621398689679454104577806793818986787438960315493080875448508708413969377697387704317742865816964018711318755551398374341494804367385069109968928340845548658831507829804444292178135196816520654596288592489947217333292060737007254838521659865898890770988354659504458514681125195787272983135614348787393577890165063107586440694448397384650888544124079935717189272387604339267541421182404624139090542938706128239046744918290461763858177673659738693310685073570068839226144004967522441094393867947431047301757352214306870791138992751983374317080328301799688937442731252158213563170635121945802432086185211252156360948410862749282768825625016862899405981589304199588164286788710762011095607597412872305221317126050716005368280281377723429999177300500943273641748740893193172289404803345998552264108929822154491181471363488518083295243711560960510757651097870387631281243959587830946173490398347583369466057915452205895914405691865609642765085245895705877482881204132612392858948735235603381043140003572891237856274325025046365007438900955727406369494461883652866605437261524541722058298308509659364828419586961691157259324198273583245853831440167068161487347508612648751989780776187917496827001171248189184661389879780761149572613782398415346224573473913376690617788060546347492480215010001624112121713945435621200002729273788090686389119833516081162870910443237307015978376805284281909521539008995468145604809347727238999210771270883119994083118190220414788829239645428650979881116428598216955662881290310706500009320237365625675484437417993110218176231008020140461666848991344989424122449701917555764928542399239724820650415253703922881058863411919720344394148701657599845533847868765677734770917667146803823673134016398284078802053495468329590014417804615539401292235930446998544589414974439097524012233423549654251547589721418489379143502778941401688528164981439552982955401128307290595547761225000882002512272561369373743769265949008737460443447568747917170247900735627167818337666364901040589004908919037464562017867738315369910284000822875981974853524725020143724210479284879675997055778633111140447469807882752130953990808031170918739221378473632263320076649516350510825897887220534451471505163639234558623587477446622427362128110925795828761191662541536846573185406772626628180746456123652705702613999291616530551980465265030554548499179403755411083989139053949669149956241308657657440203839651663557873061789061420797246175671478853580693617001984457984350911655102002273651984534847982496446187446258304767464826173612333863217678883125049127792009266884842381818548089727394461806922746549046732109474947459117309631426559931051181446498491646573488929909562360569180745378234301662743162359500345076371867998693071862950698331108755676876752095740314348590022881123782362422610194674169308424929581882290971159753012490415058393440528022350651030862184459727403529392769896469538546962372842851718870062273433716976454998828682355302327643503763520442330312191859473589456042668354496126899092401308998337870135124523948795384596903934247060924693398335944514283381668768390601454197079224731086282168592765472336421218078738429972932575872522741969211008889948349564227696402311427539124474432419589510468682513841571172266308178034083469444691605476793293889420433966208647272271340585034694769837848111659256157715352284042764824972916255731478640882004014719734509654777030128475568141016328618137324409859068562663716058890707199676569693695577718697000834782679846572398312806248566411958355946686463368241014706634969054555589265162962210076841661897345442324855875315765411575235082441977440508940990094515586829666106709670902421885672635130220769461647419610124835004883243990996858554186876677309613636285574990531672834279055520874941700667820958305569962494777334336350713831665009160994458603070199120636209472616281628154305055797300197875513378835228335930191701502437749238293956379358962954953801061735070050621153794116136924540177933110673136807906291585771153435290634174027337465251218836939159355205715254803914101411607607349325512865322420066828708349329470271123823044819108063670170555516816605161708525775389709427072966869302260064896574146620726150470861373723724645325437825575900925675384226193084201930141705544579737519753004704168611858973324224553893793995888972573965585786621204211377058501004153632473380634849308781705566061533411288607376743432071404068751768453010249189447882289246709247645453578114727268341198125157937479385901365363192228537725907459494891650089063531037329346048208127547665544803346897509941733772273008008835138661216396087695080332774463275202112383366389075701736586883407143249573763761318902317957201193318346840757130035560035891019144267179484864097507034891571557880121672194813174243874698484019368355064257538885953635406457845952580263489405368485245661207135202821836091210728244860357098485986214991107205603824591948598298235436647477244318744362593852443193498859769508476998303011442779166402353624406948893643366651912063300227069643142891417815651576241366067940864427739315087645327820000514311441693845021360245385952735824128082284051480072499505950421581980220321191170380602272622853152778225079828160184848044638845423818778217104534761659376260729708884217699804406003609507163059379235337276032567908429663771490318446980759242293061592887578809375455664416098881032273324326116095521520558655728808412282000087549230838283980249303701852920622387709877042781012562268286458258207489374506573468058957357127024469933040752354544863848261179497749065229880663969154916194567573417174146656667761558913022851724937498914231544042036008376023193268910997554626585144244130691699988162808907485969048306877241500910924822607221195366278356268888066691714551472040654698672446134183927546666394924222757872605386194266203793909264926951308081431676592825048764721048635839380560930913730692084838813775627306414915510911084412526884282244779976582804516708878961001559623254578416946031392298780545287215559674980408504622708262598609921560665677605919647866196535011861033873012068186269889831755538563493334962036254588905835397049964181414344002208060299886141346858423913934015356423247214253014285912056576385693562776247087717263782078595318143314668428861440577879484394185441455390118963375663753705902427878782986981491497904899821810205290687974249099428432273239292737922935894937563460447117413461811876377556755317135332869446788663368525299779133888406252053557672745226875909425026988026230290295919800718727154390507570920489474278808112161753705708177786065723273944368967597196132409349773380717748506768066110002497094831775850489613168171047157601328115997979669711796489374936580182829314688532667068635647384591938163006141247385388455900458292731183045319492375073949535971393532734157355851621085639294721898095939341482083584956933469183118947980144332181463352839107766288844960868696378265107375503636164492166918087904910333994848244220747450873791935474569615644102072323320090426503949670459479467217232231410461977817923227968911516033387085969994751284280501000750793666686448833626725037759025211026258813348489287313666404959347028020629670055707734062202975577334989184277808485032949241500065621022687299216940843023786907112148745940890504767609155597377014065431151364199391015322169319775060536264632456293786010408510259722532517309265096592347969499224833117681165948060880008261892370405949807704001739674582189242954895071687713310010397851533534531471068595709445060537335919536586171963149700601821601511678164458777993723274548437021671969832403521589516853551392478205591282796153491663015145805178884114809718670698427226473253962785688562186013575514802584119125786169815402760912705074195114039656379289828828522740860145039535211265389538838677939951729586292709478412739115243311292594640007261346492499726818109451514403360630052871288117634557474400496852423343398859029913064236650173092311725493223569364627082647365396147019361465648808236638568712743118146280242967084161021875899860964969235031298244682022862410158118338086958732157760182237896180157677998926335274840895731040846106853771869639844131858461150414828730502311806695986341793389531746981770668663525117787844575853111495225289209150428157492245559138471133042715891355341114234956673240438530735724622868469222840837937344847060291693601399304095065459619003081838025272825630822093726975275298952076633889581100393467050195502721525407078422203158690015995130826384841974877768499169239221965372316654475744076410100996506171262795901780988192588847792708101654593733253528412802007575104825911652513757834010089518476852491018622117355534863696984157401995560286512422361874058340908447687897154212595303559132707207606150897381979948118563835674506257294695134369167891826306650795243115582636437199760377444620187910161354244770062736476565491962676164446807721909229290808662281129598849247811486715342571553676031195245475615652369677038537047688660469802138524803056117638206875750675813641286287801377651406190726700233097845877669182283339165129078707608669375171168917416276908095517572796980520168210271626213606970604160915617887053054072097976849302663763896866273605011398898836733591351396031547428897471385416969392931830868002123289632959938127165372211852951450167108432074694204902097667007422827466722215683386341302328609110460240156123049845591409523921046097565436483444615085503749970595533666022134626048399601227327364191069494399224652457000523913622733338328497275573933564959431552309012332305634341523510569628228677882109308461215686611444387076095828406715187534980897143310274396702320728683010530558547406112071090359352224531897377489287212239388744316548020903900810810885266922772461931438252909725863112461577955027598220706166870804876950054241987556204669927466398863934848684014223352872821444039547842289174547658271945439737217167460006085368620665973430515242833272893912510779922817171405917223602073852789264208037379292786435578021158357573583590602073781354710814495049045918321175530154501983683585986992326799363224360435624602028470500658345386692633431478982991467853814916433293733770647285611977754717802105720656241678062049249605068101450554440008369158538639919640558302728633212102715925478049198906708906687151219434944169901581812162969164529656672888226173464699874380606663650125491935299515634267061483686297879194828582851812784137702694022167558068283567621527125100272253217550117539167618570824410005697863552015457177509609839035001282512873029138851759746097154637478515816291219002842149372840941016515570616862064622207366895549393145435182266250177371479799689206120653252754184139144761139221521346140692864193558216544796702536944885444171239433349986029802709850271418159541678025432450545151692226883222768070584168571088248940081080598243638806930494014003605405882514727455882582328529765554366006097614188174543950683518994306440767709734158274975433460741103268881973632510295986891271391832732394065467765205701268560215837385465875625128673719730520083545205711511563796715242285437561231936717685670090063735425030945510191851196229951403259743792093543742091184315511683498513254915865438192839955738312594536724825067114738962967299087888584888259970107422725250403548180496285225705208236348512269383156280672836714743505598392797326066842950726351382751041974688976767259136901730651236573171953243101286956107258052833631589009582669841735396384872016520049064906403549854492372294274183784110330807773869403934504663332200174222405363394075275059829357491086988185410522731299102223339766125332469073008027004902589119786609546141221334121389196263882666178655614634421081326330771760786638063634243190918325419432274732411523770487756138092796048357649969536874851130880706247612732575037665910783165878576855066198839794583026908602701964112202257366058640739291438772259890740735987644733155270684661916708199094210860851403328060178785143014996799473634236622229182069032445301525015578576015228847367151823494492654828857179769926316352753845576557644067754489066824899661345595218009781422086726886305642915401382965346857348996719724201717604145629991302514144475248848788595219222684372364532964338807885110699339769612778269162546309732353545146226413765213929750680992477659734726126909397872213928074558564709998158942966851556270403366058762305340310983459322900126983226920502201581434302808000223658015463288255290470682507363006307811895687198094076715851261033440193829627188086008611697072396703943181261309742471117179019857430123990754035471650628805126492009560551345333620292630664980915408758176340212996001619491110349375157655887524827214237679726425642697736819889088217226992655530498724790479810006504684342655193059548646351596583419325601995394272542463731715151763524395140380742442385772476565961524567466993162860282648550406859122463407696639769427013669388291856076758200866943833756314593294171455199666977282218147062090620349763171208646603060567561493310916735968692629980336515985213008880240461816833186087792966500277922134760116174813520006025989515021896326415385131177521071464107072577934971822527267900599337018659615793278006617691118316761471579646487410695224537611456887923115088630362384071769195998900356580754727010719916644775922773065889611193942758602466572916464778295951779252172840786074432951131565811663618629044736315551565582337341020541097055398105511858777484725531770169456197732740007627466291601557814989384991548006700158802872713964778855533405015257888467196480205246724244939551864372558440999600630630028981857811273531940034448275340042960655950892253518601554222891764294635309728390571552519220067182252044834569572830248581587778354371951268596542670816960798234661679259260735618939895590289542298200690113501199927833705761754071258348058278068123894285619311111413250493316426052802330398141690067988980373760320995164384890586993696068307101231796152669245304649237463228462799082423347983303740344501786448039881275592259020465366084691021379484236888145262969686621356647670201426725320564435031311714441377135146736716972654522654651061440382027435161022546011116219577553769090129814813688328624816036689927739083394051471433848747692011642619481923964494632004463847468847911151704484391938676530311008242387049815245204055739620581831624869450329535091985805645898908744256831229254345074737341519527423647641802819954873173772129012524214467540429458554024239064717022570044642487593638766367067747962024427680943778548257665128437769009314209866607101870293385933104377328530343716889518480254779912733313963366725069762400444399984287154827354002136228003638783578086193032813099949059658918893750753834426925570332089037583246284679499477201616184924480670726066423943232192320717600372523136002600793811788852402504577314925350249739942544051399099724277891851189238955567249088332253210798862708156400032252780315109766866228334677738349417461225894542098000029093296907437726013869091027914062598515250597766818440107816706693400075149348285405556143047553911053314375746422948620974467908447587646836317892773085988511135509579474495421862986677496696159474444092731132006697861138085905453176264945901678196971498613994922697223384527051438093895135046443755122548611170891396680893667779730994384880861933190910435786072084967307382593792396359932847510040727279386262716704475407571920250393419197254518948311727902461404966895517907998691025376489096484598167090171393512067828395799612263119733149133778183433841931852367538662901900463343328532834341824921071916092767308013235369472648489276442979870681125654628061172604607332191763047412150640302017893205795687605102775250530436122270960467584531273866165214241940868340837589140095114133929545770094731748116885364094183528610997103416723558178602823498202031499867940174041719140283936210519480604819018245180081701371042197459212798404024268963005335536854941640086392177456769534458650883286298216584601645078000035989852129012395900704202660744988785062717607762225506063907453194771889250990581009367298919540995766335386583780980447935377991877121429774619764094727212140235326551777236163419660743763915386601945017769140062406841273162958608063506762937751252934367596073427199675135201580087373954838973439901238256568290785911442588285213661692014029900413146213680632352650865411218084749987584411183629097908919834118753766496048093626489329104390597725632955813887767446954618157978704191597558335000377286724607351853508854954642029309715856369497857640483741505558099188402093433335128195514555185733348881649167694427782405554336977311920143722541541927450597601379841443735994202876052555718937804114892612579830361838010771100500423923926441569227790057027947401364942291847933692535432484048780231777445184177958355825754761842549575395878549458343084804417370879849267419528932303148958991600685422879578929481590006873537333333386381390842099487255117261710872944088868447850811634558526921415402996720988693715886232220331485581742682635950689362344813422473786939460923256600754721256741410342184901311896396765473291674247189934243302802909269850752294907970944300923867287743936255111313628761591973832413491672268261228263127793811750807408958943971900254264126649479801764420164541588131760189726596246144139131920678503524638306577640165229732047089201146917133722878630370384531341942644142496649844744048617738513529373108099859472815111736507191398812693074826906140392864227662784943295588285938372148475070778355119896224911955882370450645820056101702053248444902150229456176556185921457439900955482294137515441361329150430469141799412246093381651362627902827884213812207758942403884062294331727989259418366829367925960422418459417706530195486439481703355241028747044731171507034775083432373331163258767276368346858444865625391872394608273247135004489570868031503250386764017353150794003455728550370018456027699615061568291416117061046161740824846267033518915255188248212726007259576567889912567870201497866790847106631074876467309890914719798792598590625733649734982350312609830987346861627393580579073549082468304972840977323811670824915163734680870510521919176205416988262547605445817711179937767786965421699257855772042634424430420744954897033904345072061190076973635174019526563221392825831205282400374669545909280452596879846081408707195342547613883633535119112144143148505520123581380626492313538338767580918892379758551573203658831762424116916752381458859207516403523668437267917590637053921979811265977081139473516719629999705209017090758985691638906642704235700744502775120104903948148329457443809746260351057898195407639870607875817740724911845069788429941383420608124283901488148725998541814802929492278783243561055491564109174887706706782011985910958909838688395117183801349148254992749142698552595177653612624215726624488960961482979703084202105160279671478561594064613638247758902011025199234215321006017523025742122375421074959187286751895521553299453226894251884094228267577442222755282076156072771039471825668024710660677383120630314662847443386204743259568505689287162653290832787843996507167242206138294532916600463808725630595241532881209370099229896006981396279686279567635198741824018562931984922623336431899309017048819952588273388079532658851449393812411543273205891645786422945268411751880818405095690469138134430778489021148797121162839773443054846149807935624354967141294733326664224830500436445454702749172320783995650868018761732703319065657954753952069292520153070643504713068812890320538545563987992101095667298287304794661005431635846234487441555407133814323441311788424196019037028686962422762465024004208137135046401599347205327556795035339067127216177906030216239978041857633481005448388703173071625525647995999986935319681301015629709787116730696494027491665726749434320813231461388692553349492941183163877889903259401093411157274298013318145782816879135142439557873420591561458773689880807917071145511547626616820817775747248427879712981548238520368959165240543730524667287313030192582952498763932098573120916105613572201763927169959868610886760613384364961695186548486046168484824074383811807417342224483947893998278014734222305786541021772926482091409485035013224151559999016307147814852705161443225825478014344010953366023936264249313852294054753641683646704157430055837298470401814557100296962346985059977885573699802182230354923831879762989415697721236384408891789275277528471447762189205742545315103747997770686236242189906303096282211773219708230347745455060238585911403898969166622077876832601239617419997623655063632660169906611689088687741333780919516149770549214171181911014954347869382062098082787895731327899060020863391127847153684304381498150970304770886881635974192534134122191396287457810993424832714109178276317654209631250713669263658821357511998754011579028028507806698333841833826673945536831965657170319462933641092726672742449927473229138009835744509134079930856836048467786653542105866800521154264867497239537936421566535872081855412598194547427516118416936625563241935915856950889053531412183366239987802211504245660015023646910815997419202544378736102267129412282988880533679439503294048049616771107287881031614677303715021835289024146481754309549059448875410425016804069999819671937982082773346485581585910776178828497505468567913990401138456243604035744024619123769440220076042143357338726039253724664089664914714654730072195292737417679613565233067804268200024230741218667486694628058788787382995232780501070661013854028801191385573091138057275589368194030938071886379375821544435162655991203087848205239374935189559715815518280481480783131053509682356716123550963161528665857859019528717754642506412984945105730353324334890979972094572917009587840832214044050147411438170956577125267157798170976763847864206487613679394578442385860356496644631401310486670561346276901749283229004327112081922956415894815282655842219261890253051381591180342310885149122665391794481743390432270050687428881996706196068850067332835361468049859608140287911963112748254664043703847828840079815791344523210166867374112129449681345101223798429402194794691664815031243187396911960215671211422794306820104087675680937389820546842147856014277688201880717174141274936746781751322771090467300153094677730692232909534956944916011690468181827234778161975125727851535569861629220291884745302698301566387491770219476050941748668411972766044408548329750498907825806153902003010352180271792099508178391212339700700278329061937133682183369615408265203927161518022791528640768315032997406092804831050625515722628713132768182478011691549378624832240172383707271608864192942118171856467481185694008705299611314105945829387033052862979188264932474201795512442329476290348834952722928308040122263722761102752038001209375208856240645311250372640153996437123370790374395120320285350254748277980930302021966325093290944881905745102985217283069962242195471016519393297693706545763334324332564331363912210835291355577008126505397931646814945134120751218835054739685955538780919473746566279031868161713641615215540774535438041479845458406344747450856802808623241269693993112296405603273109279384916918793335961485351700181496982616480034402782281398587901486285212867461753848503480683865201680747674402114766556964387396757966442958864095775591541926150719665373410817064974822204191350352239320369277923907369558805779975526019030814355084924759818577979802981264125192698083107565746594693511285627975905780034193234760013696114472901311372932651887731467214107412752210105151558657134939127688557300645655666359352535450945737896883580027707210807546851979021567766355935253545094573789688358002770721080754685197902156776635593525354509457378968835800277072108075468519790215677663559608589952449272204977529981545862535929556885865521908620348857429443548834017661683055326602458359944543309529736205642829474539664101759387807875790401431956726445025653896405200714870685370656271174667615719181064228046438268678064178170171014557998785949298102867487747167901743550399316968352859211648148786128628911637599276847108874366161776239309829498234064137828071121741237834222414406998486328823924065637743898084631704339814190170417704585646785993494113767101851048288345847591129859911326180631166520977109326025457776640478113979812027396279052178079656593348303196386372636054817261754402626843572645147411143619747488532813525432313210406553747535609140513357644845126503159949939847591233867625899886282674242141065631702826842027427753547852784980625547796730956213501075135701081437671209736106569338981128770064395086822635241957989987524453151326843577125269551165684260624979530056413423679403268694320221277155284522945590601316630023329786184272936970542564089572247314796084227996064312115572289888413406901570607916985539706270694986922613155059545816240665427626536098988246922842402217051092088452264193800405064723514106544629397362950062687069185743503468907870252668899031059030733202099770701955626708007842141750040248776436938270496675406914489563400092985235499129699604654028321299512881718293173380258934336088863956188145305493633210224670237123490797406812568724883352801820879686837674893286595156350015843734542714861534249712522615178086471835019904993217819915535387378562345508714313905038432869651387690329053401523842824396391325686729272248708477969680927365604215169040230075017366194993585447144041522141064749724216152303724661255301796533454354088980086901630718915880845552219843115742231294519670375862605877626333668485075275284790344250165376491633179283207357204363149629332621719841204149693900215789875840550688363131897828032706818206201147097078246477602762963513245135225192242786044766017845546358689564183440825955325433408871016151070367468245292204678084853185295603026039336998791252960230732785846937162703749144838891633750052621697332332152400708758098485646289779180984825342721202481272565551505030570041811989518609216787809270937241480471120320927521638219693005366775084683589386544528152235347557559076380237852151946018272456823639549056812593274728954569893447114180981315364959748515410685460978633032486429877701863553136745081107676386047334640295768821152889813566449309493104358903645141317552414780992535059148130953147122623413540646090598039300729540969213694564498578781314849834710618588580258335380086634822074587547577692067410067571778702148024906809935403404978086974752318213687886719206942034418621529900468668535749778710147528458215215350982709863527703575629384931393160423887168990739823956189887221884206119027709429903227573668718607977070772155923264181360169717277740702884134571773206253029881617264064980178019269641550387293286248745115669440090146910371466589528076907506309916580190402824912396345679839269565571594761366943873933300683738308181230942044159295951718719249267979297129502949158118526944654488816064489091085747384972252662561359833739178319495991506543998379398350900517433878817182955161844732570694229375365255153471178576184977477973316771607149942145263817047522727295570500173374401356029781216871886130729572008682704728150994493655761353006838203007248723891860455582340567631876262362589043407960239552914408186887350391637299347162815765862853465444767189779664009434202490164341084863053640849409128877119965069804578807137977951591204253802570919860455967388601901634414829009972971392282778638712630801766921370493497690438081956561880129790914650754406845318051694049624845495251863363242222261458699500929790456268865970393098396956023564388968632992332376590811424860358035451697820676948892486638330687917659426382009263778903165827050291137857297509740049386753580516323216984736338584197352048763394553946427392885249745167489904651459473884977874365758947077177943562707432572285536101492929675650265851006003218146153612928591069343214878686374342977020598254510958054174455625081164881956344323355550915407022873450617663489800492811148486033667358805224298027624506580641661646093309658322774120168700461864708735460759460023553734363668584630008298911593217465432173511755315755510186309658856027447328817436176453655926246176438777403799768860801841457644764303571298399555691565594231174530659483625020603643822173544096553539509045743693865104312934271665810521464773628560410427152372939781248710605985932017807577384367065631135068593058886083620234778064987975853178401672905978765702813875802603233337988320303896853999145202912912522642348966197633971826810602370959759662980918534819012504031589962520471707676639986835315319660868752912542311537503475500515367406868469956767733057751079235049034577877826339647387642905640164433316822456509039570066856800982518273305819042432261128948518491882214253968613100337137224301868395596441734670841783204007571512416808375541314824792400452430812536772968970444067964317974268159359203135821514639678923853314691684801923785613665706360942213296256718222140853765807068346168583496375655648152132788002082516961807984840474867542864812471892324572784880995178492002381321495055976860978043922721365667914325583872939628855575318985133904712378084559407184483283611533615780257058364385933712923478051058091607157923717358832712616456065679450348099079972050842273054741907781106494021601666662950945932469680827885873826896084877445611837984486573045432053689268403491423450881535101678575706668749563760666307293636497984091052840084546233261781814979761412181872861268653460711665095513547783230627411811482071716466526542709914847880777689282345795486110671504947364739973648066529953736779993402353274964801034460008563976973633732229471469730277640940775396288390125824662939693898770158620893799185516933084638159965395913392629245005644067609742316903078027155970074441832783863920059150419266647287527897954927703415082639154789692688330816604795642091123793125124523826289132391142592592488723531353414037167337993061711996480374076644403610827781509371989266789958837505255476092942001843074443896493496814253542442287548263467259939978795979725472244117287600771260884093950481192159674887395558626710654903021324022477079265249776944955205108056410482206802172927635615223773851063602097203137894838908760877304444339107037138713316374909282154921296609435599576542505065970239239800133971925439883533581932604235533464070907285804865214153390352229706047122013049412345535778954712486300047055628894550446086222664852384731073317223038564186531180217935120788367893163243192580644850051145282276974702881297556723041938969669115168403425219126668605613003845205389336911210081205025241087952203462366013906294095868063810486156703491895288995944342180753633129570224126076566283785776310584133249700802109639513491608642051940551379803738265147259899902124751359728276487048030240957692462436925511139223531786948292842185557243747361826577956003518901587687598144266576265825837773537988011685811161188545871990328237725765974792555501517035225204329594566895045977985931335460305804628712105099200265391999022032802985513499055895296203508118519116239331768415451061065516247882198069414695314021638542948465099305759018425477258768576414740917080050765864163376935814660781872244505837942437576287085454033501105370926710216016889742519017266477109118773401965876131923824401677866944731603643323591053046392692548647340576221166484269938330305048174397311935005367616450508447630473256376421666139818172167153111289102455851620731970070031125405052082382908931287575642187541678615691797009700938050142984666852120015915113272059232133736245100927185727349413528948123231159923461589690978967445413062762687256330468233531371596513000406153320056264213843223148270354735863509198844653383568400484168465383514752987266852104759009105167315924626485357070819430352359875504929773330753172203557347023651707931593278744454981644593247393837794365278003109277535437349297011203088850811385110362985620594883469615636232082831084250287376136412846726450367957498216344694599244023203866360957965273125048912012359996284808751700271355908821282445921236597263623626193171749930602780067270385204438694420239626594307173387544843964935739401654469425438918315939596750099329847553183201970958681114740341146430774907873234732383184316977580069510475962534780392905312278972028317103077044152040962027536066168775095387491356486548993528510813754662302301044164406078743379938865943431973972762809887255359642183688625252868429209407669353101746760614361504022410610065751838578184594309738166652742282235952326563156004363460606617992954342681278246980231107831922175488282484434894215590509624968095516816141784081058068173009002631527217960747234579744753439008266238408070488767662012566975422632476841443602996127063203642476725566239584136334669634201833963782542254474306328053514644920802840116935071719251343449175916344648154738160058964567608405798016590255748976711877225395270001783834618076833574250619637793972907186641657756554922398951160504436181020594168505418765847159029625940307677186938605462437938952917738297414846392692211185354790599095097299760747387296264727605210459511282743563127096059502375573180619545259876531988819158370780609460730104615314079672252575778609273091902469192988451739871631507685766351864937976297380660316503198618172065118786733591976523956744318887953365229088652008014049981149565766450135714869973922194603166589011920226137063954921500008096808049365156179044413993654732119422707627168066232679931722181257457609152455167050976549279875792849661673761936853435468604260079278210505029351060269911077292583322331389423980871654050463146586178672199499749697290597915791846480370351873886438202706098049340045567860930765382619265263181120218638592516569258659483274483164346145940369617235805971795888290583815236978853316823013314522929991540592302274058550374062853590459765785964573806521600263159177428881248018307666463770771998546947143246041543087106778821876907079694131367846057701838283928309479160915776228351293308159945269760684026594233928858711054408683063663858102047363209449653498877627578626990535391553279118811926335106919312733976667409148613974561452545275688380518228526608713496328388418368484801362645828954007306507915607410288908345465962538086962552626371159235948263845456087258368603761981706726337448128763726829988777229445404077067899401643812500275542016983023069545116299831343107188990986254101600293552441548625913761597478709185153402568888130198921884456611164910632688832423448309628880496579742710340822373667382825577250767715305186061648306335598019340710989716309884087467259104459888759596053032924889936385211939490968283710864571352345601580438642971035384668305968987968083587349785762678556588838364951627235452070877953346765867204916172087981314914169891375664645456974216663388028870931159655290890968583246620942368725955209587658676396452581062760953955291491765181737672918987667798425119216807552581600469267289283769650286492087987822244210714046467307485197437139760530743223451552532121235870851616285214538008368612462951548039453329683773642486296457024358189231686226499499218634983246812149467375119948195045074496597043271760401338355222360815340004795981936852230925881457545979566969475623894957247325248486607065428825628767359288397614196190591329083994691638410053218891869432565720667765232382473164380797696044457296944650283430616652216987080261757570512416411109207357726203970411688859403761058433130293144482906595568429648729637716132195073219971641441702565468946101270308245972384182836040311660348915371607623286396661656185600094671554915197467308423255867674109733402984616967564210763223153678979988580683198922830859763375092946490387910743707740084634936236240083008495007355816496691675977786580811182304770742469643604732793518203847198896117035900830045568512528050955106676996023738782353766372782267740520510615320189983806114919859528750026629455422735260581489488099794079523817886224433013323645543257410388370423239809214161496327553956636176867524381765566251013374304648082075528515649116718283454130472387959848889991562759190821521959453589439873919878854478785588393019531703471240250072072868196663188915409237562982477373635896293037302748649251369197889067635824615369075723811889000386834089303979375199306538172287366775385114171618214640630053993407936721095094123328350571426528319496746948502122505862740454811093958740537288809665227994913135041148573758189949152273413520402201771742697561032405390025938558957849154940687591085109004456698779029635899957858043995947222843355440391384551575459051012236770949004290725163272506438911414940314392933816049214114829869615126075681193004885160428925653343730686239962181200837591143173089441989980293377230506522502709849720595963536060693015540542358093562221999017615513369475682897390100935189886891023056203345606747815955637373724315051310463884368461660222105807660550163384439513392753905047198111267789378425274293071714287376055437904153578146194855984706040401016336531189306836965939759500845851332728473088004848774039317183964923212125759155986396831005033440560527898876611472430892073906771713344899959049955652866870431389745563864195065256263382007256053250254497912589372866069366527475695458554937936549466905956264822166011090722271664336271478599464599992674904954961512642308529764040436950307838875676652232278535937556772170054417615227578900688492224647258100685483167616870537047140293293794295759712945613452455275456568249439714331385804950973720607539412574156291011023260518521610876296113466237967436112342517799340059601494432947964164600310883776688705920048862018019633769761450582921768913766854755419381160747064364618355095042783676384472746207161381971191770444487975137788922899588473820082965070462231272806210512699103944589360789044290661289121648867329327712450595576499953164568888853937404965765716880913039242348569376445019991202878400273546363108028048839039864462866315940784010291779687774189828622227028532919145503554952435667446119533668970392803076336134227848130080590245232298645365347593792470097712372514855978962233505503714082373885598999635725768152824985732302910209663365529809751869164292807619274983229652194481696043715488475908552723586440480201758142575400529343879461964319673490293470269618697328305602126628583594142914176432704388399714037984862965074407226526416346342898291915406945822384005322871978130120342846511500021415969387560598958467433788321510445817334910293140849261962544301069475586326736133960131549360027028822653755016913194817216772727748879790713086459125176896227023434826717374447625403604436123834266368529097934730262217743440936100473438325947055617962424701479577599383961282821867040465947367134674003802886890673435056065419629154398232331916634157727577726255667127287567764740358782518632401429351230992652418610536526239068980576795900937826721251220551113158347823925141718932666848696741049338628805893314125836487308559685236487095735227355156417316000570435683375128586486798777626878911970174198926297503739016966811455310563963891334919478491126002887272022436295541133021032888312521790386091534116785776233880138563643471230253133127583492149626816843461805655064376864844321691600993297935886971326345948047658016730287623626375404641773711712333755529076168457609841203148149067126544788130874966926524950728376339582483127955424169984449141560908212342014466356115143987869283676440381999960736130356587640683341102908782368523045177162181480494326246784203403756912181002048571334683860316409189049331870282565113342259651395183628517923265340031625303117768583043905855303143470009499540428993106200690938429859849462576424364274755020092959821997053713856754024239958224936146881835783905292562766257814762825490521531188451672679258510629964112189047429032689829030019539195564907348181246684338993876522912442311981457466200937808079651108208092025003722176564662265462851678069756165122984690402876381965360231356361364976638902219792361723388549181980957352297014232045491394760020309831182651347083195790827421779732291100149811042092919972707939131054168843056476680682881432639312292484752803515563282795273265608341088161697961023963066523100437026823091533999011018517840853479666457696399564386232590725663075603947055135897585127025937635325234545460711578765677751713231407198493087072741725990383479908377522266238501618900013696653310225295738651936909936258963337910411775860518781920708777656099941098051551760524338381498578844158021483003773807294222057611422187341912017380974191603908969457081286919618687718234413339778059759399170408525740245952795358955168367104612241414848823507042098949464053346102981481814983849628748546950040743248430100423702377026935949778090939009555164281254168379512226340810340240060173185622836711787912863505765122105234648754708922865475797991986634913433674573178080001015922803245804156062040588149733690546883830568311188564269274466682562826056931827114971107908022216742737252056085239809705192876172818294917079681084956342092215680052226576590502708101059646896004191594139713443207974875200619703621436531076819492314665746833301942561772580296562871057463566793619642933509041759154760564372284823152054488326426763087111474606360347328343230094190420867481232196335598089298139013743217231902944033802138350378466582478492823716028457090185093998630876897463612139222874464372822230689814427108087673984745198685973565683247585023790229043874338656501635430920494975139465171204239963804851524043827140049987366092215951679436655209716246719028784972343068794146220933065403515146533353438176212140974995290813343668874219608546300562941871857198979654903892260994006458134576989890293752526031594793520517287383716670072154796195637574070128559260756333580436117856957032715108609733266002110088271231991637593409971230320261381098899642220973175527414255363413061597294843720485673053633453566183219602569723677437664041985539084586654773133442430617212600862976052967207859322562292355846262846333189292831983610002592187113703997150557749320487597831976713628632018442823365393471636379457127715884098417687777055114469465240422088538202824989296395084670465701934759746010821090022379813893938891736619958702353222196294149913960484299279341165867048778571113372653492856653689288750896260840586049730811807796500601006810979623045595480118976856619676242389312756524165598319456614716758220572051507331874386499592077292171541152707025157374293274060303889970181763924928444961449892119960087414559201197110619178135600831179394370021856788080126118115799464147173035479067670391626448036915230016380975095498647857715301933207587076728073824162729979856572198166844451931151214721539462606241547478844925314745222342898144439356689652081728352018491044685012363534665944391017712860590789232036981778144140657657953141693427566274427564792495722561771122441508205905726084814714045923953079597060427172459275216550600513715396777242631825934316495999408488134896294439801928050446990307433295869642023477994406085552980260168762745948165247001320475095699315825105659565545112468121674104418920149712917059113204648692995218936078725719895433268702764211207971112580634371790702853656868188130649315290358649123136625719028116080449925331730933188619738913721183963488792038092148177397515121555060714212378478249514649493285850008995173231334179449195719549373810225162043355850964044299950654948218174918298209802850161357646979930679132224784985129587419897623402048264287062020511304845432074564363054682985899790358840556461006745899723002864895895241453303792218607675721960300019984053461042369673948465981989033226447136417782885831861564108998106333256695880149087548911855294447548777707033254281654048701145290259162535198012387414010436036309205281399608185782175059199204440716799015338445864015420542276603949509852531714647656658866814588422462768154717748977060201619396947738552977951792063934259381963552380388424839581039275670564005177458415453647792017073426820789537842419318718112513400191354907522301885366424561518864030265041520622587526974644830596060008664808467397587469403100443050711008032857561852600337068332178341006973073703640321298250395459156645162518016358548892501886490417671308623474164512000978052671659140945866695297194326626136275546662763974798831324207660024708256555168634654157322730379846334974354176053391180554958485171003065047146570917400082202203334208427162102550699829516696232279205206790124999105979017238642175853690642136187723710913388149956001852273629653609206373168397847371498411623140479545716310285083096492946561428907773603095689141375737242200843195367673720751672340211743272646707775707205664465381708610430491301993304747985963516488796461944929528905825730979040950627720666835694427988054961983751273274650760182121520533492208085191762661708361357233342510069683104178207971860650279732577611571650724027365119908613767038988665032755774389422758156617307697218364368019421958476811417575765780225941229369376285483761501137120944477726788390726376506189327449474109264058693198959058559969600972046356710955864259422250713422810831610787854562083865526862249687755895674284009651707897439983645219402878969929676885522509924548113167981196095844999451283017439565864554253492467331927699292211498644288427428218962343777071491438577608058084856427303717135376424530679378694579057523350764388152181065660792707515725288399185157105260056188339108536221275688426153686799818073601708756736421701333242635306193463545436017260388552556774580621314638205488997794379948659252807324771277015335667243051287455111305227076922621510652614798139613012054825955398498290382216585400027871828179452759345759816062682566935359109197025317587895850786425123816902286844088555046233861768093743871255003062767791144604271750236904826053496822003468062797939752823723519731070856662324732554815669120184661565393448604754035740573532649735659449189907361608117631335249185747240294914221910553466942302866373906308379579526522916582302609976507409187334001330523431010303777850787520635165834627784483536836655902705583494796129835056123943390247573969305052295130811046709132498820483153789422613223556634309811418309866847681028257155028682748383397571925873474011536646716826293701552682244212771105239091796931923912773797717688015422468834962014009973227575932939177240864634892836464443538761811383414398882353435306237178360377270922206790149131574946123524864980368060944848857198938411919684715248368996081472224187543173353337423694900817626436893163678853454542857139636032750992289571258032414630563428729318699711759456583631036168351573519241152917458568654839747092069981588999971336036705125178322165870469415652062712941883036728616973277595474898327009337617091038055159386077975183164791131510918328012752515936515048860793988485860993081193493801277896709108478408470943154894557705504550361821811546026502333598662621190754572843333406546559236526779679009724022559037666277015717874530106783684597462424119414609270255181653574496408037076359218204807031707800495030515279198046841480292623759144109388211758454223002587105098974340538019608096706001729446131594353931902155249863917703060325109395966038206235644413794178842765240643899787215289854873908254194811268497400341380587702933160023497523314378325068346832390294862961289177107044987706230858455583007253858193699956274947316552089561794462764776882775111576147049901948228432386802734707467386281475267533372012101071646686196160063377135213782113885721215547739721693304401947166534830268285098055310036760417985335910839912135600946042118254828382608059451163333745999330985400909567553128225040676460073412663544062482616605635769125279981301615925942686486995004724775332770649993846444113929558969146522042990812243906286000465035738126952170225639216821773367320209158675045004788981687036460961518460048557414398817260973844721274644195450198335593231768829557830645802089829527631549073550054654111113719476304362617329785902846513191614666551676635064119334575866713781810984156465929623657690836271607223381478850855063886317749078723491919876798967463625454712604409541681977992207104276402515484331964773905581049610001647059895157852943991917985197806089395678647197363890098524223400054422376311640315186427938021795265684299781428838321389598243939588770155799078394489206709170655203496769986054155902105765147715787378675137125473044660334994239637877962711768362368962445967764401996978693027895704351674431509802289865012877454039340739724267160500255878549888894099384209100168173874898358456289352751707911705490005436219621706429404327806279873786676730222852018370415921352422427596283750372997349591431251129239685319012975356116296723084861743231763892988175402470391522806254684791030979628293430421339402288412931047594043460835668343232495613647542579862544554498896351671364445937935735007027731767348845174887099668250810438991556770998488740178829907494844233167883018060597371518899642950324199139880647782140200104111777478968839555108074211164804227507987793103151151108433831772887252558536680132319275233969078693015925808524191590883768045362608975083421104441911728556321464612372029116740614660357396431901332673511383180868544275306115682200642050776276243163090763395746802731529177990810125354943612591471988752386663993748525397978887930776928132087457027296121993908125462554625410900834305204038710838385722642176756302904930176929511528857908547895413427296790845515266249771074342215376569954921693119003567558879719695936089444056027985322829745923005729290225019186904996051519634665873845766286165583709262295490525587150988780191535985441716721357307006356974623664506999438595865304581695576681415188637516729582855194702568148675216121345853932624252174469525507007692700832805350536951638370248262056345211908643609455087863745556884165147477744660686802732090527456817539515713203754621706982626148475907106925055688718403630005305138681095753887480633463299948769553743481082454131098108373690707510452638146157137362035056374120611543698395643113673185097174963434058322907235834016182906087165871016013042159191713902364589705902734815681072289867195302579683764563989718769225175933155867973340773733043216755653910755754238916160702122717375920700563071368437478212135288989798668217762832572533345183230392747618654039192087965652589286081930704035739642080989321089432200851994167611717527353978882026618744562282022053152831427848303386860279965175179755819883331025625438230416018942339170386337835792103203778668218061890863264867419662008345377267213803004835349669601066224138642725292530005372917737061162348654387360333573151227139300475257703092179902691056833698681470070046680713190090063876906894203541867651074973393824758598638628919011849851605676272063568183641257922449828028996536186177766867781410290398847347627179023486383536719884181537764284357906836358790567005858121342784860173429927311498525829426381306584979321719602718883988881367210302529373730687284284252676818495032793295747070453752303208640889188204692025781143747067742104393146452786589638070408530744824078053943147968235436205409865242544613096095689729925320004693722765192645252347104386806162844150263272906125719272577676314022420185623514890590306131224408194389634712598106722230807362487403882344642804839175997118906930494868693118815733589463337313783064630758220603607272216512039408317360771272291089455309972771304131061415677302487550303033119745936782356969206929008684065517843550699097961301208591342082523653831972164002578438653155268518045595065276218297807292700162623807539845317874932145717674428422404980630487336345595571419216555990693160116854568047578569445825814652541056909421304151860787424364050507570011697845159928514363633141919856220392836363769807369642480231750529550137335897960359874442590363690717246275208403121238030892613188023207103014046119559039673478322147276210394285191545150346992392868606087894827204013155178548892421185875032601207662275879486610780619943166946023124667003664069456988033789419169279093056380077125569611138551110682307186263508781301659159665719956166392695240132819371226867383997102313023718606144240281675000278523701329742800573141233771076730526300291885432184952037726251725196654898586302752019858055528655670174124247813984411479456140361337235929100240288001695428252763700172605581740844534308051145690107092006853751074980056229956793937036094216558524012682608620139896639979818266838146426887629454986869869560183587213324687051751956171604085036070219265934907270251099475725221910842445595207830851434274897958314090611381368732186562478051997330989401100475707181898522937844381414345412750827098497919645792920802355036436353509601251717716805655499827883668720305795332335489227358143909560512229294254511059615665989980158806400542294318769492707622211102847618082615964466027043097290549291809577577590269624782434271968425210667370895391287926957103913170155241989566593796288840942869051952349190754939683374338510867886831129748407742561428880242025456470750857403395398767464470647241224405084157459877316927428065793845108082933471369745731717078012150465560773087987578705024420182513066251328457937966934267465917675447321287297992553229395654158286835862563929622701616958143610479646337016816903837002557364944013958190229025904302917933014131985196006053939593015118034855063021486381739005927865937796283974600501660024561924250559351652393899385785832922591711647601833158673958922691798677199264267707228044516574554501282171307485007367793445470248714883718847668824378185985568323003918292507222124723395438145081249592057273858216386717412145544407200077462566779999303388581438395224684186060994650551174949312624747545411490089929888024475117143941471715620484316616148349019046001190929625568516287760436851209221765372520306632610279260457121123463843089769100576076038205062694894518313368129757008494650362783044503424298855803363561984544505418523948398908251480866797159530872371873295246175261964989059205469690840452251974665477634065536705083961295269437798297198225507400872467579607375592988511922700401408992230997692507290824372529302536554584962933437019516944831600998169538217539750893931830881834902561945268977264011060413490804531314501071393769710546347665429387332788496507788911570443389987596862067766941170235325721969700633559801276796321735405701737387345600278846155575539188888190157937805544173152124711048525279597666087261897929914561575520979704048086756054469428312274540256332191157104455429631522523043608263630844221033568337100347482864619734312032202472443932293380297883927316609665734196648139711732905763186077594191418982874783291136684330253529252496479211019646490652178242802165844480119414837560870626468221705278855586660939730849211724889880705529500413886690763683994300818877934803775541180454695193374369307401500438691562902746936145881457045663729762794944061609311993111741804520449283545614699712876823501751445373892838376800720416806963953649250578693080932586432379583979185083667852687093943396098783481513142366452625415249275587799065325616332081271863536440504910181314864879728064836084966650248920735697536217190475720554079269663844354262130994352432518830971353082340787314154948096657487919620704298132176243781081796600003627805961686458583311024834331251029352663857765397147351005221181616567263513538413677555892138833561375461669015061175377649637297641275729796185460065305881543374664637502467661873682860135938997966104887037321299898807718930345582842479863258650832971647881368783693404315869944158405607310517008074090624232298342148364593754066689887990245296775038063088642462354000679205016940257668422673337762347007385086104194711069943580453445570489168572684254649000937125624761059366963889973127846586244379914413995156946681083926325223181911728640074558763410456288575125505680815252293927925978148617475452694776380447699595505060703040572307480234705742344672410312296534950506517011654313242852197592232503963491802465431634661291802225697714089021233932878860417394101352631152036911145392003875410900121740080037076406806582462780508755720410542581570457315479309584722082919046179453753955470558955349046238100816637319455023584810199222719291201617752024446686059009664014265572476843653318670352206558014589136521421488427956558662705933887491878639391231094985612126299412921957055098215904145913861125266562187945691785864140841846629181231277170185607642984140347592485979536413929570029539960004476524174118063609089107032993576012356745028948966724368311323482735638137007848180922045444878697136394407140683810853750237906792549199074354539111875441697879774458807061279467910261059726785068754968619102664289872660415540003559370620961468777480211955901297443475619036901503229876507442116594074948464211635836077421426796439831027568155546121057167915310722177793025457322874537292989194954644443021474349443399152619976461756050044687614144519713784817621178977241435546735467024250734783642218978843024064895284631438816343507529653333478207439874478442439483437862158000529594120169584499759566219531459463851706574494064454137708838532274753954622674721781641078597150626394829117437331691230877947558401624524346731607652792303833610840339322785923043706961423361851512020163003710647339236015940934876141393157801473755209993057143969093614178086869200812729995012689406338154594261804252487070552936951201209338500618267008961125574026292842893977981995365853346768901352513316544784862113897579395337638477043789600054374631526792261265540350013294479593320389950440369123410089565126418333271896351165130651176712022579372906101484235246743785474046961258221106399832604515812547546779293221601003968918351668673368303931362985329988728773133651400992007718115949585299647818660678895687304129796819333868640365429982502489760838987278799683224799486129062153811952781175065350076812703463806998532134523960704085038220311383731246735440854003549805598897628482182550298417519242138199529518355344031257843107666981982362890498595699397614720195040741534182884971636795557299811576928990294536517544152653286097253112470609774310064281021572319914392872471828409399674138326975913701920603934524244628182094162053668835891745861519946102892975861163326253936348579165089549747556108870430826578335339548720604361931381687421184175298180045024624013213889215413540631633023821615654645339912191886658802828303673099471289780816548788972062587681901474865764326474554358647966050544193140078330581576657539339176601496901725110135193032764125437908172466899998107870743298828606321054287292306846189654216257857556016125523403005801973294312555344214886520699809700430142983450790538092344582436794387491628148340152942878299190846211322390876235024637891877012267547630879194532414911410912534877347045290222856769737570216702723515203683228144986530301933624735824640022653017817862306131826734757455627191831385937038694232240607834158561737501481032037951001913262226859162075839999284142583607550237036751437347250061084565212317820690269323271707170180717500766710702438300882134956211420966662792576294753536561223119630348729799239612956100144117684309914435980655668473318377111148982516686052882431582966815773674293017505309619663515876755386412883686464016803290102098364145390136182012310600000775796607677144532374490366645381903303565964053774848637705689195214360679643287026511419820587140996218849541275905528966271743716378701546311823499580805167263878986901169705743325252330668811410230906371609653933829175424740572281318248528656220140842948358903054331768669388627252990137430129882853320414925964724870842887086812156215565905552011876699209953492885869512934925620588529975945981473505525503315145734981302496356660057156212941288201622999848145291580272745294336713461339895499251972614295467134110655087486873567899050526184186494670036261545565178590074743468302203353062126331982820548103883294377278480154352985423406909915122071140819165328421628682826366356108343235666218458349658424351140825271341844670438854605640891533111831123911860539878116762767613703658428481807313920056249047162328232991080660606647062640354285919007969734730188705856542992129141065083105024921181152561006374229243293904732428585904369109978087368701612715657608625272563041379461868532715908948468280276438781968830346901398630993534890439939614131385964628843854485451786146989483635930250233388861386605788253493820429754205348196605394372643477979135529870904409751671425654917341865740283310563786899303765618156623518204755499419434971521548912142520647079290437621284540363565400426443885879915446526504588441502208348189980825237626378349391929908774186331195023335535079509550198504429464600379207703264723165383716779763225510461508344705727864984310406919552119029089819095506643754003665989157129669037382605868862209431585676214169462770034461465588370961454183836781653264671798870475162420027698410568104993479741747427555662383448218723949255987248081790288697917808211307826673882271756995368158100683494417701411035314110709827967960457421557346773729313183574290098817251070700102705681610590925619773872526295496706438269748763152709963323153897802141958462837023585522802977580214061912503939000954972068969229351548709957962168186517294143002365100714102755589431262349994526217425183407314951822665413670711205435950477052984055164144082316040094148593227671833561041031952334848460795236466106998696317658850281933170909277543809750296912928290287182718686765605656010388362597476899331918150868463510202044431914159077236468302553916808891377426723321399471288497759795397734792296789362193099251120066301156617390657573683767636593718921142236849912021475571972230557410057254525724538555650568646053711226822679501929631039458441745580652122388934673777811748771108535856365104804007023513841408394344914958733631703374524744207690310465894028070652040490102610180630714409508901183652829100104263112612172301607303914278299826054825937487197078945590863342170565376911559913371696415252912586550719274834593711307562682233144193075059940067353636503729355007679804215121435197253256056226439454141131674729877836871409967589656307019969560824628014504911991240712185748053706939640389212346469787122550669606965161506813006062941074008047075701309161735077334755648772547369122521509813503319299338334382107885543833236187356907160805455809843670057435085075319940976596533687210434933222806188349920048278738112527503049208888174846428319016539600630466502915620890532294731999667891042999177453412876891030909976718814803093271626981236572060433159649649342053593097499554635341599843823862049425069393201426663783689481202199761417986083058983829390067395145517573549997170753892480315294109011851492614087594473721159393289263705069583299181008620840410286489923463260345642370424824257063909129380801704659653630724144928183755330479486233506336636375886561058906603353162911176597900236530121728575366201890101649815977724729054022670786268338777301117009431851403577621945481676206437531968784148518425893448140529583996384970253959762126359785945669110637060133227953341910530379540425978304137667516749768787465299649178342336427000745475481949471359866806915666645853291490308232059890281205878126815767430930721017613582263189992887973230932010149232126373267151796495548968924776611843154567161757493938401616522907844089423150876687054665275793238805549126661693777598953925561080406938118224800051350809372046686020039055009141165394481995941732187190340971882559072629584283719770085817941850701023924759988289613573778756435885496342561146780783340518710951312575999931805190921902266561569503928261947901601702312243305754431260654464625008686622748043866744194420153942603811557827540000404020712181901315746401093427335748336101469403685451256443203470752844838931754561764631572209287810279912029021892238282470350546338309419447797469130882924572050292206249855523551056541643045762988641768062017411348089234227288347454320119807266068956925882293270245447753472176552839080617430025428281598287674713598313924867754531846844608380481508156635419462565813296359550594829076330106815644966517880328377723442649573476209397575955793063867100477743934006498340550723621811989484482127172777851389956849044762700861312697815775722954647603359273556343018515256595829201382091502262008800317497285389982150390653559331282828353022910424849910104096008081292273713451581458295962514381717546634167630658001246761930273939749682827160964943723113557562907810196124240298111767982618671404839546685238558072759405609329731240555537304479929325649327981148318332021373111562324040925444193621712935732155195558269307036208693910309562625792884944657181752916336105084401385563679207115718885798851349629804275613855008281669530390869896208029030355380062556321403668177908180211648438779482785129378171151953129206025349939787617546408001885491126509477377940338081385165821773654742122319328208269808040149053483955039643892782029247237348271696437467813541562307929349307240336751699252188922405669614699681473878851860314289763537976243242698191015966561818629392204880958915352336772256873643846681697674177357449240277324427185217245824903794440288306738445640018536560746541756053710825468179256936469644180207220767950152974675083841352311356162549952917635141688384581887938427692077003633081667441340571715043076445505570862019621875090213884932155884931463611851668192193333106871041572192225845136232219900267083802223487321575797119113968268038488404028145926959232839596418866267961493051598203711862831094501976913355793881589511415327250422495358886450529525188569766476775406419896461256327822597017023337558520886222182600285359281446308610907067417161261230022530622943269439780326835730088162486844963806183381290631720666982539273397400494758569587351393454769511348187322641752631190577688592198023732093522988172495982321802051416465423317460267710479573856951746726028070968152504373358982055047400803013301755815227169530967519720161200920566230877542871069645863471374280667516783193735132565221483833173672308119816534223980262474376558947675692163436877669156494799894490895333548260863798232539491667268994167499834770469902146408996837582495058290814533142200622637026588908567589263050621772504590274990999327919762378666652919186395587687935663877764742766951607896083931623525292783250364155846780246181598805142926914406989652471948193396323136854634186509092841382717252169538362006323009210996206249425060811181486751298160865486378491683891420244074612537349911807444468004565780723476210113068446077979422132044175184816160101908431185778373692302853393992756111160625500938380159311511135907852162560485386914323812245904299772946964322273715189525802973366045356007075343804126696705867914369328092183041139251793786077259043301053693860564531228257539431737223358522116815430443635849742772083634227879617830153625028018585784844259719867132834248512769481082148289899874543172209779240360832619873253615859560141938413651762588232316649713661871498820913042815510162243911604524963384256540786205403968475984137295093158148777371240187179778380478989949436542977673257015705381263785222746972467874241300793642328497818478384187095000920272327654649817697185631159468301209971547273531735570252640974294862538148140078594209375626383946867371632446500669475670531599472687811256170460064074445580742901999701262105369442807140922166151821307934869897283700119529308107366672854879857871482235316879674787357526619385423624000713911305675550338852901423771854164892294155671638458861411106333383120411085276458284026102555584547225937596187234636430993963801234448925565298982720299003678439151041868749582442954626212615552519867450944465290221964963295540000703852105632196765824842265073312536205462602686845226609688804383804743726232331616660159127936881995940502571999932917673393102710012595360946943796638596808326643193164965849633977291944145183731667573688536451820230238148263770653011391128913691346249132791260325353459199163234527758142476660279547954070433050957305857105121982912094431653359432408468138074887538729708537544168280660988493506669963728979443165679268763670660592266495503521043083435714033518387756174209630866622504815251137848588257002504051583861836164507635919756645647121506198985206274610720778853409008974133378884529056064324678372378442381162453960789731143333706096052597301996509374395456246686628124327527788178576450978686549138923396145393872016099547277316887599733216771184419958948486142610389151875753635313900844721671593136105659055230688227016390060464654237193404309850825077350154851993174718357373044915069497572480079084269359829143830931389855487549423227449491627921911744168176225851532923090627028862627327172713736747288536386212322152156598140143461744208641223824870184217621137984800128918461150291340723510400996828163551558849625934702284245296564463145812208779641481397405213189828785428426965782243489218621245340214229187382487983128365520838811022350458713289651197529723939560011425296402196067696795758147935979993141849812041111542822165132392559070987481632337101916113979198131133436287560851913682356263775811195201592830109802456170110222573672111807537839399705619783478589980103958642732946843133101094687964634297877722682194448056999245536854601675335399408618117622592942776471534124000027690102741176192399224871721293219882821321458155833081032767665682157622328610235788886649557570655197671423095042057620106160092703642002340450972083564857718166824151192694485068151862935190561171280365926782136985075087749822073193348619790072589775826641428063197595598631453709706547766476800725878500630994010878945547097206380389483693036970026974582925418893568276976759232867767101698035097327693602728831210398704047295073357317572232713912886823089697758812579145493793429853594473006165593150559024506929018029493965319372764130759794350301861951828494006827945565927733810621490164498834284750153040835721432245892652000275214846886135202683202012356504519019118723235591670372329790345978755069469277215711471823799668074639072294512299085346532617467973382168394091646111762121075682647338261461487802212088546109416072495014616471801755745231575725649165520169646279706183473704619611947071931661127537770751989446486891611246406779934062221965068659137053103623391875928196574161078398298795138647707406451422449302925240762368664335949866113933096820043150156117174402845705892934250488997230280359024388557971513154588328461904663148881300544616501061916339253963249956689188558120768329613750231954026330963046940512479868495658727645287697099156573617747339190531248684494625872269120955020707217071621879679187760705580481015192295074326337820027918311553682643767887579911981167968873963177814529954425665773092756714329124847023022786475224533540251407909491825462535291014393522896664824298455993425575591777585758242352338973747484463340047259313572926244839848777017654813188066970615022889309610656882030057928247768456505759164018129455869688032645811705112881260506082220110294813788676234788832482528250394668865604791472434959362408575339314941285595065802576280008906356881492320951921640031880972999198025467032863218567448770476679740080524449412301925770616860793333772616679523723102256030456073494572063560313170703759627214649019425087954259668365673496784779640178627750094170839259651792113718885026960580859287154656418538911511244828095751369332743829787840259129242527015238018394282776423077865998007149900112718626725697797493558585882762078441921011501227555741779763862705852706545988937833296495187701152644142164487520863294241085419318611140968276285129014378480234391248047246668281527727431154896462556708029122941047036654412796194587245160059110000895993476482685734682460496951136801911314321302307246634163734250901921361990587934861030116849136703125159321122314328916323155148639038920490730467537906033384814622379047633637202231768335411432973333114189394247379319875513336595192369206055641815362927457172495382044574747097433811199825206939055925739070777436069154483495464543945550651751304659388351630848247463410990519949623679710358992713562010978505616249952318905021558146844677246361554697831683248275696313571755831470789709172877833718048519895459843828596699776869250594382809953116380964438179977603501130870739448519285162549058903110872332963148825592074274014344023881471254559590700119366547096738912587270273568527307775193968862038706430537341996367859408521578977244356095538320973712223499363623409298990125319603399472142957874751476855432173216712746227680332330005638232707227545294942172575194125105391672186433585944534926876922082387331430039261354663005729636733155649097959804899247266938645643746202249683380000505578982685667696711428018767262177865576649157700352461100932794682563677161539624379277129483813797234472909685220531233182015789584479574840496654262502039567468235473353258966746482118862207730244164139640057439589934451240708100231076667283429860057554936374749864908555630488045734980897457849263197751447359585777356307725467852982333254687020095719748961900232497446877253504533172730924230889057883062072728554985674679048486118049266536573811130031825472998778742263224505235417218301325634179543964983867938294564119675227721807970795055644450838043578920044101599100871056208654575358619881337544255212730289424165307580303308079636039796066642428157932448605287249560748740903618136406243020176522623955868368289209627492460911889429190221269876819746106434478899463354904936758430485143499806460954496732887730015221544029568123453448946932592349798557860792193479042487386442067922841925132730049639053883815793747911629959337347104425865737219183591342311892468121510056417553783567312752772033942084577330932293933774147462912041433642375845322780010418199175484164690798896663803490314042085797512767023436973090178204120231201633237068160980961937623835316642814678085660722089493781405850826582561206415669080391330145037873747008619163420786896584131327336331436338237259869247856701081988720614943101160093264302053451943668673098889365873618527462830468486508658931662844174281581343991205834318479331438251361257686530937757477371966080824138797890956863192427878213653414535171512012415632145577261257171154237575230435611185589196631444230869366705119913815340322621062159439742712076546523176519896642447526204715190969891744551184374331256041120600048106283417744951899906102213412644534006534857615800633640466882739220226192144757111594145475705652435388670821749955628890890167708239731020519483887183549834328808886071103617690332310781379630557273898112912770386827993216590405314689632598639194291520764412183740533566895819942652091520607223478701115078494599263794258273810045609373403738470052604324004765151033974426291589785942161902765461243710073141533133956067012099235705589355558643733246623936827338137666098856138608175608552575188182298236524662393682733813766609885613860817560855257518181818989823652466239368273381376660988561386081756085525751818181898982365620593039848026846892564831572720381963427502449053813871227283653813817411890381862937066879655274018351601106777215442748763186693851665268919096693241241457652517547713861679070746876905028630836414931896559562354278624551587599337404868888059363509476404640422669023739434693813198094553983059637952785004028188017151896873158310682541473547504832093766879887868201624977207965462296599869709286344427118784043263484658241672441603790048629063352273962632643689695218637458554773792770810832099800656037854978617928168238018443737773965967582913220601255392869706131183075749736498210147313999513780119583630465784586218819441497849370098402756006854980263357350276903501334915999410634061547078733290603707231161240341870550788379000898176947025974081263663402332052347594946286477202796252113686448377842127754708906075102553014546480725459627611374316793083227144449518251553202530688993058531948318061909762818016677230361216606781369517176487597906417672078274900447456671143903026184811709882218889166496393868513193469112598949862477341922210392931856537346282447189895787586796112815110996593701003783460366990836605499539314209994234926019517200560034985940409635399105472773946979904135787022632069202545498416572677427946396129743913685217948503406180772850987428122769011413681640284675288754276648347172854512389859157160621106210386115041453249787913012138068893780887857411356940236010861172747490768634586796259736100199117029869639675360563303585985059024044857052314430822798558580421066760697846685856139920532524870355545853701010773500886495196354119145399547557065526277584357657458461258415631074749536770190450884604517896103563009644983256798030526371100903483368327380092585578396397697887574550409776166609902795429188589308917950986812311563053892116814233795813108294191301853876649838432666048909688018607869899694639519523554122354444951091490427932659316891653845246476121029773238049491026972063197314457687223018886454723103520336088032734518925146042837827235737381379904451396461458772415780099182945276911489256449554457820811258549746299122723264649039750796423060026194526098123860389417285256976447427429289378164410225978278080809381188489828665645075046990355036823640457028786192640078460831062566896721051510787599806260533102100122358089908786452552773927454483894942460977309768103288181048377558490535754369854782487209796239602856463370367224447256026531392813243226027749446017801180064353804656177241828844153793279733031656426254964457524785225151403332921802994363668920045028087930145836265592745303693208581992368582405824492867970470048929341036743249680787167805287155715269795387317616139356132593003098518745852607460428071453029533444248363527863091514581116770338434981090347138086879895128909270471036033367710778140834844624686061472549883654767143507897165014452769938600227922887312461611888686514548757124587583194866819607135129780973428900934829960916137217184080568891284832030737804399029801197767445952608724501787884827582203141607966468453384013730036339352239132617464228397146920127293410803224014862978907413563620435519583015124060878235799054599370559833996396427254288844432193508373960444126803498854986780142412013984799469474267251345750432841611528318934336257825555762486044698920810829515812130807472484883173797144065755237092962046872292297505739043255293584811980266329093403989497358092902735650265209686282787669265416618779365146499963351891859198281123717705808512908891479895022969802277536978183264365803065946080924008017689072325841441297192824247203800486590762483298432666125302685103349902657657857996330572857815804481506534147291034011865107527575914621385957555798465331746524212479703562965764849716996877845984143281364150626588032373537267205100203918720865488940491633392384480571756388725093012313790697303446402836948914532187479689036890800919107696487522679319688397308313632855164428485454389551192351626705524166101161919395623212154044745884493177603326458648332699995327613115608198673031798777096885473206973611106968735230086661325732823554513288927073584038158089593409540047766863373882209899947758887252513928947102576115811305813730792569508911106036337471430048180745447071235856967018761630440248592810294124481653304300197678125184887324291465465374765308407856299090453737847639163410697134948316414943177259257359898774141042585256506469922575333866702293799929902483384497963616582601770376024042854352514689293826677378840100504077814980106515655297476502302530481848290223516634907089449876811196121510650807088452894029830319134369478860719723091087906545455929044269621024126508962080023775486379219005822137541799451367737550293442139478343845408824968300559698072274271475234618638449633003720110584884442628228471835669510578364180709087118119763413467923048279991929423344434337452657118519582758172429556975365547653558571537158788673155823731791203581943368590246116895493584548438102182098056456671152278111152866314879791224104671503454122635917402310507267578156516907949753545695466102343506351789262820073876715784184485323312647481696410450093295263939107255140263809723450742145266346791248799219504249506398350575631670024222097888845014235493326447708542073295642006479990456728288273089736342401635598151271655857087602631934760357479711367322844254495461412410314411213653295907318446626781110627401990080057408513360217113291910191481723858110359763233621594459068606885817458272106636078324721105539882285311162308307722493207187603142835549723999909543867479119041206409581635030692153653952559398291083644405778947686559064269590785558892780148115312960528297396378305223965687979329134158295623155010561975005747882584350683894802720131680054492417655413415536722967818672262975219357296762159745729299827845769995818570124704106527552347093167602108874620189498309990562680354732391917438803528523945196855902262991234055623668168420261406594601661426898163648963226705671454527615520840319977552181122228306946402827545830907880095255382670011748089440085824422344840901443930995076045874992960929194486787284244655294260355040153663048572784575067890334206375485651802605864654535049231546366067214955979231996128389256606862453821966213790956141809481962680234837370486445390985796041171310701243314722770694381624261607791747358930604032216117319023629010812414634682390910147478453481264736939378034508669020117854092269189072113908427362640084022560952795366222687803631074992951896334937247807842462077385456462974698567818779464133277559594959198587419166844783018668875825985063358095304730592627958788266281356695741856635183662967796335366162569000658834528478932612307942533321209343130986170013940224515939863015330027588574482615552011632165583054011090247991317443186094788894424719176565857393833615293891646315787775206926098992237784272107622675471362967726528338260458031548818429183457905620558523138467486880987475741829951436089527571148969698465913305515718249017264063469473831622484570295688213478321860050219757949327957537140194691987103391921503460117489549350057648311848003832107045510003197299460626690817032846523263802422485817403542298510813693111624820378156824026705402650609276295741300394590674452791979966472993327500323878534455218203096952772541183313194929837454299674345083494569207945583308957219416697425544682533864656106651416194740273233068918055488714423970148248814130243332211602822892880315913275460406393144756504510247078478270031008306239833790350592085387823674384874690715910716613835270975585158434913210350122255865928574296051076914689252902235938279127110071779878737897902060104053792712655426027857235385066544466670386663145087099165571537120692078442628725803234558565314378543259039018168386005327549657925726069037995759888134730688880747447547111932240148505713258006452814851064945062178797173665367581241855617818186509256591508967858838537346006935149766940200854142411958615773819902618019957555810622548361640410620763090175856074573884732645071333857565460417325337113028013789407938579364339953362780923121083970023302836469423386202991033137697450725192819304481060536148898127237275534536451517984386997375729723447961754122638543250152317808397255726878502256871216813534253902834781019191542034324259346091331136425107319399433703843238861375880568271561648549365380237850903934833622482273182074099684532966420066268037268782026486705782985119284503022158150530356417568937754210631387943008169086192587428698754675509234944739615670759250191683691129303774804955199097039823363826364891350584303996481957236211574077257682336990702374463935429270205346044803831023144481145913795384749239157294312780741204406080309758729669731071819844106693340826049698415157716592955194865581648675779423393689882775900357894212761604704734211672187920488769423319638405449947511159325479617623938498538240196477081852094864855924228773249668730030102462610446676908525456097605252767542609722175804231532157673532907534815364111375640334493764477315701074417762358231865170035472053759404317824599133598339181781909632989815139125754319138983372544052815081545703102289680299577227508331211659770422199826896583246941224511283294989872970025288692782008856127159949775135621524144621201185726015252469722909151404640753192199281734280327618599645702580211560174620906358907518617575300004249196720092148567640159697615970405736942590356827057621726980826125845805961670618866332840263385648286426103859307490073261464768345904157879793049982050590432130023886393302978738736196275533218595801266221632584664077546476579363380854496495709655491946816120511556943910807968135393846059750067179506310256122479527199604657086253843127219194520031050931912369479545856122379295846744832208038385192663153238284507062223554163557520160484585957877279643566407928977315177892543246016374195165332485486621259981179724635762805617849167583923257722366843923139046362506364023028317230013785538397844059603568332684279926654616067211095960638834242950430023363651087339459142466082468786791422410972599551213534391932339520885700159038044698266311069545853638464299547406804067960963340089659647612335011815471822156520259380056259062150272901222426040414726158403427816260545987338572456371477792160474827443344111296731237676119862978669863080241795004730990548680786839290099752578360568423252734512493884646426117437845901765446954096515947087299765071127626661175786960190328974286263834806460258351836519591472871025416090341710762667758150465169462544957993828996178666609857273572606855066958690375723054995572090626217139470396850395236312944870874152476422506065216697079552830412810868604973922953659243154172599393270748607956674145938706841232750041669086025761487588798762359367347546293045968347057818243392374739992499318213776303837529903851510492138626855948622828980290986040984011665073222899953224056223484778426908827773333002520957071638789137572836111316150828240586774806128378099765881224500975070984791439925240141622405328598517840602677533819228267849527886672456893337594516073195686216856063512035024630992837418507807604204773843053254838763592412557531636452293163511786522282328964448319102692474163633999280535309366592617986442495494884617481328995681373139483095949958112473555488373871125219033700515468040236778326154424065669062240436357919958919161873198530482800619742223209883669364708401812321417476276732239473306004051726285935485411882461399122545993604628969714134165203093502573559361261145139647646649021062754457374977144715508058882686031359661575978888082513408417512408423142188759570263961666676842178850151166502959559786184159605479201785548116465418583113141209127828459690444808181998063143890380522074970999644592680426847344541557810334493205950156320196305397621418073990862708480643032178002476090143977156423120072263543493273799157315518591100652472774851997101984779766556894491967164861686707903757170664835628080325964867673404584205686501819370242695253648169558145909093659078076868124386399342565535330465056785065548655571282118381739659983633576780308871040572972063848194704823330793522090608439862801838670895297949455903398039750568234493536783744414698853888045281008136062558329519311211934751776284520665192222527386696926300256656057137987467747226321911039544639384612184558577569269211274469656540715714141819794922961446403902152393652171319701682379101625390563079628676903703669998720101055197275883904902666193971648348114974239117387042271429504980391844092035353505646482647090883162717270439141214238422921600927129123600670102952490482688952858136084943203538041356964515930924338277301069829074003637819107214220109190692418721602775558045932649015215059414233531352862778826912685057008770944176708211117803391613231077884547695892356286062676906368115480861944886505985634982420785224821027355717116828604374279300190532421473269807603593366348559246819120239471480921233284186050062585379108555395006935143257214182173424169658289168710477383110597050998134940969399553351724534645472530194525002197042367256339419925959139030043726038976533972333101892731998036678696654613980753800150074994058963965696044446341048889101877254017581364829927018989318743514757195119016432624565142006231074765452195530622094090762265639677031822328595936090281625230627976852910671388077127464190257056024461237830789026485486006490087858777224582811024344938706614774453567937320714533408083249610368600316487116045576385296400092889905659038807872015381686860578453602623953761584365876413156895420184516680425311250906128057586051851261261263727019604236219016699129075528914842550002031663943368032040571141160423757980358565956312474994695698495135867617171614861342118764921998574023604525815531400876092991964744628813382907321688226913157355514901842172781677852130383660376356129007685445315638810905871806940817781907895745143359593839035139959232215815478747867262033422730377952548101343348870112698825270694572970442925473858639589403162524181768010338837389259782856379513349072256643982136040806076951229905479422077455869779933034443904419997357607975028020352529286365622716637530104348154145433270653391650995946735871134933382166989485670557380782200217312093915300782652612868451424290726599905709582548604303545232999965155578146176895285778053665489485926317291170626203829798016084121593188188696290282871579787179368849040257669196947891197016642307944711630047969166029633665411656714129266583864167655842583466265066904169951079819904156389709616578360678034580385887549043983668110794625922809484398900347357457657221278020507663612424745302728327791975368709460269211026412850520464771511319590975978475200954067737217411843995901350727293059963625355275183651258426047228081305017016364582988795296387473523944228984041274230766926575389191293792702273587158906780074048592164839630908392340398840095128732229830618530714944412455289744543189585611874000180952752096285137117256845726219543878785925627372240011892859210973591774453090991376018571051336552689960979827966913016647136456697073237081484653493878889810099483298222045461002017204361275120315381165829910151186943049114475937441511992148277698846672390919809215085158244561052008871854606987301372553634632995644554638726445232695578243816895531108965313406984204121863850069053799029011296556029730496460548219601849771499587160160186321879285776555148260986889146641786743554863988576721640798099307846447004158925298121200807754694044486902285347709395086821323407338738152117640444760483455529305299958930207165021318455760851637824162907159794086617952632265090870625000097852945988034121108255776072014188772749071012838936324373447553276610994629820292478457279595995866906046000101825538486745656582757507158587296867716751114872652122065893051470298169911459357597062405238204272016760908971936440310471427018901122919727832816021135597563255486999922433885045198582826291038182261226559925915970829197862331931668810629752541068411710862598703071440860838890816173401839452178676169102178400070572151153318183463981090485505984190806537984039319676526182549014496282638131368683019053727762902214082282532050315758144911052149693400800591718428867474232818892082210987075100960942227179606118687523108651305487940730324755855158572712956851667115026585753721524970207356655428748048188381689438092947193924970783426911981621047130830957027914404488752944652228809164269322120891437353263434701894141865498758085443897837542761116048219449857339919464163451058827596415074970868687065333087674685517086367220041335506908982270336380872483247736238427671272998279000472375033656913596485058948711797177358953752351727045329880897687060371716893813114926117990763868175722778250303799481053099714133210679111769390824978575950173473432748633566843154997425554342879813872888588408286655506303116923034262400651924618208512940513841094383383099433732356118408341561095254744542667874415394527438085478157481718055429230172577082542155145523116898159841576303310410248678593445139563372056885889069057119083999697995213344839522875922839778656931697054502755249860375938138006589525705654871539925942499971731716797625183078071800651730515295633826327932127180626959480634164969102111602364643235890477243477665172504370188262115843764422666620475127825235188702178980272672802771182277315210303587264208245289884331683157916664992568216114499034246695153246391357047807685268989984893205253372101246744855945116869825165086315065590233506089461332596475857404743071645102198896466685765093083300456818727572416807670592160435546810092925593956489533295027971567218920273257081506277090717387103132384249600991967666572621248871349920569723586933240738111770557323460902157984722345213827715795803472205402589664415390534121374470050890338715383493907836511458079202721014790629798992357303403249969762406078897321843108824493082661908026220499901128597492955627721746461146899392940105949420973381759438287802504440996875340190388601771701245912276768846757152369655212200577242450365397376969028517858272010843359833984544568178406257490431917087743824104031867141420417203681142989503677256546071050128601831884330590267041359144689996884717833470408291468124154743093009981538425850563276047390876890492793224924095349919034162115446082138983645436273452554213715789152132060376564346128773346423265279490788381923864447557705950091194441422576047487273346424607959246298170464153460651330840957147648715521286086578470735295517681275823209533816373144290474179840268935951138362336190365221936869489539292986105606543505797027155112426086430859272820573203824528633753600405371597766322099134912226229821552464413415294565515770151918986924072986258052706984831289548079625435319741712858425766114028200953496918021677875090640963889389104845046640865750372940522104112800095473196600465004394421684859422090144524292722255849059366382440277332836264503030533539930969877703430907123325762494149601610792428731668526388452751267060300570764109526142989664881812039606387340849855500941732198779667532749962011869772569041446902062477656553506566423759146917333072748915434058300807072214809831677481930217368453700212286491519944808643918607136506738526628029015686800738658482695676254210529864116593386924825383378787521349222969889549770334204786174098071621018441516177221481911004373337116936743087732669730859901037197397794961028429161868412757569913986492114247878143531088307012871037747664524240630432837083773152561194473055755237910984617735312906442410447089451669048806950914607318268944927878884930939500099507022903534353921332558947652503280710528542412429468783066310827995140399264853819433461802956014311243285648469653171701739125387897466609714539422772741011442393879589598789105456641042681478911626857280359967830398709786663444404744950237805374940891697917385372097470734527397946057249275908249278258335068256908378083545693636681739559150054891171229458934250193970208963987204233608131092995278188504027712873857443547058197144905713041591925075571511856871245138617084613762199481388155508293884837569145259023563970063111260122118004370384777070672157882914472504703857119508588093475506374838293531777538088558941174192632937495430008507222483922287543944226262695981911896956305252790993462946153609361635494478791750377713741590706231759672455836853259984215588103162562444276554990253275017631362943127796011916430509716959532112992045271774496546336026515365658288419363879337753552210007523306249938917088603055134982454203328601498822518924449789713654388787607325839686941239838808204334626611722043799813307423513678499084586481666628620111016787728549322725897317962900838938093783688622430928160362691807321356465371535050488691647787791858427737908188613147543573704383964161086684544778605185698836435455394146744883622569075822976566805177777484874297315217407172224089962520271344638028938433145251698363807311799214678365333421747888059772842616020358430828924451439079548741920599467031093767769273460011572635478653303787050882558626169169547527360426276524262803824771112903565310920613755010415351635002947736028030426515606870445034565865327374888313887136360128083391312685040569730582623675060661853976157041742174275940940477766295856099304644453696935713123533139018447310167028536689418035023616326193267872577312149724982450873030342047625852256587138441719279864813496990033682366359258820601075142130599354051182398221393595842421288680155694960131634265883922903517029638549314312026857517209243416771675953673854595891563041515434088850041606705334665408281307008328977614882496962892401604211416151036179777932102971347626579979402154699780387784794015988160852142135353041497943485318919528301157500655585264236187716442360830789734582505232932436402643759245918005632908723050762970364843550869676213310828770177163493776400157407706192909977311832715705372092053654029707767867266532779330859965800109221736238904135842795193350888221454365191134340143428094289321478884830738725770497425332464660948353516657817670744653783648028470969261013186450293122961659943735558202928820234450728277138137353108738681566684680584165539524063151157367921549112632477501265298070868653207871804612867924288077555706529278259419430075884278012095910166377504140143144565160939204213995507274987872445710941355550450157228970947059287154785784237549555530688277162786068182464764719997298003673328772074752265359103975496408864254765241431378861906622713920337483035553828434447644598243634065327813631957808343899184020729563312274240406329113697622685654000106238986047816686297777840312794899917073967230675221629509652878963150378284676791610967455848873593475491086691961722460379433265367175326679642757594399604997668066120400165330285049499728607042754250937207738586370041544102605952449370758500363784138186077956760668064617234295007523977651459432948967190018394508535071152508262845453452737577969122483337192342761582030801462801767562825024071460250971605630931767245930760486882487900538471580520750744820305264966898199940251579494232115902784104325425835337177788899239517463665743261372851811005292757346641848185181569944340408818037687535197406636304783372844055818192994312492820699574561423826653050981344664300969883579889993336482496472266767866094838218200691764477995154100648314950923402313298555020760129765976548251432214277265806665755782452114351183573372377304924371425957029585515871156388807799567099240416783945078541847459790898158041308296754681520346603969878439383081839237477162789771382844434051340951168427734092176907252476310892244466478911687943251322200736515345623118550138742152335445030893885398610146110690748910956635966294815046854675622928941510892372943193195614918231825611290602583642878172194929175345388235279936285889636367951806699435539473796067883863943299218278556841255867799549795461330287862146465157139916591402845873487027052610698170625680635866012816449797246668164161969879886773684747096351963496757677241171938898911618410167572490652812301639681693150030825201489745797388900152682402377798309724004631085064997410591209501570775841414891805283246730618351409517491370788512597534824769265004236854623584360159707296182804430916802637005785921511372201216585722336541374444765941395496439553132516160965801809920877908352579037577267506223225185883060756932318956337473318071536686998849863869143703937913796902175096258692842571691290542002081554697777269088469155248117449993657072604850439508091894328530447493989630060318518772745821052465577410812254858746139841024552315469728605615990049197301338745304316023246449926512501704259895981825565238875877954291090967219088355357772498686136615280495876215441732619304117924969971423648039456363099307208351692249539620200838815119183724445227526366889209929576677095667383518896619596160537535008602323364828721267279457182592717871773248430958282735739819410794665642841537352097892288900210373172027586642901183835024010382622694185545174623600553905336844479903780231493500910433515559836118650126049569602591345769365876222655770632075180259102970974492951788854202119297169126631041420914010786425238613208134763454729775317440856732210322546073930167741895602027299203162479753768627807845971052132685726453736242255319250951861718760134511243376299053555461959175254804303890441737617913169627434487853115501952536997807793447126384248899343581917195672961221652053462230855341045461753516028530353170601408812136373334586374744900712868341362130746643149919626458766238324794568554952649366465017373025269911908734889383808220490313999050562754439889044634722325658585987911886688740806970103202682039916459653939827631397675758675630661191248528924856994955452747582595838059266980566909315279118773020597897063137870893388322070950897673353008555615294578493640663912452296012669596009626249236235435006717356575093246211009787638785940003781112255481862865919130265466121607498035325602344356367631241181589646973856150829519318006571541263062289942986318094470882999697782360083731932759312453730293080319708391679211238220377593869128205704012577244486157978289703237209824314199521913569339907013764865723794090189731026773146477049154312463353149231164982846119122320443297987988654550488550281722412719641296214255244081433833184835548531648915655594728454941595183299317885179785723333498219716745220939822794703894830938700688809500950017601865107568261901821225987911067357657410237188662724699351075758553148758506068892653011018387189835211172154353512759382643296902223394938045976378558090731716349568750327089865704509163882052480794235222753568708256026031828129257727003799185301263523799010619425957035219797869460379340909076816903937424032942224485649062429240690413555579781762809939784678087508737889272173505415721686106252435312971752870170021713892652686261966868712382220018081998105567112872178866928665140868573073142030260294175800614754339699614454195780173471307453251846650248739186631226591260156602363786266520161741609131567212837043023831858011836035956376114402196341988517773587153802798083923962306959289445028812707711326597922053836475249006386505384673526547127960139270574253357239928439256682119007592076122827272386085621382765349933921722883132892944445541855911852332513183003512791379252076038822932907683177572843476710568432799744762007968785459609023037060154744372426114673976376141025089181934278782304188311556795804541243119210344135149026909550179999604207232260994274936196212594458470157994267384082691680703420037334281735882422048034577619180553844186706109278647544687110904276564909613367896693206186509904811679659860550340492059617415840318373662444987889103504706165000925499423394566216562460486362752367571958462127097101035867837376285945519035694807841844204611642743268607874808440542518712273222200262143479895429528267493240381500981848046570078416191838634925747769264605691767553183675482278920331802726653109312711643679338196228009595413304787068427586157839815966786353122126491074162834036375848986732387826613769035930136232429615603116634579503348069604146809599985141673315641663661063813593337029105580951861002596596933585381337026672093038574257421678642906364254627773712451614250089638653859527580132228918653790607932844115312395719443330597111674626649023894326671796113079458231044119190079783881715223000670094400240063875922694362285108398908252287558339675045354327424126564539480106648018793370264779678643563015419592850256243936980244407004148981012850384761255766532196799894997511651665525680354364260473149980694157671149571790870619144799725227147952932796307353587611207582906805645927075287717611731266294567603663357133534836225749231609088499733950008239080227083401844218602397156226894697590112111641763528196178800201355089860699803555039550769601752355717349136765805036634809891766237472777944388920986795169389361595325081576104264980771878858319166602587545585580207124960203569014360241160676509441751163995525117604635545835455868373332737835385586657651755653238466588986398386295793497986580783912028837322165418055101504518391046892095056442926187130727188975971985224621314295193673784547251284191391728084319502081487214486818091226214195079624858367872512008495905249253663525575397130128252266631931267472711708740168740198182053009569012107994936932404638634100522606283359784777509936197411021609915334124174563222729142898453154604467932463165850820599008444304452923568356130595857276984976510035763738094889043789814971338944112155340478285383410251586273452209298137895801512526795905016883811079779373785231407545364238326775372591139723168587926879041195675255583255894326247463169595932379328077397215234131651023326955510042567134781656878944325901020307612993187061171311147244684738098761661329821589523733673235671671545614175551623880797120001523453111994541783387246086759196531569649459754343526241471737702735162352186908458816943326495436096306903278636782721734337872342122012779145307361528442917645937575452766551173616624937762583412326694703866180109952641614144694368666554121465355725108823132604443020594782957064696420840506639720639317365073513173003880445262259603654848636596942695148372191940537488664822469551380014166175344131094397669630489259497232083175309962614307845299331801650845208032363582644210162743101366129855870542291846918585358000259657093610688867074083687084907612579947164130996388859772806057254383677775945949487903959265587631921103227650583873043998704354154077217081533712281697253470848046067848153033982742535460673613310625536480782351719373197638292319760687931863997393970932923584652592525487847560669587367260250749646865932053476033302670225878939971559384670734638222108716543115987110832363590150691704625433514220561500233993163621226931614164516346722487008908575597842867209087050350595391102855612564991351759644938784685362718801645021502346566085754400621293280842456354780667137045656851925933592247464344496813893964095728803007741566740902382614245016397148992671505880621404736388771776520916125774301134751954522037490896163122104904353465180190009099352151964047145886477356021465122479417805900423518207667965078580026385108261666788485589507491586451266193098383058348262969071317067310717197280807768484805796587544413799294491070474718297280178725901703403330009230392538061041675484669889573135068038686174263992443690005077832346982406924270331223442533816869554568542413174368857672121852339245514519543662928877490400439455946655074084270251388154225801277993624948276125530109575941070155752457017401978850976999525956172086894340915972589634928359294917641877073511887557335239097533861390461174419754910858237894535948817340978863945061700922735583569004058562272378064911621799257526358767717337825450819281108102159023883118495295970302890454635523927760376697180464550093663893952712937566183649877213557432275835211796176974028937456777117102096019708609988891974822781834064514963240191341985954666751863043821782298053647680859641348784882765133590607031616600807385645023674086326510479565555523905693241365906176731915774394061383800816228694214783660581227966013786881036422393449289901558277560476721452887526965184984097572531141269697999683583131116362301667967637406820847352207648198751988229863052801822887374008463358398398351191797700578244819958671237440728854255425882067330386593512348849979702623134280932584612061873144905739334295261855568315864723465082335631116899039298074623730185896175127462011024135025301650473598739129966877316578879331468114620930068822230887206158330968583647938117175872322118804407563604562665101608344367723134148461871266939435580944729922205809540034174771169249485722497611316668715094906013042427878611700218095472391317944418416770245763014022975018319380448844816047770140408137418939545475965527353961460351911339301223133299133292565079896523080905985857406951069192032793347339726614955417056166160815429521787924208501892615890842770899908154102051635179645981575455968806942601800130355785547027159876006807331451816194078367221223851733177317836585699996221593848758839224899291106871277741693137472569565133430063065227379245510562669218808078118325867313696011209077146657944366288330014408158630986317264190633304404450805822811281548891619832293273181879995885127378387293850969905006909581505599686237771294231761972940408139418136027240514820820737951363148433542279393342776536861035254077258399965486187460681108544159937826344218383938448584852903530456971510991250442313825249252954008960027765387386635741563882743141102359953392227466142808950302357630184738996956968785796476148133852746260001728400766103533599700110742958861790934485688238614022120262810098784194778556695767060208297297284932172835947885074785626883541396045205032733900115976899759234882378960037047435094401262181010948157151330500526967347505159579302414192467718837799078970967419856206206033657762606620039347514589512123138896768052158583214858756210049398274337792910008563459608478727443346055618482163033872291055643309346721926478665631468981442003818721109343897389863038172129579092991127430767197772915783767485462892852180820396714378507933637369500772766426675585419995885697258889417188547324570412654538727929383555423041284137013213116316861676495031820781233528078670360575316926111114131927428779044645590745310830304595611994778892976495070646397168145146294531242943635554886863612488265612400644093270462720991938024993538960597443351284906593630428301040581746061232043944596786199437588182107887055290972403150885180446976720704932193264273274749474657352706314008460022706069559676968769935816122080876142890824382822508271626545101507650711225487767831271048985812589031480801153234822354857562501636134324457554897084018525624878558411615590629157064001861938267871916714542297842701318556353007592339174371504225236871430802869738972306594087472615583200288560564305436754730126975992391214093078205163473056839443576608050549539129145864564189519842126675570326140401652646471819168255617805000436626398681263260515677037375763228255723722403373265634399261010727774913476271761697800242024174542196335423683421089982050983996930900966833517291556051800329123750279741383363465570545278348537476157707297860282642316989566162153641506119169118695850763008877398413314433235221610864807537627562795357326192768075059179197538220805055360859214370642558820407949945680532099845216195290348747172915878804337898027199175755284124951645538973669036679774585106049237316474933485138913107670478168931509280056525080740033602625587974658733895886504554910594418711510789894764277239141320085902731348230514711471086256844244305561264573131797594669083041340349698418952641280813039237953542339551451643685832971767270338799660705027538088446666132495208470595623603513288763569283104042351423073689830225761893982210451471164975086495793133102305164007027404187229255253125550507519626309014190428815837860801872268853303342603241887419947430948709809007796896221521278204036387184986911556892852678851436920811198966991991759394422276598585296073161102727719303922875037352767460313649872860148590878010890276964810178419250513768363944327798589783499670751064591608079978149867462129594299294951034556123952851899664838931513416634256253872290420785700310050576672387824994229304331876293310759921633410348818530789457862130438446990225971510953784248396404519561395264994091054193480278333814105054975038632521344166525325783462410543137242051343656100709750264749750601879329897004952635108038488001221708113442311592330182506552329000805329609505296747617827764990338046492756424607844006224775102298409044645760882840084383965375725163309086936595011316680590317606539941304678318604500629809546411793222760643945450974640311900040461013636375665251476339220564085394881156566515641449954699979896155170851923896417350486164401960282283702310531954944557157779195675885975303666098822024968864962402373769741490896227826267171647090545458964342513581072155099312787001810947933780019428811697138455978130343759117449830503972720050883851002048645276691759729131715166904145869909482996397885788471241582151819151311936465926550224699522520658612371086170777529724800962855738111726435043977239915913533372794371214939748639792624792457463092688060161268332810801373076067896388530352476247957729623303632060797531311700321563157739611414172670968457919889678233174980250090409276983988948694658406197088371187171626789505980379928186879083596767443867394110895371969861829767384589543924411217443260728143441568333778396580093324162653119758863863145759699162822606077903337395378068615499543343966625340413723933605837613571366314849602284656753473188333959769406024258503338228269671602514882648376703139366150304655694403590997958808653064775272076181214153941068185531517358800563179789508106998207123263571467145311627582525008062009835302998598765345615877265590577677705235068007347211604498064883912344314969945662968838109923179375961515198326501205987814416179328900586332095639044967327409677561565792169512569575734306501117727944676997548463963676474095197874698574050025666304304969303782864673088907406762172081629100092708410880219803664690320066048982952654419736165080870899913997268065256227964180494645415644876701280058394443003877713557078046564329913218706063220815142750622404635739633230334171292053079551861594221891341743934642698600396304005080020428704157295937353099577166776152516245240929006876484094452448708296372347946634083467678892429045159840508607169534168927276857026100718961752877525160511457579234875828968827250058296434832572501948870491673293274144146938616110082120730148945094220915611353196601506009515300421518796800500925670277461697526917366335884789531048751627925415229157364741848801293707600826420065741850241704070543171728758494534967559692560581068000917355323392465539765805611506266857145888623136877825027075077938929852212898376757339444061238960194625480149686695371667569202794500414657284567068530994311959103987237024927090104353255259805011571212263284707450745903405964385528208729191184983955166804404872154753233912561994593028105975250334168546567651849453998885243277578350372083477741274638187405458639292544711505554322799818208681879698647010465613411868005396513134672323812494414047414596471311007233355202812338522140507238615369316608946059307567586266790750537016110407034090926282674887750285975237510238545267796205530602752777436781940577953384076593719123390416122993896587754050420933165780695965341258929276900210583534723405610651455542932009170745043947019956698366277022470228830426650690455121943837056846708382357301181632285434001843049497985826217684156199179199351241530949158010079374774040392763688826938414993758057175171344755815931032745774187576371187757132246892272242493377771139575584843469314320561935228175997645633844635236679326941663652938292994731554160262278104340459712825822426701976096925423356800253834894656311249517014689940046400911880740870773299643030944043581834084141758018478995026247389569075478192665221993496740541728819110503325279002158545943175734588732769586397741338302654225157488127285818892732849776969110852593856521723918404258258231447031064760464814502022210286533308656374402259588047132186945014436681753853073158920051906575480158234491548443177708176712520461196493945018862567637414537686456006014215126129242464596730642846488510497611191884672049866454759999268017756643379003400568470375447562878249348984087140077023629650417075010454030069683112353172934030263172213170861762029604344548209543486763695249394153847667538095773551214637499080503829564670902052304673985564355823807120013405179535817759266117929746014869213202630600393179956484944444731611937253694206234756374504782675939732127033728057813431266211173872224928063336398345193036803892593096889952092520352785719809923805762361228496065232769709707647903913942314021333686903948086876847433080122688699462034708237163097247047250281060331416470144741205421382403081283471910093086202697490915360722527512865977495195070144683595703426614602530281533848272776449790077688980744583010805807625802826525398467121849904439425891880218806297599563142816384851120947134995242272909662562131057200278602521302716524357302013219950531711204193338562432181159685353143642809886601095854368526010852934463784118853718262721650745414154290924125763428168346424803581833399866073577309409498606570661584407016735064684551083448304103407143306886135064816123133500844233624141744252203847162068581577800344074422408997737952507722722425221632527079828648342393603199360077015781454854997327914957152420477718325986255747117217600047591868613465766800747913882388825260595036961456375550948364552494331849375795834470825651120297713054890598588936049041984366155680280639101693150794123984426141463145272074906342167466656220820733874054410275552773264257266626032543414164518064646201359107463690481409139488173491501909058878658865756080546331911539579519922691510175261135535365480449153805235243092095683913392366418602184865740565313865858918038882901004954410539504281908521709568970985222660491497703442563415201133543595601620804833457056785828475182886943264572847094155070663900420218474284148150729321142555253848768239840596403694675585587065077805288811843705437076685394020436679087947275769976742717439082411422515170231955326014929205324852331644303361410581348081211878445401680049841863719537750791225098168839594398437434905009276907430497219732166826907868189429886554326039347996027915286663167424520499357683219759829614090609600277500754116118234136595195436476826597435387250343355756076030942645937176844352565845618941330436265854933396448813667814189940353781251863618098614310938046860842389417657170919837530273529460531821774849806764100727806893539487785620807660764628864349757813849167549694801333616458553592342187444390487282202327482790004380974372224090556657982792540792018271917640731568687889908698234433324298461713480779415792607894378693787932181927623832088562198256262053706157053365099866604373352780043029785385825777258208143493068950997469028421232148054362521441099265845132086983569503793412192787701548376684625884851480353282100576225953123843954998455977183661774696948771337360294902432014008936954352464284670390628296129253331756090545801524153362697046334156094771470387833114080455327202669851691655054580885262347227009185683811529132516075575147329831048174511690118544738905002707966281357373328915219473513171507142118196223950640360662507937661011410909757198751950627907671992084156183831262327870536779495872093480853103370037079676981443339865319473005539550361373716903540441227441848250897255434113291414099210105027940607813434527454574891039787039592557677197303266292058500218412430561101471172665885887585811098013622427191783601505630084506126095803511462218689703926560067677522712781150869182409312639832388951433073092080618183670533272221996712213824392494133845030855374291395100606121406401527729920472162474690601996875361612930959443531967021387026224274713425295198346411502152585217190733435287605089694898596618737246471484457540042632111691306610800075901992768527723122943384537537344556192707318420770035251888198510000910588697024636141339463736403629167648502431395922261089143124584310802491853376636547379542810198006394675491656738822093720679550224539749527936043218760416737125294186890416787560507158191846283974995177618984701201417284922531659976424913961553463045596737003669827139244746172240537756388452506057383117220633099522461382751543842624841830545461614239767958075757928929553582315837910599881000136355835802538193049608748484062324421301967312857279756963808915891141510626829367132533904432204439351225627134258357193758075555470995280586509274891485606150149058672218630181453955271543377441157484301460454210472371065909374589455601850747065551250496207976349526296285857419106119868433743595990276751351242842162787382704073617901822642116190565452355982134650098443468474989342551941906125685394712155093835778399733985359799208044091401401301969205884816241657792074385061659298842954287592676532576461278658136538693023064324951487229156834194893397732577238311018607285992138274399553167071797786946310241209656299251563690707097976574622302248111836993379540037289040035528138387916696451463050174466783026773391565848513133733221345559120169428199446355869119901046702572488630391431318926902723427880765595671435508100852332873676188833143306258402854461381790916491511389868861020424410969493039946188156434692259238227154237325561865763731911138393508298447375787630908881906697487503462616077362010561476491958588895261757302986600028449208833098693563896669357365831543219805114630291803035328239125122651457960451129136204814160742634836890487253477414604979289686654718043110963702069366180038156492646017632282354675257725100634810833246049639745818948562507159279851400688234565876643286169649944702876172786074016278793760031340305365372001633610673119735402165742745526613772464146797016342322109483927352053992161846684431657805148578748738995611735615742292710799789378304117463423317231236870629887993956379693234381409307730316673855875833658948792192292991702925321953131063137516995648955562792077326334439956069913401234556618660027238644091295776817456745562042696966397914924854631761555583478849112031329808109382020016670821426195383939135194943324558741577258369481163492140484733546704852527626699095914448570908316042386634335523479952419332174312708264275715015373811447046489614779234323918836597604173276069183964760678663226749291933231611318776739191327131564491305693705855153395058229226297936692800988901273744011072991307584839194837251638752515268120935615506896612815652785043774385673706596865712904074504021396786409805016287163242664226733761382152956236522040211884309169244962016703983772402290077519119901733887256549451670248842314466733016979564931389538586123981116683082572022333724698573778725176730167468852701156427758200593935709812258690125889277275347751245969545250389826116680212877573805636856315644421994581874028106568017531855645652955822886169552862742002819640306143910590032153797953969302185194232688079468527914072587719484690411764169152274721106824390965834936817407243912567260141392055375044387785097186906128308954214450904545348523815226121360913632796256187136414316494221393554422060053382734515307986723066880135629301316501765553770471630091506247921237391937057541387260377844094217302591125049238615493819007039732269827084459330938371631480611283411794863130846199594307896849641116870843379334405700795264780255324299882702122395890715726215449188311989117964922556872579518737643726521041961886235970807637082519160197482234482099443332365004015103308033450987342082127921412004204801805010797985617232164735044013698114855410588119726087395394254908628737839037468098832081722147968307431302693815436368453784576155752019947911774123367085935717692095928402888000062917208716273797741535129580502970994424191380762872308506357855702200290134327092777298737515761662474840473928515508631642153028208352650155756311959083682307340304392715181050027526500337086894984288132356849650072493988474010569473433805637338402382436072538873309111373884076450003773447847091001864804554117110025614054087836992886952741392619379085138522929789581062839805904499241387273763985719482912844834765974014041432598188502453910670591768324622694839736115718148985287706502379213217892695361163793044646771025399165684431444320202981168593661665925520655979568482691676299777340317373780308748208117848767254586837334246334524199414107801536921241598778339974669973954295186818200906496976103678215280989529876069957103569096028371008599789898946334872095708021792336657487071467773673609724639922157532194023698804256015000075840411757319574984167403330352603948097378856539028866590990135840319648037329389860459420398689661622275489436550760002345814107089615093946926452773942351146940111277191491369254378585394835272648575521602087204812491691018527179951837560732844266771847679540711162180153539879182477498161858356464522803086323997713849928359209270555307866515564527689591621869203470156455573402876692638413257703601605964596904032255123102029559970989164180907129145748986244302977071138941462836484848715767856779487814312512432935502476872684689469338789309686193721724524216873927185950326411718319813570892707560107929918514562750286621924369798417811414045403196091642478439214390278338683726417115549439630419405888067523818774291085517880020788117679147787731136388027728566969401182727554750200093592740494837691964174174743764309935882811490241585671721186545181954032744630850849001867213652717887423627513368543825843572609765763398593536487906202036888810270158500580830280052905250059204099540095599338281560551578080569277503764059324228538216945892473083726933480345155440890818030000971359031387603695064629525581193233191042017397696851107854510205884117474295667426408627622606677216076333832609244311716326610442814595860625069986860747754290412444646328607846279208041631617188773654072051469312121432516923429453543324728241729604332479029063540574426435510165761886887575528924905830732266885794063610726347131451280390967940936849793368148757132986978132119247305994960140277818648319506098399949029248482264519690766949366809185292465402548007721990891772919609315660548678027148447837660439060031471464522967233738210187250391731552458699554238861364979298934057309118689822968756922198783526788848165620121799323557181193394789972941131625038237716074760122507890913913600736981616449615507711562475184867186427418752220983699262511079458767442710260549101837714149395384601730899334493604769733019287791380270313507073210981882099042177479582446759902008357116817844883047873914753449351938140117520881370598439846549557055010189474633178513544780605002453222898695956109812744537200340506843316195198363031817037478986266327072440653794392777506117384377391003701560450854244171829462232309874159926137923103063979751962906214954936751493482955342557326734057366254563878208772478017012519108061380763294191048376862061550399017105775493794371981498602274574327687358665472119372473648368884738636955098149860227457432768735866547211937247364836888473863695509814986022745743276873586654721193724736483688847386369550472304586168757789926241799192428880868466327656215489453775846426936601705490410696791396585650472314269792668892085692962878423316515400879707948404460626602059142071572641491184272577254451851792252299228998925524179313295561629333876104160849199666317442308779405887350839478730728309916977398349794368477463448015790691042083874953549261759171854122935975189900892226217219144593067886197603562218812780638813224563555606806941525529789749690521025558711666880394625316581559026470171799000399024833401918474186111779142508795783220037431338999438878790174932178328570913622593452398799211941358296486042387182406741709862281219018573336815685703235943091990841310032742416308560704018396764542197565982152583422886796490617533288038337592518802135578893511916333635912565307619634468859555567903193134267533833066316434060769725033746120456578575427494456057731809473490446364211529985330435369838466098461376693430846170005490836101239165487402155201807438320463746783904999935185678107922897258746903677495791338535035133607550732132560029191031551310728317711625077255153125730496232722086022521464840220284279859329283668879907714081923988378503562205294533615680282037531395403317643158940563253112358682394728921042814777090452957049128759352412051358687603284514258273469448854564319334456061039277195821292194131087466667665924574913853915794463552398869067679969535565940340083926630948915637051551833293940005032264170884889946017449665907668684722866810183423473358074816786082569926361457941434157737969727619536251481604750464457139352852592175783952785644120276963185951519925370647385437507348419804585231099524566402639452567114830535968678311138004081619234069234032609897041045680379348360105449292069273132391092894894161225287725417258807157698002902327692992653967222231259542378978187961729736923126986290413294069304779269034079608593696955308287063349885358980631703790655102345550359811047226307843243788750268086652866619701235843107548719344699613511024653823076326385989468574353065605827530017359129830695156395419433781212111804407015361531438457987316667203618404665922914000728615704709231838888371259011377511015467281568312617313584544495556934040160625159122144520263040073167862421234739841566360615700229575795125960678909491807148721992011513386033420124903343269019031524711111770537674903792507047710800078072437972199974867805127054386580977383660845571415922313112507699438505749572084470616176464289701673424853130726531131411329692244997325898693793362053823104304688116727029678179353151479252622771508731784134720117508291991814002438516518729332192236713933021839371801828431923462068612248771248161446437262384667227387169270434322667628213359572086575925299335704693016713770629372316184028128146654033939299764799450835563529313404481499746082157314367827706020903620002365614794817961669533898203303643151976058938824031310458646245390394575637688705927941914463513165656385303413805511607383011523496501602628983311752665408951427645487394364290003104649756341864670633839370264043271999344450176536211941839809140543543120466110710229491479572822300488815098928800520298222195603137155531918072367580873515739494158638634659242649298271246874287378871072117796093428528221850751761203163287865050956785978469694397066857436394417334190563835044072943862175261006067399446571445256508218511081123473497709235330607315603438336668128028972835529497834686120793065366622984886844589730236869505731807170927104880209369886005259423468558242146632371483603347088790508346751416318599787318213771136093379679226713048084006357127404476190169902128050362495514649375628572555347220155291627360048420717450788079507618459136069577882486187479496027948214683255363696480557947519580422659618175754553725757800638500788289428801540451472866450769363642926165614640923760991944230253071776066476460974890130071283206700958344414867959642884426565334806269850089001435859793432049547007397901976240218318645022518735576819538466957130700628882926375616032787642159655931252924924221613295745040653822016726239861866164858143429888315192031590579600733663059264478017682428057937751925499116138740816555196180080619144877294851166256997724515082137146328190365180877334737532213901795694554698558946099509944819766231605827389739243085310494440787084726990640317835935290461384822406081401306739211940359265892291196901683043436227971530484459807315903713539908523055541358503033059942630753008447497312132922813900414937292573158103903671573439298137236609677070372399756471131383650360610405488716098619039618499361053903230560359089527165216882441207600029377720542005493450599593284765791445138948041792035850852529938744500649077050320426246039291347918605296418151407354308345877036201626136356475367166760597478008590314293613337929331917500848550960438971811040988775200492122237069558581249625713314476066506933678827688873103244542439828907735107267733266784393233220192621936564466322054855219636285988698212459059484145389835524317193424912990061814639592356382859406169029756476311262291466746536626582357583297221661709968921215263224954097253009276090968909298153985477810475460397048056409701943861124378321613301721735201695386677893805184729999611330175309536392020079729438433442713241962980107195951189408020760785422475347076597267957086043738013371561484930232571019813287494389614948548783732970942781633625443633308269399055796881049489203758750785453764050536575757195557194024139210826876090887690522636865403018708227018835475847239992289403407907951367963796350726344224554191280957705903158772555892207789691111868653692807238302403892362710498072888312875535071751133424809692876972015866751891421714342557639048959469858075006092798100439092494524081766250952741727415601614543159451852217185574955268475277271673891390290147202350598954961574173169890428553994402830278383776236501085909369192015402769486814408826839215934253185968629688677073556817836034197051841911679193966183372970001938229801502724830835080109717730911105870894894672305428927151182464154409106645329532393545051930527899093172811499649272530603470215987196134565002063107133613651786165441649703573682097625837494386303922487734357175596671101166931279192046208898287538871071536313688155466795901553145462365337277109419292748404169131454197001775401916619419279523260188825373033775233601219617116125553889783561767083773878526075631342058656819701929804205050345095013583730270205832447069646396922369063859331108112201396771000674772455361451739824657873343641455185212468580407288018781059764871776307978933254645800932156135484194842177917559330935785967194699195056191293167993441194597294243460001028579758994049694365666190975793295668054246701383744999094886569721752978624999444038632564887331676004076776907176911021713324616671369335776775179668748237981197416413893296651098321913188912306128832130617534730645943263123690219424876504426568006403723735652001243194823731911164158611994016234561070555880366626031622166878471348964997725714436357031875007532986006333082899705127914581977792060780694205054949268204440463425629715753409492743557972516015720797972660701996918700986122241889692247833122306988351930268001333515823480974691137836974486763207815466488126392408284186516024914954979864427209866051820357176456894993560204307104892958158650639519173056385593822175143013143480759866933265048747990380564683509565616398416023155104796598859316847452297845327115630225679638245805708738335984861594269992353031747205620220372615270897606684602608874471195186752852500561782972888719675246604895413107910513002573103926269088847423715651830991635467374572399438350009251653919181018423706418278446319964905528885699393252826562628242869076046959122933888826367890525889629799260043658351292859166016816271158503859509920045023828805257871607999148577951174107145878927892859445542297574892663914906061225590184674242048983069603260992416053731980399309580318458741875611965516941030258842746132677152860416756259971668900919744620570788760619382471443068200786999515821869152348094620599473367284161874380183762446843114622719971835404199085721267006752205570817790802076422387700830231459632437697248430228137474801499459678297652451111647562844948823911265802232072339396724873534837968347090372172780718219930457961708748466832260754831194646363162955046142891818703440255160661099604396822797600851051090393629109199421193882665513643110459377398233754702234897098938238334960622241445881815717448698580076801768098313544889080730980104598298840671012861381855597791311265857946279763440209325404642565232144878549983704521267864862959677235993867028758906282699279492148880889025975297177478906720299367123678763451986595708011874771798648451089825195533914045264040275752862201560983909743678839234336869029379490238806297699255692023125042770510894350978320237026090787722102888386917306520297074268705923543037688984749133115084572724089272768529320256830382290269854983092664279816962154826437896461283683804207320924463481062482376286784819581085473378891721650337093171623008278354460953550001570873258537182960697550817043583499220434782397372708582326963623701760976748450030410906040116877481312364157224925413673506596999974351468311300047904376338946838115075044798362249775689187063312159825736569343060981010581075128320284644444466922583587764541076542454461602377782788423014324148376077527228666458631768687572843620346387264647033781045580384086990018470013294906720162910673208665601527200357037700877236393370846191528320488231140350582535412867184976918987401837011197112474081661540189701457760230237450381123110997102646614140418572610895636960583124466251033442176986955312306918353300561885184871146756537471284253783753602700254047815267696386800281490670826847143662704493834208868297956055915309143195923053793897090912350168317523156938922081723667794771797136271924145558888086019038040749460151095181573219926316308153672778639533982650376935093196217493071036054682746385192384010858938048215379605703755413634194531791021440277244002285950510525078853005636254879620396305141675053890281548398938260561846059692543092305011844820244405735333994864623246986164271525520414183945458833906450700211202816269037643723678632709238480835704928556654225657004171664346794270566931694659035590025009811020461599706922269604303931341501123852020843307834927685212802322911525197379137517432840567171957865482009683483949354987063341045109115580239978965553728671671998063562188229089859713594565995658390071990841135290070321279848681737876376919750159650347621049267928002979882816144262470454993187358737961144612207504177376803842330889951248927382171911705995177134534299457297252152140383430460734029321292971835990233671675519020483679889348578542813074091711212749135188966503880595036488660019305177479737720060385947944314665010410771923517224472581698761357315539473606361022608171954947748733465753076976238292997066593811303556669828383083276695476109668865318112204113255088889820627979806480301121722792334181960798412999720720088418393872211390347247310851532774836698378248679654485396054673324517828218373712906848843226097503190635530179412648238953511473878639950548602246000335769136031838256952239304394162767786502263671590542608217941626062786534137817872842038156593007446364067398966754926876493957184903132121136562023902615229840628730956481281693035018696850371310954723293767472224785729641708198589405216965981052533788923350319872584948893728640768329664533840034139733684656642998129620745325565166107548253738167396922771695636536682581378539295928048639346240680045612897367776564992644452755616222399431748911099786814130034087861609640689091934466010685781739964966919294071519797706196735563278083037486762428189532993799350174377033041267846394107423900040751986059181564659477586096999941255968962286988157890242657789777920452894572685978801512039187864497160499936222646124958687721434771817782721540331579087438333180945029353819157281454183268211248197232597214322349402628954695747621010807874258476571478016088334049625546506324147444237115967899237058982776656858977194579259926929040833893272332479302542032741208279443693635479139795797203963663957821049584163144039654240938604752833259243435007813065949179499077038816705671448564759014708193628846063438708308730139992537252983668910410331359439434771325452511125521110927987277859513827089163665909520741709275251299026204554103080348103227000462081993134977410339699357052008134906942080378722037904643828902499024012213804633979802421821068393468508849301679182896621304254933387996548743861093208514910533275877322690267241292966256736459068755914896312050174243945263893979024423237032649035968525782137809651504544989318660685590975663239442261822295196564215725418090320998044966138139531209853479671146993426949382451496674751598529004751805276612260071977572249670815150580391434618240125218092935634426976907759366545209082025060278046714933632677872058168159702504818400764542843654950033719423356553170611002844230300420530529529330867637602864565461103827537415474849100931287259564420569761099930208810403531866948926239609953565722335747574315878618459048319664295632227261052716481983985463379437083657296409394888203974869606943333151457916397207480723433442706976286568508894730949815971906831106120010286752309520111063997859704188194278438731917954837460367190355693038399401548373818626248926181581754672309466283620556512169174703278872845703153454448585223696069798688922493453282096934356761679260108472382625897599052637923259164150327636255946077462741704332544934574448894772168762718277270729479679929407037256821061295089993702462171998898944678766862734579413522640334981775308339939067029665213380346983727289053247600661939254582065928970141526129507274262922793246579170438371626932075365011196015575259469406191818184873777134268344442405293066005733445888690588803931774845117741023973587752822843859586720282398743743529592115562432243892896300272910568728872681616117730356952723169774369592914248446211898945750116903129574251482845174419871337174865767463539747457615954160878152194938038219063171978546364806877248861810391894489750730538558049092079632148308935231848037909066681345271782335322466125219499267652914275908909226211751081746705000595680931351952840080439007572617866577512574528843305355317484142917533742487750948993354373583595545788270603739739129226937030124396568971237739451673185967041931739307423102053944927937255669514349788055457033059083401130455242088377453018234714836854057038398030083490146661575627829724543844947365389473998534287543282274785381373116324699293836702958321529676293169015770163764597073115455682766349019482504203271623554376160628961010317789208130071331349683386548654072526999424381887465482728672722781054698999243638538389171009159271708230490667276596162378168640441085875745479366675438596986709554749996591202364718630251342342866031230832887254261484650491333914084557134897421213326279563751415885938343702328836763614272109109163264381199307118058137053205218187168903404084228331495613971410009101715099373550162504986980212807755241862004587089684443830634459894955514400987651922004434826887012701983039406922428539144344376925256906037856331636359169597563628551168556316245250277545376196294289043661945896802391851580679143860655457630666538550897916719672277397520763582919057664796718038856453881886603506454316833551245320523828327827721092596297947436508273341906948411747713586694162355151541897665027365243778292737501090510930825867898462418684947221879450928673056564729372657210556932497375301720300342984629399035760405532694801975212600306698038435039953622458649675717353644866229608676650221147619719066836700078786195257277249607749530158270401915630348962763155359129352170209298150999571189777124690854467614485083505413333978482613439531495371915024132149252570114576270103268359197885516410361473764759625097622302881118895404713480424617911538541632328400543710846426909503621868337287756445555844513212607093650888968996261040660972714901582592651684776350623657335276719538329789200090672985653235452227481654101948007407498391882302793263914494236957352889952770410995339475528270108194335733697184319508165751817731361789203722200462320225025710195997579524022444777321462083760083485538773062739020918868352510196397670784185032783930345616401418765456938000416667218785983018332497804306684137087899778060970875131224537331792104776532196322692920624441186024038239395826938487694386479921582750767801607506536356019247816328848950673931704750819664627195118968792595048559814225373534918820225223225452706403110045058649340196268324399675027094197725799996211263154981806629354071558361027497190651842740656593725451257474213565274061255142087368319535891534018300564376147556000590188755943248998734235441853629889772464142911298518495310609053070368529095174747046621759278212702844272027632422188650036282932734481277819082473719717873312282624529339033105661231369437672159701905627862510231496508385051784954746257928633548467647505619389560487127247631535427130602573246197073058891449957628661080519401608773839935947596879342063061649761016289384743787627083980936528689093624135397422309740440123377345283506225830076819495350573727124729146302429342011820559428587540967299824774332995253289388910288262385002918686066223060076954145344014154378027435465277981124805950108815688653909581055179251789261685947619890185128854853300197191365805093430865137339156714425310693345585359369068057311121352209014898432261639643263077611402495957275755180179589419401319774573422892233099739196245423781531637399205324766455348061014367306832579576051667436473662023462120548832579620677794658961534666628496225125599883736635615457380994239822341397785731811852669450921933340027839566052219043439079521876952862953625834511428833741880138976683348345199235437275950997248847549985348212875416021214200071674252732281865847130243740380124721275771551735438068693217817098469304772138693436239351851772094380919024767919123501634197498300194349251439227328399895275284543098006139755700791417081678257933982580345053035043559971630184552816829264227963795173998262569721393103488869523650338876723534591792138831157879766244044458568626611876186607785442345782556217513915151217506997028267121482353761675339029972479438694009843980337239260825759149712252496999091625168224188302770648315381122368712756122608584023252177282389919754616966871004680666839513940546830147066324372809717308526175004054058463579964387130602504665324509851371135047840666967408120622808495247082736778489675066868066569520461593590640327826022810236552083797774909998813393057249306686654387869383628943125351751613853047656960848342689216379531764454189162730517522167897208041102237228388620965663043269375053812605807435715564425203015360659827372446319420027263684000729039135232160978068208980025039711541356380741843338384377559456889934327573287635899539343330132152259001208386005125201093186688267356726049987995351226586460768784544884183383413662542219697146325189211728250097412198388943799647742461118287564927400801095806810716319090555440663768419924830303824453861204763918078777478409553293677312666506230463491542094550301318699283858704049776949876230868160119822506037840778293313714869319557690412480960028942859014715630035995211875113496092846464388277636681644429087235423656262418491311097071158811075995684882418627659429311553264355336578107862493660680973525672832824388047149533651630446322041993562377636592354694982486122240436933050644547086698381945613271731670628721129223308827822876856611293670404310973668158215665253095319273576065755366338130811412615041827425919791584686097566171115535926504724528901397973074836568456676376607503000803886827448092560195250182287786775116835185139009239907351059703270669619154073287289116846607505209092006071456463839356591565542668711062586079996634045775888276982303474499177127874165892377979611704433066549908819497037199281218530920424550101018728097074432904339482702886320072929682300716061300967267295626979183862541923927466039000712109973496105323355847256759415833536503896957888361222771610209908180784994235623092109652020074968190970233682046479621093852321055876215088656767684835432116346982157387655083783203733814319900742026349784281011684895754010218975450709832665427621469333908039904675311152024150248320056656158063597923618193230076288272946688783790788539740489695339314700311313244930932277053261300288505434290778900634031910022855993741995905453419829483886576419108382166429914611419105410407217183757715506151351539277140087755200122840978187258166270893127396454647725980889490463874441203383403984705474826484342166015060409787038719760453329681594560397417927703866116917540306056042759474927373175806087531129660798807172302188309181631035546996789996768141132238405848721504511097775413092733480856139943138919564591791374612961227432649028945058286960183976632667681848636729784429610824575327353237855810127991695760753661632844571547967757002225920394790124564718859527332353801320498670716155091587828895672746134396154959024810526757899163956156292280024734147290929456542414423842797513489457306058339555466206627021001410276707945843521164890881686243697965682341977082233313015802821876841167102851911373496255504415650032201321878072083632156727583289411942930094201762773431074932221630169690371102119681781459611298508035678247175572259523376464040239924499411713322706481409220890393406774165907933582247961761271957579062321607533348044259252472166376532812491737879135545453182838865387075647639734081624444987933614312318569653401386442209305743912872763381581387125506737122428830099858186321015635349402278310563117033107671249904005132001293489702721309952154923915078590421402689313004609865615236140525303927254313140978670372367159813508704144415568474093424285806826691887058701331464632050819150562484760044352070807540878211494946211509279233564167673683350164228427865293392832792845332151528920409430120008170861858410750441576216810260608335682836973843197136510829362124680025797679911553999076484038049928171803756534595183845950993400933926031105087975376413354905293957087659913428997297701816142947608013283728437159059062879686640047061491784659514338089797901747228882213053141514526750479695173436233472615330300093049742656539457947474078856366781947087581203460486212211973268398503198398806751235560721231422483976820693357970254541142678568828685762181461668246755029523775266140894926217941023421516354117757026907294430769570908960644149658816717421216683181149637091447791393408677917203636047183375907382009969094501230844029782431989830742991247475096595054024321134629833441563938684666384511304171688046800828350179909695445574285813277440301400336368378712361162753223918520093151086954785404060385142967533705144922858168231754675785993324897043319474811631365687622442092119616398478074939906325506586104726499462785709118482930764005230239571694045302297748433753449693479104278804649755091689284811027335593809440469348957848319661916191568767866474420917676961460159614300711876371159818435709487634197399138085628617818195168335660513197809453225854265525165340525641898360419180987756475470093335456463863745881837071930899277747477765194007121001602129242904288437751885569693798413746195948786640495288517970299440341709225712698364347792342000445089724019564277684357400046918068857882963825556857695524334810592353696323776654121361365941658964893601269083039121890796693463878269946256898943238426947900195449176490799259672833320150204055056395822883229865421520127390385712551158338946014788267961307059368446271407317663585074877351536087854710599450815737503768721757586689747637142045085859347552037159289414490384555188824778224888605676817948448850542482711765602041275625108169873029478991692904177807320820294539123872885057804711502794340678197206798706677346899175968570170964221498843862131723330140364840906229633661397312051267854801975140106876149786782238295155301447754388009420919581119084559317284191284475424593024043441560468496036522322070391819795473902374792889430628755879895504346332729229426581981899384964339039017485919007454985194324377468897151635061784044765817263836980897975093316068670902736290679673652827703154632011642375553779929847464033232739853551610977778107521262296894986051351716560241028710377241294082780755589199253507584971547702149091468336554322310865474877713862288757608100792717858979025987591886351963060456666333631921740794453033459277301240490432328916988631072549085903950130666659273011702603766298106832918880154007740068222930213859576454235684172436497530339103424759546679776970800273759435800647152486835066819946207850017810354281282583528653403952123279660353632408223180898254477105204750370425226479722869915914522430007083320007429597732272579503765299376768720265918931466788798396187665084089721207162147080505329655306838233758647809970173621775251826622594488975554791079002943280737776954120378881938575336245355575553862151372157904856451955247827238390439225555860854598378324204224899605866221584236888878281887503287720578409778708991012397962235928130415428146206709469072943044276373570795194638240638535397538932514553204039865813187666506718012855292092902813884649449913148962151109657353827367110519461256070483211206288125968749690533254651660985515328470502072184489791513038599618270755253508309417881533073713333483247287774790518106099400650621846957914160902586333765370269503363251590124006107726551850408574372050402869641903450601543414825874821359489668051697162204129218909013651942661633491015177709354187823411594434257301845846047967497734112396736746076937584906354299939745453007174309149674014521858837580790841009395282512399394188780009800085298325011797155246966298052393594260533425668348417106596468996024067593181873007607716569646002749184784539283759773956101054362297228330796712427595819133817907834096214082773026094598302411681339242540210247908295842719227209123104987777436008228204047939823835763173244317194831569713300108285253401780917584652294174735919734937221873348650377566376945451734805841274192964806237884746960032363296456071875008561994006290196361814327696107910102484774499481774730369751899228135576935750144684547038179643560419274820296641148426475538846160928431736673260951171414551466420877593721160664005713187183194037824930356602642114555465509638156171759883263066063541502910121381757407054603475894377765734334744331361457069549958552068159687192079552646702350322893258869265521158374045717679269786983093658441605217539839796914164692130528871247348215268404863354416036667164545205728789206539039689657009883303927822831246398832259368184889730076202950191392217469639190081298224475781030178407124137118133347420691538063731963420372270013531282315612820927307873336065731882243303526775361685144012848142160469279280062614904237264752955289806723868980112463526170892236094195142983185054938776422055983978423549606838430804446309187389828110323261749424902459296870542909598932771886727881814902205185942496497864372201915084587252415137733086590163437389903690961839418466048047641285774857339602432888485615948165391309950784326152761242743730419813219131097138233235365219625656568413210099779346586712530980916312369454565524086709902579573737869073570795762333041520457760151388345584741962374792667316394317081104616149280635883891893012927765043664289222295248659619647425015639365130455542218413698115505602264569224268844270921908249138797460468842621535222232159695297204600356284480180514309235146490648315581470733739099094033063516284763645243070399022890691032269063357760364860551940902782680315937808826592838678858928333981443121074324210574440779725530487580754382718089738160582946051048302938386321120440632379853101812009680047840131210419317231158801989412899950944905182352028550174784547276205986369707009621505367367800710401866180814138596278076915303308597359792227429779680644323689308438222161613445029092444424134286820459892391441005864948555982060284922716247787026995589742281427014367258362020191046924111432481136567823885316616782305910130295772373949421822062853229253296628105627894293746615051753207102325403956069542024998214315397713255432975868552527248013252592049623639186428240229505652917173498207387727486453474499266638334680804728431021137809271950366939837088898079287353281533984742606450074080844329450210486602352792585313312965313224536877330895416706614836311068277941901052865443855254758821389430878387554697438926764549662138072288425723934505208345421566445773935903272319758171765916091499223005364777283812733416662253384147224262994241192462240097854472979829127844039263998169698249831998810282024020189496060671263656610074693970892064689403357049238092701070510535093856117942730216979882535416280152727203897968351604236902381883598872104029201907105608751001679037111105179391713754662368383254144717859386530297056462626094815960597311128207255718281113324607610421774775964548391117971361887347487868253984586689749210617703503217366706570821698555986605315272702364292962106033276295129349217521429748836174989730538729795231771376516956560760094102572096526413672280471890194845365773052324718457685643453133418091260257540139039411638861092776307356147710429820371485588099882807701182076886043581805556974289513493920850270360998529136566724200040934068156266480004775036926701006718756549830267840394977902849840804112864904273731878732357492335157779266546405875527019733174152553436934333587817743947667698653410903424182885600468244271735589195629962507979082737456067765384902422624243413944410514766832862609811698696299573291894803130938365787720305440635688808739217336431685630197495882407785656469110058448506322174856027869870825449234350094624287811424792557092875881603713337049894447935541357861767774259300350199487881893546457069989802388428594340235293957359036387799554858018444355982316908424883535500656784002486228853977905919021010083266439140423785834714153921125211966441271967985001403777378161139546945562639343963722916983970344316180226380185350772747903835838776038137578386470121363152065502850438209268547160480494467248770511152956399198461966070480199092254387591936048994177642432378782451275097624575285549009194966343005632504215824785039438656573470302650698002722496538162275541258123830022466850559270192809527663208055323913607488598549525769899507927614076643457646429097181815270408434116864875195291524250698686972091219727276416639989480352938155720610365285429980422793399098463092628786791888447458228183849154137902575761730557372190989173358087060952118139139228370173304768818085099171090504440130249073627223745299812479422165881185896380881296789286027173502479061364226666970965563306010179050522655425750442591979884309629281030657817347163705682133316954675385257041275570407558625868324966666399960771750714245424347638073499350925572652501928764086492761849717304589762514871648859159895125537522822295535780927551577177349425449406463653286438873433421753070279721078884393578408051947775698254173932129280352819043283042266081152776150337280932222161462728022551727594025891404956780402766853683560064837512119565560379290890174970568828924953768000551170445147090402764770952661261789116435270849476633363303750476266818134938316846983860367178618075709038409994416681888508857156733750859452381605828850594971914115773519469163826632910009363196937626265633997143885908306240500221068562483937545166453897795264550145438489917421968312193140137299511841009750979419923746884095425013212364767075328956871649059351028968444317033151388148484475429115655149549323986047347014309945309592965732996406961790565718915571395922522237799661633492924092690021217235135430809375801321612313775451234872903356146091481642758104995200236087135985496480127596933372611487822048271416542861097287385314981069732753696855913268893124658863973778605279647314577443870375512914383631014808801025549750185056343837423264942884038079814325557800163924992969085284589836391329251793706254015022668173596465759859416332244151575736726621923042569556660186221382619088019258120372388154600776003859044903886176642120015712766244087630529283978600293770835310900439186588120008743195074102899806565937988870123097310069701795579926044738696361160786515983764865016794328593343196281286555160845291905914267792049399041189678877878667430392997576167646554681342473563258183134122662690037483369850318720011746032135725115548751022769220143344417041475936503892095454997699002142804930356954589200600890881228980848054976146423981241706535745430437630406316824995543589767797872906794047694811267909513557437820175241646753461329758000981295779099727071190393638094497139562962587268238358947185416563847329242758695098427673777219233217527653968660617728237159657082113035581036381518279132569446119309158813353194273406654288407415997081949240291838849762574831533937525466736508284396554011389663016763904630178354753694786523936554798320943468147633789840657847245614207599449897741287517449458145346573837899796025595862692807395026992775699077608492022155897434673926377917530366643870530714852519470220957089282863695049358558489320909558686670233457554319254514425181288007849915141850033013801828358291916795101513506325891573568794876741918382330615913768592234983322508319995527848625505908486745504695160242052152523566763826664320624401134624618483553823191903078979048915649288167569495129760602261851595750909144277224633135683572235099411255280916228242406941132232568995320003903020219696821738613098796980072131163862039032729719199555770591894651777093108673343597019086754637507774941816421366245871228362571309690425221424092741444428629467641111573339026068992839959142073445918210129878938271304750373833166795787273900628348817212343279316790078017927782057627942474196395117775094573952744389586335334736796607055052701214254429947908049134644735738109236893078603566236646115074415941923079912263580537526359624935883885499453578608882349064790166624557209478823103870099917210865162700174127764789314306360703172683961166817967359974052437218012062348194046773515110115013575303935536135039838765404636303172924040044393454222886650437559521679638559904741481073663576222693266433064224662251361964755994793944751674283039388495387860866631365660876086740168682542438595093098390095082474146115182797151479253878236323116039101597908370532676133565305010892559736947825669352228981542080144662048550197653232102181616621953034657184128801650264483177753037857572107572167270373519222403141487053328125560252379096528551710604474479118067319707100206860334909523369289943517346016999107184507049095286957774131794120530566393158259808009454159456847401673376199344464418595248458578067918467182672145793302716286484233254970208681474069158570524830142625134913013179318973838245254931717540343510630594415185851799332289184639856876612867808298214112906685003925620774769600566532434851625148542827048561423339710633961326931405248211840228020876493282460070792951867118770746416457364563422226184718124284383548826605654175590498795369362959566497254118371933569798469939982669708232831209910934125599480819873220386864574976150073150130803594050406734056012325709787469629188299464967009553229932888316237622770234460841617862958418100330595177229060066089581303058313139558858804827622596251755183942649806312004512718100192221949705766974884459659269299769162079726642341433969809608501454529911686784527877225801508574285976431805040716225494651215268950797614098356924309417467654518171956674720444984286032696803718410825938273355849743868558051359522845528759636138602758981945310017076089442733247468724295891164782188536209845829468303040751100830546676612131694944656386623369731490536304878907883287404207267338339692583482813533324626119663972767295769874440365471360016591674771423861819916453062722898155773566229226610897177977150083462794644093605843157320637834761951700001658106021009287840443568206520194527028568264322176071358160175222197346722332778027439894359711559780381276278065260467038575085560255608105166677818382636916211202759547635750927356103375651797699465779495961144911621311679160046072342568134822109174704161025408424839924042350962196912636812091643490379266934922254635101740341015465437528316207061053908212266935397141446701638713391957245620135139204050918614732321829361951891236454920882390497224882879142572991339778222478186521013391414371601077808100071612966209368046726337703019405918478585965573088936450785793600087862868663380797636890280780619857010023224477251403933032211957205696718642388023218633477611259943548649924474751661178360316695263754160436006356632387105927935792175687119998228111108914246461015465535659621270420999440319758735153439833319560989417309386547454651409993893976935539224586430358876231576156258615874628728187813371123513458788378558042169776439852599278904996242906538896215821222189788781162583829659073632484969779876120071306818833725190037037740348722504297349609934766072848640001631992960669543707142711831921409924423946958256654205419145120455361423648841481602605377486614986411028375951629099962209123298192167833923964256139072775365707736393725119822973696786924689151371652648697596513443576712282685837531440126280418404622869358897358246373787848447481641210733816758775922822307915498221080479590434831933876343307339949925194243372136321191536581087255275493903497011795310565274368888944085474666472727078090980804699730940520281612958244606562916550769680235614513978599953561449185685794960899022815409931896227352107475824485672452619510048267256152701723009343943029068805301926455353042977099978289188712729775673122508012156908989210462061030326541953558830843463311842324326679350246989405747391049323557387286249786807514404987381434351183852558258596508486197653483051655774653548492518470623584636112896123106347561348782919620808029021541889567169547057841263606512805097004486533945692126761074648902182601513600217640420759343042515496047121656063826907266881060328142047412200888667349415179972464443148785230281956677300924345252780354723713324981121114475271960517285263909324000741008504101353495340437750708682692909589645056777697550518169976547742490749871376897080542223103073699862144213444970480833388629036192462099417006595275523499456084088835277119951256411788748775542690695378901665837170505976068817790849116185702187460703920041121012738663425845845123645938488104904988917124685739269622180648113410347799910285334504336352935599469991079748386073093832224185655436504976494583857095754758924181079549377643168962607343645891301527446565211457861415577099210493343713276548550207819757756130190263162731243972242674146601694043536211266476206689557181471499791222039059360453171295309555401228551081121210265729697565469723178282753589325263383311106965765815561173594867954759424190295582012445750907537337046035362261549710395443112933407783239085701809046135796288485527163402699650631291909942696959662255894979756287212877571985424196734753015874634707330507378457961453545425206442308782408414080784627967368738878895852044709279081010712119877987278359242339335575561937132499795938760984147798982138182650343224013063857454488549358970704862514278724296521006566497870701568388386453995903650801711143641042662786967241419983265473341112848793309343958086678907543407020267937847743455352656651292901343372346289780107820115522188723937312016093709704068632553677092619190039894188411459261537011666865895636731505221633041077984886772114941600466211065860524850410795479483814251404996368249707396894144246667174873674631685170456357754242310515058098647646417391062874599047379248881072743081426295248909319854957628983241719089619983841001815466443780823753328402254416041489599319087300847247285574881837697581895347939088019845806289421123611333546325400404665357173166732386520784503080166195770809027132411891654620198070895546091872385437261138749662997666582523147148188003237950038066701185989421959948218404892260458854876888023375940142157915429528712356822719394165950006243911835934267816404835416238496792420808770996375733873397271385700510172163901028140061996402955555109205148237278889395862250635820057623558604606700333545148883088032069907961231844923797333900331150588294838020687671024091648595888839443246563446675746335849532241416518803282548820899182410294068318220651171221056358109508052676082430037550648338281503658350774394016308024374809798482956648727702134170055891139662180093523043539548882559026670900065711885335952330130700876190428286557679076216907339408560706158893619301348780259524996703159143624421997785198300437984441454865516590828204141139376731810408771959657893608900600929857187848245431621802453861168378585862345107828491821691458643309724767711314959030827346185247892215957636176194158034130313191841607759441012157439417745313000107950564422525109306737523223688543242791213530557592621003112211862038297502753817842541731173375517119681652409284367663014028433123610329234523189183702230344454974141886397398650837286068616943625131655980642940415960955828152794744894079600670401560663542330566088822410924622558187358804282793469664206274112459752152202761318262096736092737034186306804296209480151901121564632335461994960497408344435453142115006726825166877950667254182169648683330823372445854924129216731909818022915171702763953907659608450159458745976073782236371820491172490303721728475214768189382828585241866401407091409917788371395692161707697901006019230526629784219510099218401232206291400604821781949015619479026466313128750290832444837155466248494038615248535327366354838102400072695037536724813331564958131952983295824894569947015409838635883751052744503875423741635053454843905912980101603370240650914196544064089309928745635036122491584860237513287337313061777643833491141679742795635358264326565093438974387697125404890995439761030944701223017049596779161345460240920721494649710448748038255096475579233784085015704696540926099375292975065756324454786401781820868997603550120460528987523722840965641540104304874662760719959290035181390822646562780069174993818897575504124552628118769537357505250127280159222927782677371946137192165164001807111032606654657645725683990411126551032698984776200494525732076336611879466854680756555778816168336505980479975289388593446218272748276975735348116703851100088120600268451219316134987292279735435145251620662644675504351300995887599865911443487330276057832738606108196032567833536252139853721463271371437336685259428978409279847787866474664495788358966808204514776727190703126288077107717808759446592879491058281275131784511939021920436217399927104174817473553005514968071374613766826102458229788902686407062087169184080590668402107117975507316360971232104299798331921659946411876739047383582397271020669138686758222340768371402512878602433601375456956121012111866856952757609838762420131806009730015109487704186475014603471909560016445913258160110887003424095108600659668246618613700340454030565015603210896111956432794011332320624412968527189733900293043875268264132523728118187341837726683170798223668198492551731114048429226360049729836646471747032035892511190314552637820369748273764447465796347034362774521095560749209997068596631083188119705267540760841852099074526412683090143476734298550655555049583671068719038492443885017162418959241597064389551791976124801051183266210839518091919316864715007622854915463321002949231384348040570977701398274451934839221971306082370165463372568013935034810121226605114976878294628586232064347412112626633527821577473245248312413542866044140191905637144561933616734099663782714960097805768754169534454405994793961814891494772883934449386237854457107150266682904961403798499699799041773145349852052515468029679746264819668702286164231214776292412429658312763661501321599568755630321383495785041950236693928204408381491115068656842809603044852969738253800241726769870945805588238766750880469991238113646498178032327138862753999814306474612404775417177869633386139656178859648317563519023653894286098798132431059641075020220490603935987091595477942138098641791325093915143022918235919452911502943449313412362151981821583120320294860039402766901266322070662570651654600527475224010199238734690299750611631661928185097677922609310051354456493611645965660284911284552622478572687470611594626032730492603873190984272702230227936371756711926858364718578151551335203402009425573257024135674979298326066168923747723790923156448369939822190622395983512927748740492188486514861800676468364747663490435468522704418150329473466880598025997045147190867269754209092714637247939872429080014659603061266441660222860405072133181508294609888507098056622798154998927924314053239903486173808021493341026331550511037223388751481620439881629614499371184147306543972563580373206053741937671572155162520262879124347517695662745040518338716088598437046467204976925718626306817461111789650712733894134312640042190022842688463221924960269928537680961589319489023042583390128608529021358552535228729369277257311248398058709622089306846646263634164743178986700047406156685763785710758427494742964857966762548769795941069449268116576569257910637391280917433293427660082347445122646817244791345411283289744575514650786956589905282466534990938715111169679515364328261511982789866889710931016959104178450248828735231923844862422636297349757684392822631120200047132187201701783710975756685537139382475853381189805680552456175892532901241044606138626252972014495518845924861076157532019523792106931822465517728586422660477869383984421519139188494771204012480322261461711385947975656859117457472444182755643667550318617371053128406159154882124971937173021267439200820411175498546836398413567746088381673386741710047033045122372699632967533503556837425593278850528484397099534151765903293840285069219964260910899068429037128452934549490793498403703950159436563446313995129824581333531389648303954685377742386758238799595073127916663391213576229300823813749950880424143677063411867945790202225251977023599544884292304632875492349672208730074226185326239441584686508261531865605778576997292533518074404638289730436121312487416649557732058303198526492284003382122961982940003572188960922276076892173732137561281714012789476808601846173476133583047799555570110846589918465264716029062432682309721379199995026002007677928428128010218904655036864494068516374694740097967052287174665334653476683285299305839175291925684229461333033502992661474903553099705929443017566334383432230441543437034764664049273950265810912648824151780638495584732129259848639143378040535637602806068612781688892152483564543619165845905112065370194484792425462055879015583333543255865910183915327556343253047913740702466588858551732641557851082711621409191150201876161758170251311700794414086348631483190552961554113186777476030955399998608079384374976227303703716974916229200218300013533918129991829604023592948162240375734996478981565262268246922466182266003346563155444069190919446133592294764761753098401445696494985417874172123136077955700462315757407016476128273409638979769774019876160194157601529109109253122761838347867951852419370607979165590705751518051295428310185359173186365292029130842057807392675741156313456410600481485906597772775589233973047601761186109466683938317051367676598060864546532753844171933248210350034614387006425749998217425218212189204246983459694601714541080967173547847902896490057093695658507360279962669616846431118237198194995401755550793724878019693376504513474123702327858171705272875406768086778657331919180654146507023469304107602604380764983984187762433538838135818313963322978304519273542000124434770143914102028058351376152486834654009224148555589073720292194609496783093804725225427153971564461393207175620510574794738255630340449984090551893122525815170644691359945494107897660528393799502191260261204772051458836877277420393934927466174231696612724488814202863914202278124193533297421694509467954520673956977382806280091534195572092962087021781623595731539858049405991309645978436746168803327624713133218716363946718093667473440335755526219772548442024999633931748616681168580024161019357181587639139371591531076342504338406774911006239888597954611355539755839653053924251133851519729571507256719493159144543886748094127009297425772211701976780777554115314644415888813546404610034367546339543813657379417552022983704633781240452763115958787429154142041620662489126162385007770392863484726233343506441746226554888964328960847169212331084463333505337147173330331901721153077481815975318740320652065466630383402472404436419295851566207720195731935194885916298153300551052799525400109233465679859706454051429106571050430262847937593593880541200846812071657259589682779436299311192290462874989338151616124180754183887659727170003193889665336565273596570472983705556510026802792385167950336520665309178435468005322211811784568324368004432665902546285945991038547579652091234389503251059583028451450194530989232771984892807878455467496436275646169662618364866620367155784981383986825287619563857360852041933202576410865853082078346093735426744174587917981650977606748034235879437881661119989595666794464838215477158445223575130963086132598323044566468192097250293449035786589888840520552887864065938982709410986621527371617524492691264722285626744317906706605132503314572067834404637951426017333495920626461812732873779400130153571573662376126852832110391120166194811558779550403940865122360419497579357189797408115563734672074274241577377404441091238485558451967364835048886830993138982344212485495620233919819006035489851804406713580331408724132658155808563355292356505562434062217386358710059109166690201106008519210620615217298898708361337945882584198929728135937846386408146209732157488764585454529056485693476254092899106691922560246425452910014982009451475388690585078215749901642383258266123330308423601713313301974026436592810516974600611297413499543611415077890155231616362758211607345219385511127230089600339937108736340084744585828116929172840147159292712719738225355396398764592473836932611280374299401387580817617506936047380882591607654996602854941583979429130441789374134981285129943317567582440767341769510242443311732080541981225031554764825787016508657667023097852712134326096082828084722273551612798021794324863898906029251915448088529449249132385753214896412844565058336515343983943537063223690868184748916340829302685671978579660416012152288340986449503006136379847527887901953417743484446727480043634827618082339916100874051122351659677445178308192167027512514354946996687266873708278491919916820259037114776598260684642971682887151964827056579379456630484995342582827100202874575142531348788698880801239182527547486293592025797500281821975100994629178378511034667160915765076894240576434882324541062551714557685235574081545523266017767432094790156452054668753256510525147976320111226602675248332139550899312683263493013685192428403094260238790532320478767938488157817991207588399895118242016254924399375292502926833808912965124723281499026982302378886144353189879921507200178726947659321610518524050768636489123517516719370750720017872694765932161051852405076863648912351751671937075072001787269476593216105185240507686364891235175167193707377421624358856294062359477043120052660625697625096842178121148882988002661604405922232933162417612290874337902228780456170135772375061952160342686280629053786496887139338571256241696407932447583136988591827299927578294929575130482504366602853237140205496447338073824577555825709270075915358213622487873951980644753650922833873219737894509894881222431666501069873961667298992096442059681756961923183986619179340847425786815461594145893864060229613295003812003838976745020863385578266798810656903699908156782778516378293459936194336698065297922152215366628883994026803862183878413895499792007228937116950775706172400234487289868380888946932582186337823435691207402895687188566870960612738621934987326322409606596069917602005453603816589660214387177128755309837099020713308471230391797557448381005068328095118932927219123165494090664021456835987446321626557573979283730870286061293977236838581491993925841574254914633515482041412850525611641438473862157948502590959169401670192222715205159244638478673684403410197602254850585962037452021034019586721608171270192646070460795992871312107480351188250682335304496981265520956708088454194102253519913136835291159722281977965191751091412574906675271987992843990372741064588671698118350910120568349817677310095484699100664217037510129640279526680792620134649082657083731273088770349853816883018041591073508780278978144452516540770812748847379655033182989360261051517090092011022207100166947994860649884160992557782103329254222023824316169379455244507711661278195720289949059237178763071379162077328051900435950630278372052428607168631975683199449535965461758237933195492218355714063821726217011899062436301646834987994306732489748402990062675636866393449866870295746329559276358227417390476736646832709872540082565827407937301342125015787224693593360232027880213344754711692547244278823478857202047848109668249573259465069381839328994408562932954845234695473247072095768155000313628681830587359766552445629233370980039202446539708198088097516775900082945233933825387379751663668484819906191718923053029327528205228873899777985775746443306673842846683423819777822394151522436389874249517010656678530267666437085462406145075109823826508232921923116946593605521624370127430023949246000846441913713453739088171054329719962592178595836890022753546934419927056354499446464846356921147395454234209303509561912596294276033231402838156419581239921684357059261155218643672939081140498842995401350304582616685615119192470424806777874883871318987189673826192473974908922169656489981576717042890174496662059680086819909195664839871279960006066009833665085013172670506678073810536253324043615610980110847675549487749423658516371946527932849799057701845104909170153356861363244389487965903436759034956002166426558152444392827872271735945948307893872024847342032229005213360684605312929409749759889320134905015546639978806999170087371588917595677689472706181150301964728913257678481619091938845977305288817391379634191013912282881868957666915817506640190664257591185763887548293436299211719127105497738537301557783810188444186065783059241045272431966922764394688190230293660368939291435279006783454920522889611788605187540831049180891775926096257118288327086436346727818162747255714850253575093560194453370570429727931651832436970736387485609272821695707559352179828293176304039885438950572501794655341196643840611832817122580580931386536690163234155042355394880397710071250704105678774162025859908400717682098941448674622992276289202550858081621731508389755388405349427919056734487660483097079108665922529310175974785382557147194645296290878451956517409594789439633768568878413363340735390727437663722052802244591605345737540661837169580524217180032186022858375322597888350188042317887568940231975197437444613352597457897400554662442432497593440495376268236401505734726953980110100256582513119575389158493821251296799677253621276460763910672269184411105916667182317481206619477228053502579386189871073293114319621955835900757325454926544053448587623799704869639821290623046526023715456974639821850402406160647212247386285369145422758281589303257867192003815231307030123145001620383558559708463628872856866182958803815141259792427122280065807217537599560975302816813243190882675811213978645897799156707712334130061405072073787477542271334777231879138778060411602833892807322946298610943899480426877630904138282008249327643784456946668559691350972809296560296837842483190637664897589402297476523373707075902957322967641074447790285422057108331864160628348328403937671338148094153081003836346209867409231416257725926016424131076838385360967743938964538812198718470878357602846575850066264301318356377598343942325631956738892178647425115391464830610561761852266148498621173529930039419626797835115432471979210099902359950101850452263362136629541758790411552911630059509298870937205111995320951919761191111785656856314582374252733634874426217894373425559443882721099552583440480781533630123181725047611209858621391195038127685768422270602288085792280227899270135450268982898128670846948085869077368731048824135209253377992815178280722473043295605706622345618996569294079904301031800558838515495600371015362883393296308388611837572513442929623743625690286239908180896674784072154164821536466985251118356093769538838247792682054035562293103398234617217749928761143107112618698176716510102132817484322686049289996213744264891787470800521778991459793683257690825447049955736546073833295445503760545561693846299352695559825481436952274513515963501284438165762387821902834477841943484916754332208988657251072163801257455920500626138323533310017463563269678829979522312213359229559877714784256215281966009582480397960741880686481462221846735023846499620948290023721674715130176161834866485690095804452712924136107744855016454016588210094695318516709496532028368556343942755258676230939902626468802521002348398810810313959156722167521036403116827698020447084682751021600765291285961812328923919989837615465401528847640238956400800911170777168663258471518886521341810096309789246814277767444249098481946207209911860617837882725606027748920250775654960922415372184898191399949304356168693621596429177109525695097069900632310061085648555448231768169491892033538259383979779552017806002615045384660223480584280668080054097272424887098899181403017210837408519716844655506868668259576213176185347414437764098116897462020371211318615031805348163709928051005793939581839605381572799053173564620472564675646573375232496044286662754228334119477101158614822513290574723369645459350778630281397035026933558672025420653201911364568427852227113049930847401550832055345022071115182925037824584151595423857290920559093155527093715730436507139197066270720836605065359257807538799662427829626027190863678584203426179427292783872074227039258647899698885201728543732963891417985649549871231317421078111745847834714810113022006691881171390633223774639144278713501339101361465475823547313216387797859422925909287326603980617051451051893526138463564900758234863291520258655103110341381404910157351617886075764396461883410175654441487477439695871259318206839292181168088355971272265371195267463913547288909010252777742990668168005319870623247556963164794199431877289989589073717447913822106916830314430210883271873693722363715982485112777376585439522066498763027698123461345369762104739754844398066496855150018242872413962930020784239040770171753087400621103886981275161331107671042265609534206562796480309195917122225686050866069749195871952851172018630145722311125595805803005959045178016209156003392715813561939615245058294094238306752231048760275683319313953706159405690082546716340768851873806202839376494141695224789764482741592439389073858703368311064748295916563631940759787977389368568253656567981194055582946890756209748639705158628061604955380199298790107269885264068694896100332327284203406188454212897943218868970727382736277850137270114963870884664078607942655552555485664825367262388553019570089909441814119681927822521474367302375772647906302136270092943519353752024482465044502817747353031305587840428905295653616695575746030446840020130258347285787860347964296622856338390938504059599633820520131345977594954959152824913675826557737086309853431031656991864774935235587698561676402569436794965082659516493618563906776134086344949610923085281595759473244692997843787506957796523406627034893439922003933142022159640475307987724854719289903190331136067538740992626587614582952454629627447825306071370861009325656109106290159370323457846510942541565848633675971714103682469068213645950225938235868980342052145842415621097712594198860517418460981052180233091349159305532364021180135399382739076096018812708570022161499420235228530119785151482540926695185656765341040444548548817766062915333423935588304097708038262943189443850770239040847501710409323686830979044978493238921559850021435870077134287158470069302471676631228530283911202961584833228762187312702544027509886977752418671972580398456783452867233726268194259137689223732798696369957194750828057492990801609296385648875774366813059933003010651656716864331160038178433180947698249242660826392564722108563028212285843591291142036032720601825232379462931092541025124541700516649174969785017658680012863254457378725293267127745162433436012734039785930222159961775173614866679396765633221951493429837679037493082517016185284933834424250418323030264100557818831854428936408740320396600889234387100234092685238849673228445668736570423431566989381131170854980556334241109039029402069878836686500964163691705281565858356477475504883191164843064598996632703398001097062714315487174370481121700620918608416245963219627581891687594715082363689276171748516314584518070543563797072327895745053875844710075645587473724567162607587558263162416383017589481237273465832842643349842119906790332769950618788667306344903282783764859091686806539844039317138256966595923657348223568760950460020695736736953943537344892878945414299449242296541992068707171799082027511232288302063740933243082840768023659962230745072395482913251001462315228385669963646481619930610803501193409855128773081595450154979098326100700084351632209140971316683905093077706782579384891592132099286598075166477627404210228706958031691019769066584929411630144904175524152840798558419204594222472240857954524899661499631295674599317874497834135019747600248558309355697881536973136321445251140829284181280450249199295984561729788649836529671737406535027575784653418707842130980573575850987089232183386027668096878674458767393704250610529455934480000337948441186910343848981992721780045698408825618002774024697155696345353705817713249665431707954879525776642112068569434074073694165211045301707775144950296642015085673418561330879369079908598888195417742618803144141748693529301286286876979634971644124217738001969097486279960894609364253067910417459357128319040298311315505930386112061927540034742996012976984567285680075747868256852655888055044650282472340621226723098765095246795551167576075518973671081866487339135554730387177148259924982090655636246368887442816354759738020092703372797235756205852019488731175736415208568879983962553950672045765637086678684961673992899051663954734806468841632161269623214043004303497879376589552559126127334944313749318755851522035048877154206128323215542501036958420117770605811310857406721768844739241215189067429767995284346046208510422989295590153886171777859625965902453747996448057375425903395571736901793975160019987583699094035346020060061145708129727286492441555885975024274901019975278569583453344943250025780204344440868289075077439617367055383761578786385387000953573335902594668119751237389838726653687955430018415044807205276494457025799468680349949294168674710474523631365047115269827810552059962650022454407342871399194980253833385058853936499417336369643189980369532114631746171702038807086634906478634042245846913559042424514028142597209433680394042646957622035197605253746691968646840574852273222141126346820073268099128359680433712489865124847133386599958155703624128431192371380520698554630522396286001693260924761875232125700995941645450175979130483158522690092440553118658153197845931405135496797501971591305636407967874274388697431812159633202424536950908108540107486745322336694887417447584560189776395844902174934597104770315419794721755903104895515071303375092264289474366150114617112854048983628782321775540335581513089008600231119089283171979461527339639814755795610481654721822820928241262244086617316118295314627011962136619959410879358356432093296418935628950752183416094956286605476082023394390369382944107069073784215937110084355080993495125848055614260279488811735778231410921563097755633435689280906240147043040680967454142850010531291101440719318106005561952937599440981612645437443677397892845582361680657305686818893290555248377738869788338482126900338552557729632948503625724161794560688062505674398343584068858652798471320568203326801584011861225371072994592972198314039824954643013641412093794464784632967308041240315791671468107172154657975950843790654639268944164367020267173333214286872793000675256808959472460540077392143662377470366937064798928068343630666235735491883630674089690534541962549218595948296352991442506812421957849397624936269976684320117178309478976453428215921105441925395673890680258742952347024625362720586244529916142578749920154783492516043423853492438434103038072737707765701474373435807984511214989021387726113074931251848497128991745909500393219062568077239325454554691767350021142782515915371392247521510261957518125558991922377560556251862577787152040242356430080154406473786864717745485337568513303957730505542984102745208488245638018117432441150886669417202922513871405259332921890393023484952178373235334465326269377747325041092055082762701360107626880573492834106150143211791258410932812267491152949691944140579833540382007949205272620731238583327858875647790567211041654416614707612883610006243841305310501400810107987555773152250424635872420813465170781968132664730526526687009753901023548400543191030305850507328485666218923073610160979873010960457878627259697182149777459319121724208552038322309774373362726009107917085415906540069540475769464526935273895890894656609355321694271294261140189336817558212336609288093686836108412959313689766825463416180797337993114349199450619767414038367395910433250837896097654632163442968447504718087753879660115946910584698569346315467151967310540189434725327351012330555664924462530897985525988963444453829414488382570967123605338919829313649034991332122842196608736575713694328636338387496569415447710706138034367393954329945548894604432862117042281029757649010846130362580988520444565288925386561835543746690507579482110698111609436227278171946884422390136435558225224330140937115484011366213884108247980900542972492869087707863943383569758089134485548375376777196589593658751543275029493401163628628419330604817109392399879190088420348729434372149461239701703430337079169831624576605061362459054918358805245203073129842425880187096078491816358337632141776552648466086267449477751311633746098532615677168216013147819044560577089203080185215408812688822461085420684333127975848092195444438896671131444617893147412936651281987902593291945652736873448363988933899843612116806898657975674885165488863376900353752919877576930810573551739514437952727038004470490072857309252626316730990740006849045997587871320935334814799807297803068592527492154032508062062967936802909636571196554547498326575576094672472292408920613710562170097933992793206656709458921208390498460475864801144552327813602814534457954387336599185402955060100187896258232064467145096398089199675661465982370141287366468803859403266522240875088605288410671979991408544870072930220172202603047863807108861726314153139237489947781917810407754525553693605459036378161928639420022669648039758682263453758128535507962060646362022763410015625391199463257867883608702524372526283033010210448943262262753220736676529109162819988871916167866976986172106895009023640592917572185945847630689212470436502753632835065004334618318970305082839153585060525172234422933189629437257761631522268739500581359156379950090704572007260968988373875369824262186314951213988357167356388063005629032547514519966181726778207896272799165637748029910225094724409419801468690188625285100423366590664307650167100236787351898041750864760380556088271198478863911696605712575811161433220316239861953996081064489115129903832189244967115181985798502770446978518416280732953187522170737542780783674506060843688776930498302304143646891398370082693964060694562881641695291665443739084757281969614641195715806636881312484878296005192365381669691441316437821280803774582231914250665372731866015855576310005458819146086341512013406605686183053991092842220972227727666420070998758231590762943912951563496720838098972472304203873278350860147411604828520420074395960779396766574545741573438143762929561095311584820920001996834922274622233203492297879772093259373458931853036322002185233292266043263277738699295254400374606548044762949827240422914656005290459866149053053303411842327747134752876324177468600510351968025950489335416177387650238931910840665213804667466529643577196052289272879058233362671718010478707415097865327441555228155097901531432569914109132995250276991641218479890353417341802888078594370474700374687166980729136987810519134823174319971817569732471693411240421932383237581583407505032512102423272159997622559536081716396595545921520062634938327793871745098766955342878789774664436385517065026504485771475878951663905261261876717387540459387759244936972468702219846805151918260343414635153375173543983465840366500780082513376195811125396059589417188047217874636046685077559560876646149799759072572546693095018122660597563383204512084638644649947755674711048825818624518114821602417311351155337639418016198608293258482850297215641249354354937014722183714909313527465161404229884034725873584804710030497103678619969039664003189027014102187471439739304796671271469674524858219615904435885750474711610835582761860115988679925232776700779134880627067843058230376844322408372855777585082162732677755215753854931391889443311370971879765493099063043708381210797273160414688741044273294030727774363782884423977594872346291732896432364895042303033952547723285292251820978632941279227761069976483964461549803039103687476367007442072013486804209783446567078085008512489260912708157237896817953897147166531635417927413249374555104906770883053829104660986180133549273647157882317517022952925574767294380718432352827893878730585071721698784087093608489127582967318450352330091008245008946000168372896985534781567708986066370243799181871271374835942442963643209472757271104180443346013051070221778247291988409544429155924729679314766416864679909456377046036998870079612857346705087176357992672641907758648297958015096149717986439323118705902309745168343571252335874425716502513078384396781248954102878996867215558351818219767292372675088271913259289045705392169962315734135981016260634384197411159559871219485570791540409912608431534494729361825971466635209403043017943612630797077809538770794982864536667632635334220689453430306269748572960188084656490209749955256673401338028230788629806818705205412520401199904304289199124015463064896075523480019294548752880557065055452354879178955987440250913007416419180939972946822103570189811867672154904495028446259968376782516887270792953349935513985117238049116955666124418804935182119542314545793295497329011549763279700425725292885167605567069578881891666892649627826606842817888551356822010598648644268973104042064203886202141593133433565060797764837286117478541013181953882096326373978186750156702010351613827622355499078167081762580063265190907230973113261264539480612746157639746972903819915758063074587538517334833468607608896462270121404016579559790815513643179269714327811600039509295305301566405385440144681956741689143950050601298995325206242564025699973540563356851170626312937882096557630557832675616162922170394518589959392779546333735205016889846436488820731461399285601576461906088270052183882944905283501856406504336417535013934985705100635004423277553280516632501555360016855860632161801678822889859277739807082344301218764982988219507648793745273249775716467943768259786538077709093158268698932185675410221811370662891505071916924055717515372979854679547716944046087285834020071682558785035025806898027943094618467258018625571769991436669256776624788825636710239050892975798248952227094184674434146644119119762486308867522691737956084643416367635588308512954865371125074490373228827199257271519966000216669389560503827951906623371071029645261125354820180816234059316123833832787215450909054427198032006442253236001249893448436367593719142322778515962657684525307584855373583084165152477784998355609967914529055371289933804173580332233138043482601916191028053475986623854151203895606113270055649668928131675551297996763366535540470907939888668953068578101733026605688536895602118077216225892191992431173048925224971255312282117588225282650923582291225204138370082863879599408753314229202553788319259017888175978943077271131604891567850867837388122362887558552661186573367446022611736332880225562068614958467226605377935752555836093409891638296365998007307845001369945882120519742716629518893636617887245193879883914985074636701161462355909180891464878247698323775978709634559315457068005528207062946431076384817183641242844883222416345306417776492806003167897001913734414599529081813008273571202445417814606123726714401875382252745351515524245007907975368799187115671028453031873265631128191873581420504230774629722540369635233574830656204856108640934273833183346343273512715926423939004912797302888378346374423604644196581584384053191082903232393915006370525377701065942921907663931808108787655759690707840731732397323550634413585567460029281228194482626386918581367216041395463318790725616930815409969437600214768482366689595833864458433913973419577395445894737996499396501973180187582154388185804924401538657071887678789060589434397057243968067662330777502154247770823779044126904120760661717514583290656812401908880652059214459722368760226173024555463740562074808139937746700941252221532734488417063681524435825611869662613638340292866449700660379967501793763167639180694376784338621490896235618201056406140123778850988356670847311437168889139426847948538764665098411719543370289215848350725860197651524604154356067627464117810379580551105852750942447296557129458895445020468225672010620986206771821667486885596778133367304894138883039656612191893305871404778455132876728030143220992705290210617713921277375905261246803578323361223167245131430183282789876952990465506988485033434839833599227416481068335963179705040480171635758116961108988752650503945545081890457820333988805527336174058906607625678876023448996558182195071306798279843747014713056703678040027908882626096875179843306216168364975773394896181344188241688650228996780816279756256922749808740208876881035943692992039572656130506812883876144119591862400223644524800394799942440582531726824651352094895966587269366348840150992837598464647534240305615590651054491691242186078781176800389930760906904835067279512140300340459488292084535672716329501200711214683765449414070692596214332856787457468380185393045462431369855987326420707337362095268253300224659565421102188316355553221022325835419869926664913531929631878234901491587001477499219108946501280172618658424119957747844638088817923589672365496158227535354996984130293949320567962137577698966542096156183935754851061018736631402673250619956581438409588435459271042752474485532015362900288790273637151170976115751044744485750023258581485607889851283509556122124413532387816233318165611929257620999185168792428624230801705860076558534645099212221386291932006291667104053444132530994050314842016003289992319103284017248036032641173958773736439315805475634461166744219590534169466563680049974608917632616393699726800567119190081116460002960099906297666495080108508005158670385819718130552317324630173528769303497898533046076126706915198052104187921693861999113136828410258438748308631022755665240828141236888951950624472937522403669031592181864323402691929323768871517708076749523898992149245741762991858043348629606089363110625810014138063060123149436279306873326876877147445496118241966037173011732267211548894144715807643463644764575907033408588793793885511751946742353404539412252406457071214465904665673480924261538841750263649967640397964039506453603305846710659160869493642767063841875250763968961560317311929268633832386744633518113308307439130354337227907141030795282271658841103444348578821809080282082955442812200380195266021863595246105666063149576127025158230333522494707890466105078851861326007087053125210092418814033311098034325447218753564339432204046595402692850448855646142510526547958472166305729945635788271560772802148217504478700112477936570705673098921138721930592905808649783986319434663257922428340202752079620107667460469407170560953513333993760749271301176506022224078447808214938396398812005477893800566578035990431148710163727703521449472844806598021024629628637432933375005342109840248586097715946034626507089275768480320183619054988522892809537682131515043558251720372860169596095876425139501382209840496122262422817340434028089399726225773933036610298681992213377579163735603453780755018132559615693550103283299423849974751524338100115195012131780501387964656284915433248919433718326947019268167675960615918788976365260320865126585226424524119959018981878845082876944376766318492238487992413740076722940680731052803953540236603520998420550430592120388275565593048083911659730624501772525278790798854685084258555173838383385199434428891591225364411866964417124240013588796072191061349423083302978966344308827110746700052362997432610231802714226622261875057254396907738147426352215524483240080437569669907102947264051780301516189102680092635876981841801303452664710551995073160643267550404874531772816479749849316816351888113254614996403183140120849999754505654405665114835838717438107104444681995736346286893002713717643069604147832273275678903050809576914347830867035401616202818491144123200843999282131818484332288134255124888668654485270842304284009883138554901003794026484476236363753646511055008102940660991524814792631730877440642070953919991675563931676247589083224270729482954432815122952903164750609810715170949321661681302220084899907335192848409001433236988693791759977923872805644858636356047169644366020445259704868221514419781591232274757877216398657527609840899889373777508937404065845611540453448898263567944962864224707161326587499595583440080244940052564753112758294582455523833993886160216709540903950962298436975360579443816778281566351717190156086785010229710669378772149098891936845438672597300797493811034294535811892130291048572049967356221167333663500764326274058829544861575696143204789633059172525002965595468048765362628154975767658027787559023678734816250424531570274183539064997237143086239536428333798525880936563580878758721141673582000237858579171465416121120260342725573842215518015874630577677939529367891253297770050822625008193741645114168473736572522677789087457996823734527732736062994642924169967155086229280608031678771501902041616630204935075883776906618674616296470167705634418308967626618874403297051778814524340125122267941041217761721828885081597216420838479333398295669940349593790728203397800879604970137807029401457061832275296034853028371922261005939564499124150927787546136682314612894699816725882471189854476146641359747240400116726464033832999040150263527121857991381875183821542253047992153889028461653792947236379633347931270846642722737043541076853791213190343311924506345207673334380916812903926710929875717714802822273307085859022591392905258974002437571021699553265761333518518766386027619970039805239305274289337090169102367520745177016964047237538638287654319043029035798193044682863204543018914216075051699668512336445188313943158140465206850355976752840620968648400146329880263832549562721325827573448535583000222551331859622886497724944819666415281904070287971095056777558383647075089292801299214655089846527007269657168897401324328795719821723119028109909224942106911519427044773587520266021778729973938043291783216346721288728433697903169348592455772175986332169229101312996493456569456831267284809584292509355156153586820337367220136128517195799179067888794897787415579507858280400519879514379310240973513754244522910665873007865462514188208080730719268983913504925377543744202657016514854903903784915335783523919509184229410079581794626130462168818441217468062207228710462514938764917833389258535941543991358005859024298540855725044894291031130668410610525215294364058942822561951509029885349670118520896464332041879321533366847500909379474586244050094419795259305808470573044171422807785657037127947580934562908770479883469716932355169605915512903946546491946976956580104477212211529717885424206301449359990364704881686963945459873956649568446800827974064859397628886154206344959520477876479602222481404518711220576212828951209642426243976910777918759891509169674884969014041781462488218992047215397897010041004451916374635484937776724048963056176085749019066419920856498824416659259136411497972110570920048346356219112592053159495207728572853502277178691134317095074741774046112597710544066392888757183933236000244502603875999517421359497976494040004144093986809319328642332313807310726052347022269955029753364133333637683830769912223911477705585997784287425696452597304589798916184400911875473810469804380559517006296303294337501124376916592072295301512543213940544337789162781914062155168208847363453419799988795161172610284106323369853456622714089825020691286704441169025820479657650680608338935449086211438738256599464349788032327217582926945169986312673587510954845587846314075971720196243370852199677928830820417083628218867104294024260058440043773587533107041888142219209246071491335029636905846644883203194741017346112878673517942209414546604185340301551815562321431657473326661079898031090681700826887321019364595617858517345054728589800787287211541725674024419790288432253154101921401350912386711103232137314594051156147067212895932638196758037690723130321615824730407013885893346366335976771547070197732495488145171495615889159727040316443495121859747041467171509731132947384808502107073004895212374842154038998185951322490144185729193570943752415921554569296311501449384703394893076243553834235439507857917705875887328687263613772313179576318811917493997364582955995596168471447844151898543077414559430091627277706400678452622218860633810672484726902440264267413390721935300584244062259464253948368565478450534349052967430589748649564389293525069687282557307388653479795697379637394163125122113572366124201402646831987523491375325919651580619387266619391605104935926527132169220962246396992453394941681487697594502275693160173729782522593211392279726446990787079721129270100728931641413289755405112986071300454244972199825592301733559399196662588628489028016102977414728147217996074304686368394358376209663705921780035815169912947673154832624347225298003800959587555545136352485292336603666133452157849202685061519492034529021461785142032423310422848635208968797421845400387349417283201176273782264796397846777136587351119302070722256003750749407810394633895199845441663143229731608084404982813543030383363163531454052991483164256012510682085656900160302972916584678918322105869948910040780107692477825728067218658664493575923770660199972606595255433273364250389479833660143199307308480934516150880480764636667529086671693620624928739814887990436533387163969116727369702731265374284086097348697293255278854199301904168428232139585796602487375406543926084953186341346946867892358336068033944557618564870113259642775582026319256809971589448934540735451669323844921499118554933828244577076688230525469796128224404159966892371592950939237321195478945074080677444890038062443457522461155572389422683859305152775497654543180834902387291984674869316260887179215124829247615893514149141589042351050735349679694874918633443047936252036510556721569888239520349805230153122385212513261664494737046124818609901439565463727101755621611221104722479265060881879218785645647702019187081740982742638851785178231952934190481931571564040017826008047464154536425857968822131471202195068707370393121533322394296471014338817639918115074215554226048219902450082052031551588031076765688121985750384512044736027969238848943985040776693919191780385131179046372645787280056649950159576253027673424749035577873032069466976206793710953140878746609071909005478715022757386156228403119997936014817401814072685593464247081865137267612797342776412408940702412250575912833204487675083824823354900622431962572928264805660096775092853257303888341824250441019443837490829289077044151815134327901263186270934410280583331971839380845112478775779052879961424809685375809766676370156948434874317475748991463889163350433836273988511029559099726899559047151129179455591269835942930673857430486989898559443261989642534349217117176194986881381153736011925283763481221877710943925932205737095626981646452645930525413081768047684917996709459097562709945746416687312998517771315588620765543315102630236084922353201840024644269498222009388561981417423529421101204488878651762047723100723557737117569645402677378698782932384884658685482430725132245997181951763782065167701734963907291197323152110450838896369003436345649771388418056802984140532309783687878873323574584371677859623193118212996544264227460331165621899580738570914074817090777072060125825537255988182554000170967909097413385517915050346241362796294337527980392121612449422857348055409299617422186755267066387154019716495925804198284572723394358727384912980625052299082304144179642018632393359756408562647211409871027568423284710544204769273722795869343255162372870613062489483176830059503162735392722215559603719126092705632090016884464223997459907628360386145156011467908671952274422534153735630436368076582092944816815756244075835420944504148183694007247871993716080747143704805272412272057620014826556738425852761520422575616775663448908355159040347559705527811498513025087412165561605854272923028993316547354990791561217866471781343392824994159050140923632016984086805996772364631180032309172314490659601839443357324679947213636671430933226872592276995978663421984860476403833121515982463348157538913621374705062677609493915654344496650307157560190525614934341239865008633497687725820142616035876421886575309174051824174917841215303222383004188066393854558891787620068788140487669276059762638850841876717239068821513753446907420527968759386296574986544177629425187030091149613528443892051450071551108730946649594990708997930523401295734938668817859272442308152159066064996075502723760812723870585121372745528886177354454495938515895687751951802687798564825202662409444861882867270542074750435367998458468021181612451191791640838822097788641827568105850767756572864848283603702493287158198060435558799803757574763317200005449598498725166885657063033528760680930815901814105937213785607881031512925317504110509609751654253710308551748548992807927921650826702477524637499837850472341148722403887877968562165891841573565939687030319350750298138289529968303573043060712075466299805847951077322904191430681628702950900718814134214582841561163276458979779431852446703335722015183008067730098434281459855594365738971990326286100716746911509026594642792375562493742351217445080312134998741021050402625411576311412306403373840230248447393613277714317783264872278720000313243799115845410732008325471765533577884197388111987830811612825334350013791097326458045675356269284834551025317569761378314436825247785430693706314325509640762249427096972762106167981630745864773136210291691319019350539173633877209593077288021138495225308523356420091475821132150814163455937327663816462099641504181427926147848561122509697441807399401218649576170877429853908394199011888587733637311313017101357779033475620443952626076779765685385041517800286220260173983153578949045444271657055964920522231883544742831119346960371194121860939647436968352163008411309212213761236193155509118775346445604293737921516689620242547168037781827463859079682073564093429943342717920802887522112543317901141491160047963896033187722047145519259305894869335049922335765207063933665786108085920057759573577060563469345760388491080506695516093810694366212875882733161322864831431471767211570461923561465003774053872176274111366017823585584517310029820778999364681776875980577196904429326564149288895061617432739545348233166639979174849840274783540535912002226094399053120707660196672743214667313250599196153749191206109264878195377790614253518922346613960953196062526178425715869924378266091617174649716347204773896131486719429482490291989419167583088892339731174155541726809475331027377979970981756504505473602276786210697540450592614388377815161792537901060640229167380269625734343046453004211042527662303055207247573930679272639371318872288012695855490424866322830702277401555280342205573172609159292751328720443377723638154660224262722795524264047906912853466474395670390153666448251186234027804025378088666113535664410691376972388236540537057203264851330711800188621777680597953218065436753210222504280004399406185181288953614073372395066311517070005713863153021329368553801848986969630285108930120217950647072487750320999483675687172470029055814569840514467469450718871737636802873473556196853175307566120156930570344309876149723068952866444156407483458808986525661664379720289586844220392181943171512756411177614756371405936864000103588026389125969238170622763716762874806283816022759410511462692288809129433027766495947249738447309337632746003710843590785997667180055868702873018322966729256651195926100594158100365089290626039997891076469310195227174464519944361699915556415641215108714382080886807522978508148022862341353184392056663971152460890481318445192314929106328154027922489378228251545768271624596117639566886461742395371586574462664399615547890516373252182578333253564458989290595192605865979867134482744782626667898419196273605935202214966815704365569041670825752744588175728116095614818572243695464750508302844307531707792355713293487611783908130291059918355226223746867115757059377490937975793819524733163226623598269569980473433440261687965475130429346162426613460747325269570311488146969164293369071948154548179082929107206942973187597197310154261993356461532836182287015155903310706146530421700668825337970132344950607141683526860988131227220540903094664606618585799991415397814484774156408225890354064490646351061543371940040138616035071455973601427862345148657347962179784675702189899513333644381929190530085773995045234934957189684612711376889575979332349533208953814539846770285124109139999624094286153561549520156418899621259300512644209686597252899418435036681880480752910597233600836548235701919868550926035004876573788295162923741832713236768658494640005967095067783453610036744259491885819559592690251239311072595121211563382415896067374800718324687784130780969382414829151895604275501754206517442088134014543607071355602676349959757596004103616096121377362182022356398010145592493601568971489793336585499186349730410349500790550971037329489219764058869953201896649335082043100488523059429848680178555656453897152963868713982393892788628313053889870441633874853236655056254302382861317683147439934461560931076538494758464893162151583588989339195673294433479039090964500201525452974223609334873774857090601864807051699125755933251820304412057338911692494979374444181721018004869527481582486075771221724138298525297670352688504213303463703205901112769270842312247374039903446761895700102591785896614704561188690554318000135741145453848091623845601939821457698015403674473093324214164727555219087739691741737350641459518460785124018137745458837629851790660942517996950365872351329115406941185580040575610780435791910515438952930178607056885781172174213915509532072119708984152215425316479193046160498117600999404341319099118921551365122611550181311073519406748964186094028486928305502211992434386630966122998376165898127473066900407133131532581930320281496745570289271198050230834294907246105491095799550789366026346984656628188055490104387898957440931415296414337769026050643640983268217633628709882627239743023005506385167528922648375095088613721983335346069848906855685902444678886336439604378182364931607506979525366177704480786285210468209326826682897220715910980081977801926495253830472463607958939173700369328966358022050659802853387029968092228675427129133869994026633577360863754047202114992733399559638671394141599506355503816227131799287614329892459586632102280507272017663282902813951362463925987940841197742421478497488792853481329226175804296953605684964163335883612464776047176630339853772671737323232435192979733423764606700725905697847782259010224718618495510870041401552763492243058506497917469994122470166700310104432762653099301528420684246859523591053096968105843118551037608085368103331709534908134883131172235937743874146218392650171560903279402818993561269449639671433207829047319166667808518255197717288006277354539915927890340107862889636611570807579263712515753212564345879767582279860562178539046344387826022476983164473091167731376986543944139748134480038182981037549505885398354291463227532912260623917829319962139869188177111184244196277187899230573504472457753831194338517932212857660352121687790114047765897677843569635136532915149309638039104754501169967587802799979553895585500590455332979356370264077033348112055967910966088046544581991175696733538179402029774208446714055476253800166579619571991262008078166820288591586248572361559940162554777079141116006764078260807710789473437289911567613068507322496315912316341975884627647288192023676271637519476695332542049089161024916483733496591727080014711527101290890296121104047246206562282096328362667088897284648491945054852414755813392377362692127662809010703960329946262725094714117691214291335397513015143177467168584029059686222170801110366607146302062064220739673674027544451115318680357371197061263214355234685554438245653255194962230924422262761618107635327121848671103874863324167078904688522332921111501979009872376674015547916753447485891162812686867360422299435607682697833173517639411375681873118531093914733161347146429574802588661209843333626447892327799217189381104902575089833295752311385116384118101924499132930087784725362736588016792732391195667737734602923116714725275438773239540964407417449308810335690168994473265062935681240746859168925465092110914231643396643496535539990522603047114871175019510860362143788792840744982527033242516917795343239338053753415428633449200572757968191874218427218858846662660281339159122650870329556297431210060847646238240612020974088585109713450244534562696748452174937951998366013595995980442105533930579946354121565926037395454813070900268161647358075309070057946985951218576692820433593133365802104393580161079082794266448782035280157498477771875366638868714692849223359797020185921637526370647072392328071177497552365362417062631546327005902663040247398045335302040939313049739713079171815148863238516035140918715172725963206039775181898773794298335489621492988306516879726173233429518602919791235420914661761858081206578509755405181262454785358714234987228245076280218555416439373557287341317707953318264106958023181267827292621724790478673313230260287901476485433580999324437234918849958599486258306760001220473363446686800302177442830895673212065731090929852126853082935352033162609612387192704749103169411516483884747974567712343355744298126844614327533710603770238115873068862889693941323630060605042899652004510603748676961364917251172141710453972369837657482509286253199176103796050507004745275198706924383079720813365107458086253398704529503657739479437519432553660014210556464148224360616467707917165851176561085923563460948549764477962116551131870096990291407315148390390899181591857833265027795395784182519705615246751810745633045708295944288915066671592976041280335474515510043994933991135740036810821452010037166333769521213375323959064451506523337907475042857815969527569618178470423817842031599241711215728175313825528990831722270803193340184997462466150686413717867935948059327285196433573688027414315869007652087234546637363983186912020965620754134887411550435179457052021920866286215704650129595131279374407246762041922665567445333444729681714873544938733848016654282642378338483175654383336174408732187921997143097193907561528997991933481684566486989431576014380286263353313618572379316723660636754943800525296713997403509940712193373758571204555949602844456404613060336222636216293412245761511654193879168481328096246952444569546212508791189353983221963789994987057551748771886105104525870912001550271811121400833033945999772865870452341916673040685570047172861172633588496827107174500353890336310666580911221611227953520597356315423878627922117400279299276602723091008788964486719775106448528542367606806783287027160214912208907383598679167790798465468476544328863327545926899764713611821919363719709430918976095893307419509153578998159456268174031091186213611238703266328745925123801722185923759642039717801197330135454863031156287645397333010353519936890891716582118447202539404709317833060123964167270931216369379193323918425977305276147922930212301316365295613762333052845463774496678385572416305553286105327552078438940442472330870014940075648539493897085636662472351155496842637074224198534072188433171180862478510999981762322580581202049072702367515599603855846672839734732595961271044969489969280704087235561355018834860982733449421192795115963891421701337136254059591584006576371033621859435409072149507971926424741687886613509620131303193981656443184231910367414205125568633280985520770932399557422045837289243830948110842330087641536630847241689763751941939984808639276953179016437278029776888061624908419337641036450961260406512736947334321364751668674541875423533249045251400126199102550494220608990865348912185197785208035382979351647361636394852849756284971488562703642543761525303485679142181383415467656303629359432715688885113964534175501135552342266095177381781803893864430908305399273865319883923708251443497669579512540664055821324953476082446423795952046740371691040228650601644011882128168872783923427369292606206409640919596145904314517234161617915107061776717415112970097436263571691798097913107607554440072748231658536391707691259190055511285073280816770513474907414501195024810842767773577308103608450037555650268658270894906640961146299690429226983808434968138914924798862248716712812408926279700650937412914280120188192206542159389736338193225912707130384894216293191100490714922536282186203561764468544699594307641907271338781826338479026905141348852408834159704093166717645848516539046001096347293231702452686080786491800770245426053385920091663315079277873248325901604421715668749405791518967711591318927501780445182499374387432993291435543746809468340260834642526817073513602678441171175476803025782843274127129555092671085740230474696002644571189301805811218925757250024179106647302011294693754953338392710767838158558088756706132999649915893949904087497782355039210513630164671634086226936539403456769518652775268560312868088156891699160460136793560002887848650173870361186136616823370063762490171870354839165300888065752373767990681554788889386462338043367881447386263697514446353315136450336525098779541309399414676011222285012782734557551595619844872672888621691139127864441826501071593433318160552880980931375760219544842366891814048761296983574036801175518913300572269947591922872439694710724497704047329675133848537289891985144879126933995627276286301571782705735523845019366528869425030157128864909899305589774514806497400710813760206766061002833539832072435945672059494512168440253056141611504723767968712526931563193098160823297950425898166748008781526486773641449356958428795387951111209004138824350699988820915655540328925022880514169678792992662686222467052549066749536250132697003182451011407351929815270911682876316152545336231324226804522288961497091739711353525544012360861881545414708532046722994693907148818860332682826172282696478516984097556132809109049299420589020997586802701182971438113061665016560694050941744708413659317294603683231488678378340158466652627793811034718565273429011264696899513522043813883592540845087574293404830480525702636746819999711139249943082380948147319257601152853824735720831491052716081699222814186753299117955244774879202469824783577017905817684337666777689021776490621936995896546765996942872180109781369213674462209747830040927181905137635612325486127214522261680518029325681831093141396659245310344236884339706735287266383000454195146442303262301907189759856124702358650054207598252489819907503165380324950260169372305831481731475243043594249891487918906280263409122726735334485377798532768897047616726158528835140603525270885199292171330705785763874939374555940096761537521778280116269037726528989620344126159881063216825320644381640612917117212009556747383916722296235557461243901559905448832262644162568712687048500344921141575761431548788382262449382571907205282243565403066864339495278663919782619662128890293170809150693354760936306950387796483806500970877125842074421149971698556158998974787651375057853627245365217806628977750732715703498547747167890295666395835111199772543088210830083871970300163603754823203181103451963419971957080162637542560696966183436297269070662230614313186361811611331684184951612964799463540815516628864531220105617962381014438462014132524685102641379341166216666044355543396726083900293342498560592304772543016048596898781615324252348894799274995680405750878596158465639968827705058248080375262444099228426558107196531396214742222341535077003136186652290242424273397522322011973008959689104985405447427697563805962622690878847643676551937568195199630442280902471965977981411229976113099668948406547030430616154284052898460555610527743167094547976542569994432561515127041177684024726299051846873938440317490922778671374650487756540035261823361358220969159516531003029947026121379832699551547943004528250404116178992299479111764121739926937741658202028350242611557953577101928695026460543592411800668078233417498334223525119403957869035786809979573555664634818410923535663805321625058733961273016517920915269630774160353934361487650865695894416687593102819722708421300606989032768124813643408829145069353500784269002833896928900367663065196212569113708251495264130730020572342600614347947841846620763374247401965234906393029662233773082064022870408809540394489260237559302757838186727111955590362643818036944102698956099702240268518929057056341157634566345353091783644912706551465214527451609570926960198193514825042308309332402085693823257373246556197838050798236783914896441321211903253837193051261214351205434672138024917208445724067560783891183614420617219609324188787153906531193456242314305059597581389680014593272680369903153148589817842184140862703541323405714063724233441623052011460053724335454408580478491527383560537008329841944194087857728942894298905564111848901279881742427130941732502246499897761849958444824319633387713606417005057588112062601890354612585934515456181756840973147338420149518937581589960120875257562760332950030118318809564291086792993649140874263226672138684915224129903291462932026823734909566257903206428045338516755725663359643282983690679715448949144144284457366131214716525772928322838722519122781850394914414428445736613121471652577292832283872251912278185039491441442844573661312147165257729283228387225191227818503331845753752311813889104687301120253329343303322817674447909206656325018838874991783124527795687803251857087877108213218175422991370299903463408243198220018181430169501586756477231845517351601935397411806816255498633469297427936383683122862090150084763296027154205540923472197748755577372771253584379299733675504135390096260754601770478320092090000437030477206239693112361996923069451921228075128062610903396080855119939362576645605845474892984566105164377632302047629334883313664553345734804735715674449977347178219815739262943566148533256352573800753734245856962732264432925391218548350084718726153761193599211755449468751722095340217149673323008543031277343008442170392235658052374699781195238474449333837385774851142746225220393467572123278506610526913279773063462887372622241958467166720221516808291000526702236415126522740776004619794966850442414929033037526153247556530093153145577415607854888437204157140600876512807613311400021517609289824898629450626479863972781208733447929847854531512329334051406847255746928486263150354770925719144201422185887802572791283311779822123368077931168758654777139994623954398600178217140445115877933764582521759199108819238300516633102828372361341272140722462379539129338836418793155329932894879874861538613915230746891741006626186077722679134871363221475165685084419917806948619546019340893708192321419263827753375919457032645023630434756871734529583995536709739473113745139433281977911222269397254591249383798231266070963822259670190083814532862904610606586856320978015085422334848110590617385229862052817896049500732570427222020393613638247958310354325985507262140340985962778601721689559875030328828176804094685209388640336365236494428576533381097953342025875230660994737779174834099640562083733043167671087592982666684354670095997048589537484151152214502249945441528386578029285301765856291013881441726693837902070500341910121386791346354652287481407153382029019192351467212683827510001739480517922357591031062941178267158381863781954648843122973630207590729496131322642355108491026499847418870181274039872030679358312315482878780386867207634549849519911344509912442473105052272527668320660348538056734851263693194665299251629026264658941634139609150972187236402755002697010883868324941421257120488696456582963616098653685988378839028020706070296399620892916924201175646292127178414438660944484153071327538274180512475604700845614196078604954485925581307161527176818710961041702864624451063869927990313298023938322923078600246111212562537492992069623605549739779337090550915061599580746264769307061465473365729538801084659307737092643932709617335897987551332985173533580576198203756071739649512102605682421535394322065787806543336816683791839254310296299786255831381508429023460414642850633182078026674085750429654935395449486518527564708814351323195973497899171415169373256883389331628338964518488703226398930556894518391912430829325156540236753850043094552275229862193634999307995606896844661874598947488234136640851885321936731143758946356570214222303717414812012726282910573318578392273347952606800413122404444690695700343265791095617342284655138302877708170928004370327526445576200902948987017264718228932761788234679959538966801140286687052633670600630426129946084949956382755990602647776521970253758306411814612875438760985782899634221059502253415043982609618760983521652316543316977214412517700380390215981379748913202929277554387117033911632248075246572497296231247650935179435674838114315286413330290891237771466124690448645511649267993463415562118822817564230240516948954442816831414049043805788605901073700671829849936504074947027855738627203271084260273269569006412015558094691371012984255290544957645064575600374031494587908210547355911363990672780648145919170643387069714773665247784433863025569838810258987930950197131284070891871969674939400265719405722159295868834578669810318183594938102719311615251530174090403194517238322459633052678626421000745736336797264614352971498884605529190782295721345692646383479217594057805130367348879544947334464560679667691278267990494200362880699002603522166525266488097224672121294616782282247427178341053585849093818084382076967122622155649252446410116006638391181830873085635422672150172188913491114434074231672018580154409683941721845529247030666331743969920320999137230793920870633268149502702418363237393557565948355864342758527153036475346746011816231218086111379932483545148228986306253693327937473726404693126737565340199730090761426212286501158568944820803714283612048583161747503907712876046503361236135224312142049114096204585829225543574900902717114310056202779664273282036840883514218997367661285154174170155055966929543355338498868702324902061064458071692286334339185539443465974183103315453291025913036064622666879779455734904546748823275317375995937232273103710445211331153382893042477397241957274401165418484315564894048921358055708557627558495534889191385643791638342408939602209788019587504761416457873384344319808735157516674968200379153796102973494432109476073270046363343661259071179260382965776504898339968200528464234206854494699303871249646642485811604420004666933985741685551729836982926358491044717933844683250433844717587252699366862337570798586379951176474378774221029593262173881717992112564960766549050364753011284605971998642239727843391967774038958231917557325994193790085492825980660767894985484333355330520442978146864226215463907056678047938913177651922049935761663882196322357224138758048818728755477834305533714162429159181440724910183373607258613130585839379636913731605046386537876161997656835278960391654122119712316370646384350875058804657553196720080481063208311821537956138009835355952609363700064531708064420288837726690826800942475061577365306953699946473444264179908807236585691623899636517578076237318613662803000677595254569830359350209310340106654882387605906309667152580319027018056510774179659964177889506640602788471706807792755570351022237147306795006509607538053426398202615407127213785603227432886168024173389459790505032137974846614903095301740230095495752617958896983609703142914084804583842017705933308727898829210653986085497841770226800199431723125607279669350937846167380814534710813293763452196474416319331178690649982482372761620561502444394472323379106960839688560326743659447613243668623910583435263725870265527272354681097361367537998854340224782973219586473847079849851417285386752779230658409174320605010991022389298189386457216041689492340208559404805979888719907538994483624575918179587264785482436871784280511816570103599948961675645814411774359994155741564054198094077706078181787327808839235166527298117294704518248948869402539784970404012578501708525229480032644855398293395410250493410544461435613045371236961682202427087546803225777224676453869069173584632909965978927085724136068529472284189988811197694925777567347314920454188249935386075448538327349316024944583018400520110059712112248818992601409033905843014105055980718844415476335609338929558270335638391892072441156624136346793755416738908930918686080312637892309129166075500989808404308771738687684930623853335091504106000383060163948853687921061238941057439403460624016371854842521771675451639760025505022643961152599429430869349869074629783759970161295030843803660660058922658529305637886695846678487572600253291839307185472610120143531812300826282453907565263848166284306712414091535323017373577722317054545331857330398636116290928079651400076258029586832521130356252134998540067832905798100262663767805172062475401635370252168218735528720401996359618873606934730672840960812886498922816545218524083282791281849386363527220300859827544599898999583511157436878788812704855717381485740307803629420485942064433415790169383959681533585277508781574397192432277988317060546340053309696115995437320394129955177197409249372819386910424719168074575580541317281683365537965275951040258293766006937948476305024368669308749861291151557902990891475114714361655097781089168915938904322861163098089616015436542397071317339876255613839334927890605747145381691569264882015102621472183250340916562454293531173283968374175550697887724604398556261085337374028770997288047611491577857651047529089113817806546922207217132541594679780555957405449532558779284323247504820257296107211930542720344543111901843265159983295119242549956886629245120615544354851877843376022845731855255302038578067996423334739432832550797681431749352903653552357083362272954029760362245967870224679610872900653691581103297724112719687184631712015310872022829121678513683286828899841006308305969973295124018343792808075866877889849604377275402758952292936685392267513992823716159644737329827017509083756802744666915911114977994466711356910889243791993094247213080730819842625931443479657908567008256288588361144633070690191063606859951853870417106238568043241122994069976976521718948993497188045038643217598286433134023273173503448755279378348641310419949659552577066904567184355021562018967279397342682162568608592248811316664734142989101387571275704830514594366360992466106272011244098723999710420756543915068631020135759846014673026511990342986506396760006966879582828924339782590587485678262692633034683723321240661577602951565372261068229038366133683415049998959342809320186542470360735907656081621959975934382017246180769581783472212715039912393733080598164349462313671749599994630421176381814783019102133447356926562588057101644687984556617203758742814909984339304652393122000356442486502802002210387238150855436080610859538174278532465497923110151018126674138466294626740034072909243067756491785793427751652950984600098628219865193501486314131133823408186418101959888722959358560343722423672396015146278965654853353317400741984242601360667355298407544025731777149540219275487625663663209795134838923239847309342827299390954922628685258280376257104081404140709215337798247121933464825207183878537445007238525936056765957622040219451924792912413075854648591812784555951253394853773274395465325201686225053728500130453724000464744479074597825102944479047597268994937537469280893311554355051420516123636834410073498429947070865348728261682611949954445988885035960791436711196391393209112009541335128855089924933928537947665616415925452758853479068034859304210143177857711724511374184624321553372240565412149423223467341003286409237227571473170380930584666114105286653492921570438437193875825489184989446589748921123980435592536491908658906691739080886750091323305426654820771573640252081624830165898730360865980837961576736411773627346697615666539213482934564239912928078599798788152042922151909141690785497361872516930999913227000674997233515576579514366474702374876614964404926134860829976097836260492782317388949792246852097759950804988269723924957659872230646951187677991605495672699690851525822652952273858854393021734274755743918744113766339941285948312343848488127945760136710066761659743958963255453067081684294512114091221200910866698998915001020556924848523722554213107166139198282765742981882917518337208417523869676828059102315199253128014453772216474368259508608886364434672080407995745610429010196560880839309828716061604912163604586908622289737564557413574307159108936724233166447733282968241883149217164949725140119493690567095296152704329196175641010185140596083954221011253004320324477290450956867286869283797899445334732540783200542835488045130887413631936955816828746079046566945900407442884187381232567699671646926799869558860520806372983832112386246812028817043481558140629498830626345933449988840386526057374223073857866400023774153128859094551257535393369408694442939407522182847100107766580951275670201477540829825943655390077790618030037104030191092185293284782411655189092287029012404160045214931709357753608163420856552332014438453889583422068417138823995322706356387242611330217236088753196924820117906522275084815465360634684320835251951083321606843173343658468059130157408787018229598765822830020425283556693204501981988171458261171598400011723232484622368023378498390571958420833941883302500041002600378834221148367305474960967792429704499983799479044054349710896265896766913002849909603860630462400933379790920357551625516664005711218771723903001503960954051845816999386430449804010399161286593474495582760668348248909337338629266989646970531741560892296662428914381927372356726030305011034159701503907594115991561792511656228924417675577202639271089785260599471315335700459048301245358602245707716058212332185295875822030519372890200177343206194287342147523788608300702997965315568103011287992589391833877964700675202703688772405840664369190902874387633882097145801017495101346458402812780113168139897806509007407674642209638998045332620765149608259774522758423904134502684618616814579533717594622683030636661453659920280300843252851498178817712725738675355028513383679230567432436869620272756904956947214224246798843604119226316915567882764842223911962740367145989741445431800616886293376356239752548161092018062894420650865088651743884451744029361570891066530518191344083524173853908952947331269090022881476173592405472755741008722118602480706552734785464670810033252880494872818846476645138719484647002739836639678691108722490689445254499301361359823021009664966265824979074179330260447961646789612176304735470941059054767787436276981114648195946765395331326021604518805685201238185383599352509055867304816958939312668888710724516375807869185298046443759849390149864088672912156151469350544680039277537716280028444617088728346133201602784693514171037189813592856544404738893533643422529953563067148643575822661507084722421213957490588123647260807956653918210780697591919627299613768250527190168013501825936503904314892374222182997294359105047665101984354967715836390356050902744094547376200086625518953798973986955249442094528368937291622558644588185723220050973402112420242701338138097506387073687862241346162660761418658903675756728049468513929492469474976704482862785037993942832787912203329713975438436447227794195248300533133083265941268165481431836724185190716453711839456188537671861146345100987635561039688240346932274316386856389366920782628786664631623058656232080344670332241489658442908620119179775183607898117847087626296153194003478154640506345659858453959336783920471778161961151978159915334832397561116212221045289683087138354599880658578013548593749042639560201729578681154940798878998952785944953129124758248171371088590969140706193303618003033238919132168402423711785594147938175122615373552928204846201190878355782410767958987282648380188363060516258745813238071702127070311601599319566532110559086844637230112193935288299328435695606597198930148418941924696514195047131003620913846840871436786883238124871873805822177969166872677052869491723296929757412937157650310486149826499639425425153552278926558176593281228135199049986283389176950986498709388528652246416241498009133604809416167206933424250017253335902412245206966274283806079157097461019323432744228427903009219716781979659790595491272105538644724076008310005880818190724478703436574542794750466602116861532820793670422831576774109787065652889958092151207900910624889386465174860336630488088385858365475419590635290169607959866719791951547267539998847762188847851073660556792237455158009612734637037295470996414489544035707005097959712497079149894057504201650307392100837573941328165780857198028511304247961345145042777636660548705739016497996388006749276335699901742142470860427633687015388954255448605196615601145707431101267836061897633765408595584416739699898991714686664840902419001493111173462062958230778705794867646385567587210995136468309977716094546557201681228539377673740994283039515574945316920658203714520458277535783379827116157535547547595988090288825001513269030621837535588152280080499462199263139514759007671504441201028640422323467572146522255433374645407695544296373365183294408114816553112317888568534493625651092338223250887519700640217856262405043920393115512742419812786611804575203790313522638215002107721305024066241830028624776559111141308947497641704427632877747366695141529627972984736229019636223154363191418417996968962803592775061551398755785367266353781400817153183187933147980316630735418382498547746143475821220350330394913462672508437397313313461349718786522154847952113280655897451002032487297922392568927537490270425986685614904053752845046626144264259912295769949845956168866129342741521686045369508582771055380684247063968607781328993106285511287995439433670099191520888614455564574422792533094751032786399982860866477824697766936469596820933063048325230272861628840918540210758575059523354917451756350558943167491291170862073846960048789782639109056257395994874924959790110901916146590802074849626393582792650583647676708383011968855505051861579809721852980782027546790777352845948855486420957184809577355026418379662201056062017672410164759618231771444198810096102794777608196256246820854574993759391755772555043901644270909099403336820210181891880943144687251194488397607261064289476377050838168092847287045308547161072786663101220366887582906462496532944215040426089607955960284837681158331065639818871541022291856363755468086146768060626175912547513262658963341657062651172681705493010940658630266922042298948302376443236714219463649003200189102951055373197420393993038094287078665529147692881385645878149664779808233148266402166554846713406240185971412175424409787127718287785341343837382580995377745556686390309700061492840773024700917201995246206245391985859237134507423999851718224954288951323435031823344837883192959553348790109921171899225365294293653362582595390946552963581374497293699746511875338537487094217708081745701742251604090438846121574124452850202379839036999113896967347788049704208886393128438915798686149953572063769482149209306281251312280804996662625532242838399173520256674525229908409946325864683411130420845898803241428782414860826210577494753300377060215168255421685888255205289137193877249869082025393362940473047505009970440709469358919699005334783044635811964910483163816068074323974751887377450485393208011892092176200325412859001921285078008780108096121869972156727878783603783428505022335910473861003790033681958215347953124203321923791186979738109328501036782788060812745282883103918315704414803727152691119589138273502062661678813673893005894349871926275421758678377586169291156419695497805005027174414821422531771664564897625594375826764309491260552928577535565273114929560879110821596194017570249204462620779468053776955441637902384442862707600133588293722905895613531099244879237739700126380103906210362971005400902332662052868551292388936540076639663983925724508244968989262459924394384508765578909028189856834334510996196384091164376705960548419525350568787230520679162057973980086958750046561196154504016297677700965470185284334977644679496028037224229231209258155238064515073175826397848971659561076294495873794568519845906093691349732270242823829358483476200972795732039739082440490265245937396257295449117729608598859109798319161919237155743147773056132758650301867128792233399940922106267909462585081169282796692381723798551276299352386088317714689728571559104796911352900853677375489955124718689039574466000484795401447802882232082425670184511475458385946399776041212321829451207207790817682331516184554219598749744558901511992706236051896340735393487564095315603407069359582576081667695587492098240480666527562455192322003251452941755396468271902352195763796378975941750521586754201928536559666201450456338552783571256712051282275196092953909245784188554012712828606220318403041625230457334991986203368394185491917443128141702746834805331236365464080095227986799808167861438767022991764204219357703030288924063382337118831666892347256653147154261973692488185677444236830676285808035577667085249394327267591827130580282047449868310923884518396569291282691413580228508792026381557594458857783917630415382477745027363004796768568959057429077532824031838874195328472505758236998984185573609737934792621075648001276066005684856289529627036503340728499245707682166060043085192144993994615927401867906702492509188084254975382500057364115276562788206831683745613611646610594529609876478761781065732569944130069604044127574848059081543152521914759307810414099180436770663956672634435356245619356407513565467271679094118794884808680923093832873822500428513086155646738231344891197653033059034948850709043640855117089681596818853555968367767082875926959001222681306340790521808314175342883875013165292187663333574314371010163477966588836188698834998328981164007025965502047611990688459306411880137433528093795109830522058657551902553313247393551842157260882310168318176409724179664282170553923573318235997210559146758099096015712545362591465735834510808497696708071726694371830812496641392852932420581483522627446937585856957168703450223775777783598158580954566745546272979473079756932050856264050352830255672286677544482840862099813897930370925326425964038534996170546386083723031489481001371999013197012628010849698683279080599525074937754235999978783744657783712375357578526777106381435613678907947372479242618159928019155423635840922410926951949867583701400806912594594455592546704732039280047011160015595417020287950359292017703968601134563044492333977435455716545727149517353452904622158776693210397256540533868239130580966002121232483113870490726163498817775250633988037352830441378850405352914195734486262214803329495448889085450792480542683741940669188555167572166221109208997318526676782935266132904276171207173433002345258919537355747509268743152936342844964077178567399584381489421046285181038496434277355192443854011056003640918609065983002337368459149958401444990129369372589395288983481155645581061030794545804756646504893576785275211183407994598744205675506984616282974816927434031957448112126921989132435503198370546644424960963633748486558714369342400084268306946647268678216054307605555515711301054996369421412014528605671549281450356360885793542044988312557195995587078583365330551210839284998411268479057129722024655013870820524474927234191950360303939460347677085153472543380769135430210323311827099410525437316371791899608133844403673509209111063173376587401600018697304252984202448885270331725146924974753931982350352522617616094384809705351245708751318689267370050744277412070979040734631226205290006391892909903319643533353377827730338009564355202372811893414222213163841246621876265629262131653747440952305454016919059121029833254873844314996900817917666244456257105500140603668001332495809064102834877164193564714304095505763803857385220987161679591048522208070839544381665295350087746068113602730824885662613928667728371703032378323346716406418651059916248176707063456531467640744926589904002492943382034766548273034152265790423510131092975678304848136329763976322746732729909893927449638572144129084870644807046616306718326269730189550522617503670443765606386089754748091995263944035360465439982377356190246502693129589140222105988734088163222562586861744532441158949303555099774824741515073734119475733373556527627418519164245146201049878262945368950884462321176358003511841835926759864297128139853841446909691719079951674046781893587502744350355118079967776249870628475929132726168844888493914112874532057248359162360674161634463880131235116126332141573507358737890898646033191010479049510880532762436343801953205313641343554593647041984399732731928183025760085767530258321696714646834358840039142037072426708260176162533902989867152675622198130603529594844646404039688560064817661090330560790650387689684467316948543438918368935379334168987646104050602410935985553266431299975939026367969692513769369261591022851172165414889215726223597736677014639845855210470747638897225490221795578347385363008193343789887481568027697599949512125441570271376490277515078779949109561489574262273987940332212825753245784561955271497177374892311071758004485261087533971440933423641670007394747605338766380254295863552936913034769868990613336245908473538052999169523740650576570393490154739065565289258081944696284012213924551119876038074056609941052311643601925684722053285107258758837088787835407461779760153173049500582938124750525030217002361095736709078402235116222597238130144407984791813303210544324431102719791005913738093483775863613997719436720065592456993814702761918466612118042961718665283106957766092437716159831512459361728010390163655204661937092525125363139655920117782142768019428047658653485815874703119926770979133504911072051652432462312538315744875129541560355275026367961454610934441685357810273138996999546867343518103443255259516930023300505925727997815904820223589052604792034825075042171734554664253125285259478440684213337897972455998381452902491341277243424509717951186446150628152839286502372129264368408132689423169315188818953852681800476310307780389924412151871985827222544989996778751458791602397076666044133305940017725196828827618138902540142141154032221880752214931387303943894838634880488587257312960544022675401194443442712395569023790715007138610641985838887956880548633517280844464472481327723859561052130130910151062642932763162472228598525710263715946299940132265505188044657398980037754421846299791933040060517616187986026555760768914956796240330209203533823006419857512128054908768126499986629682021600839357742569239001450967655189683001149858039500662463386168022550668707591274831975300014554060154119807841134948294656806017074182194482694202914591931179729442535235139331011218688316780023266376919519389893049565596364430499826362332222131737958633752729015980267624382084908943642831249679621625001635299668930446258458041672490710904142795447432277640558606449799377481597906129222029306198335261800426117966549675805482901810689473722161202657162630436353022821293372450839435343709678543243805831288950527866356571712880369852845487149507985624665557793170507902899868597143645930779735070140152275447669341982392638989294535343190218016938758502877868797020461682319735199280766975865127606468238391696014867111500960384593882005106152664625627270863739947150257718107230896204362641552557152127904583542959059101205185086051998335829520276445242512357735153614513291221335783411967187075856606350002976645872189965684680983542255567976997861529583162065743207372109968440619460852752139972077460283796182940677826598099698358660897438651036562425562508423543545630151219711116732833655070583247917273565142769410984986357066618802528434536119774234900016041091359806582532510477723487375858846669785802999922419736650411551196281600473215765070051662898453996379194144719612753684963848418407835392194951607607529847670841382746044030177075799966676756861253610514003917168172567805013897837186583796897615017209848060227215120876367111635529356196130402092739641852869360472651396687556304008753585686831314128686092282555124226959567993035024901136677093640349903748458741989108901894570519857812478440357578671393197085549893809997065410579169020959889749873844727261372435180656164993163897351119703310393978040928094799734337726502122497143409823782365196589288627922327799039418205068569837671166237721514412022766337949173743734228317972794011937453904905797144617183602567322140552194621862859145438965623402489453798119559649687070730218607805131930946785284844420212843249930715413564423079386272526585208492269484399394853053527270682335863948608170577407516973852120210628959417716079254130699134608143824632866935231265907343036680953859560845016739322909654282885409786377872218259072743419564661165959340871344812029957960400057641468485638419208402583268552123795496248911586260094009876541358587061925113653719481486085710770837602097237465955311440307339494234844861525237226662531720908162269400021122759183425529828168997196876101438519190128988074242805283555533252325715485875614477520119468011155094405429657310193621595918758219482207475615307833480300854994330873982134027070003112858879279673962736609207126971151381953771554641063374555849196316917552555991892240897978331242735453841796027845958986470600952841808664677110946415984315000959749470220759587493696093489235131553087952267531922887519326905699269590112428008437808975802237272111281427715809215786190314382328222158431197363867972722768495813632814701827652361699870383165480571461752017797801074900520098622253867134378987984881044503027177386068210671823485666103281598409185714908477074125773721529623628951428193949344923100247552946876881422826882633819921070500314822969078127068502360967952456156317625378443908683885454717662505486886145388589401906509184101588520883369612987731672752691975623864276095136945838426185218338957051864132632025229313913483808212879643388136298455390423731285738559006232871979159091218171033492088287365725960067510345169173034840664773124728536498697032255058028512103145813971655005402199912584671247522962330479476204174835733965129338846259860546690206872743107989200936008629962585264955692634224434907588987120754055723917788898374740062831103598936397536831431637915535084459949981517903571916645957972640535635796228522323209995625290729565968625666476118217436889365526584209735880483823563270384629174104274634032764044247217919633892333004523529200287573013563038211172897133169436372206175085815202908497246369055667628921842626517819765195385246430364256203212959160895853359815407065024525216570882264388969553200330712386017719942697998742711966035304852835818441460854913450644431713086666567324744794322805473391376062758189042836565865989546648856170985902335718936471102219155448014160810863286526572025037347796586980289697568759695665517157299781741491255194508337794974466980602686431815234229243167763265101550537467770920415647646247512496723011428848395397060605607246531422732188958383550139850224798061638234945366128994040935591780926586823606419849478639492739255146759621855648434028716399842416564079224320499215193527094274925509720983764055479950763696237008961585314208285497806440657569461074012428301167709175408804880626657504874497001006448172817033718571687699052050431269126758942354642426321926816126071352559377998468768487666374637370848309130230318759755192524399178262640279966163670943691125300862843502978866714838773557009540850951092542672370871628508720499100146666069343525439681324227750520412084311778362086425913741403701893905849130885307671803377759779815450406004508428169265395494242417343968257979429633223312132181078012932197936027503888526310458725788790499330172493716992903363545290749651464056091275487528815748748504665647881571336432427015771206508826472570911545293554151064551035094710720178800179246413597213842994871045977552798427450697742656414883406830080923054646260389483267223960406246465945742025221084288128266889675278980243468265578962656266379745368910929346892092484109702357131627533023890207698673143258427609481838812458575873401409706867189561813112229470021978448241581544509819889152942428906934660562607956566439433934279983588235711675751163292556214994709518352233124581091315865577359175847036941484881503863264098660524416089944214237244673185768540526164596080359046160459477472320562878910886992342019575526455549151862881037098556289818492084536281760741755782246663879072604677554834517443481890496880563765032503535926271374514988624054829562473693334496233090273911370810584071237265540394440666165466698127940161174380314425458361131387001800510642225047421267495399707590971527103141655363347732005496354914667194992566437711135196471224844213383344829914740191692970978273304820965702365744166216404138597571994011075505481383567509753677020862148022476905759312845796120520106065272215959974558956392927416101354477714866027222280787891903104933048606423488894126536509198046804726679290797077022905020257671384436845815634829002226658722453892420758678126480742598431037231448350739349163285687087989353089830355384383950079707801508993166772121535578504768244806681206008160925249005506560688200539439752940429777997773909548121823388281599786284393448937918615556384584794259298949054384503736976473332256852424021601959044724016399444925891545222094738197285735608141629442012082969234213675190569210533735923778160066566876364146366579043573782443665166851049351957765790791933549005424537483625826410516843786445029591835898396440568593688826368637105027687838531277770566599560300157235823714715472190567142601433687966468436491439499957272215058042899218100989507993449442141990214468925539286769175103982467582463734380523973508302806871873446064187629932031217040704830461291642631982086285078695172901899700143428968262441780781916264417195044507576668563242456745817551859136043599958574598825035538466741328204525370108050902351148404819530588806416040823552351294128140484544881037085694262600027163923010086037214242484291264957195698732190524275633949016224645462593474567030056728375084672498252798367349561770898365165478278894261861051832769208503603621780033915249337148444550141579116250506890910713827580224465050986098688327677971183257939187162167678835622419886753868393157565897768652016394528273886744065178756600689498217355748074443255775906927363784818051335709627018971520589097081198620052276793499133040582845672035856647241058894553087522364618384396402596011254852876608866284830763601287006667228026700036149423026125416550458296169931638437058296750705322926910916119674936127372916312058636884790525095273515438062221932730028959924079390744385736690935294925868944010734221780243707715281612425319088227173271543382374014745436218433325680295994077130149833237045109699654532027453350702177037070611381910516358803074747708198082653195105524034346189080408772855887102619129910922959508822518192058518874419863486251882456654507803295363481026348433030837241811365562783019391016183517403223845097914687521623877144239223232455763641079747001255398324712260190530488666649333228486329053808683517096435404402568667911688444342169402517726916720054236587952458648729193194196398370591083465955654573745542747225256387204919648468045612163467555780018391145805072029104091774619788296504861235552872697552000423820381832076425536409632089339245449675981523092151894730501978535100152995735305428112836484236594743595960959569801620275302395941995334462820826497923607942188680411060241587415085751945806156888083430185412537819545969741423677874187066721584275223193527707018877628030323374028626604207305052378520354210425772442559140427008749076435248269386810716376693073037272374171754245852247735758270295996649854102311510138743237047991591787902994485501682558654515388125485742541460429120123228556148895327177172401226279944108268691399729874382556815811126238732626104264249191467303139324078996737861432904142084411467415351674268973370321906902874770602008842219032125165528911717385674777311366153734391751962707954921617093780054340457873789689579406584026092226706663974706474619148511446524438074152055212868620200671723263684717967231549153359492453428928874859317664269936209673407497745053070568431410133263287775921305762314700874373845076260305875774978732420714066513617994956945601081928431937367328417989351895954235197022893472976977104975358649956731850469509873966280139531524733606745957465367342250965950109876696237341406068393503481983827182118684406017615765602547011395373572678345269455960791770944971727234694733436780387223775747916868955520413621538014282548673776952837038414279340044001305689783556227986071360705966044685334333224708199605172761522010806671065237950190709749374182163352993865189170077889883476360923618805269060064082807971343497894275959288720261078515554112397373046097592317883468807253835105908002186604490289791189672593675521396472906857973507367571821697403667069896134578745061097120350147956537516416615312164732544167892775072459436281923825623362981037565328913282392322272506794170946913185669962267630084749332949237724820251680550666316199034578005029621609509712783134975497484970807501469286177972053920877355735426344654046917507878362978303712221263449953760458706825466567329277539722860367819247326075875375036396055575515247044790468927900741744080991621535352379551593168250391708411573389472148337705878936954153482731607170302320249290945466553120552501263225317414273729408935823231304140359670910492571838352019535775111030301893738736672956883475900280466901502804156922062794107897682809626966101213748811955631196777980468124930647837405316274760628345868471645943824367753427608269557653234427605339971298708052089898561442065934722157535135731353150964325686326997601181676887233090478473878261088300271876502608262925233194476909940416700264006555597136991814669791135677806574510572964711963826438069896023388113530721498585368708628587178926879629780160894163936301209416355230277734299630152634357751250413519834118736205833454731185380745726843372069052208562550105061009379428561404741845592117933927270859725115288005694028053614114492402092462087948741836224854453701673479359020150069908947111950095477169960645156934098095760872306116798593054474249458559276375426550790985078262274524142805641961957947016181410188593967029288408817507132694912645147924587138834722095701254537628711546135844710131132320149549094464014760003023763285717139536547149001355586963306925811264047920053172809211791287009678813893732959490687691623091782228643533340593396791602428932748444663155945748561132045178306464916622418132462957675091859029883332306551450236294043474054925561176422160938847117341895740719985035273669869338669851702573938066023027910628085352549353166194585293885401347619818297901927026997553976270972133207752142888313638279403779548104363968462169524948229844322968969208533555308531740953971002744873252835275736247945801278044550361060645585780357362625255636064773490568638324600588264572996728670647068819718804899591820953876986724126105812313371883281538730532406351716048837318634831944878552453402131059605432697873627899027362358152686677286484137632175406689989734882611860180029360022362615884959038938183834781502164731089138369537380868316436990879808593012837352876220600536227587287679465791680576358143240925305502388654829492572512760977104308414241327149223014555024915380116515701072599196608891033445877802018420198687255798348589279411579165489841807965598165292440028600089283308995984612515413473641247553705658072496073372896863956551034497585830017188013929340815934657740749168731401990382842771226233324460588756739838593500769513118556316845738386555122929408030684220362567245918113860635048015522616706356496428673234596566937992435872932911668849839364206979703901915931945597036125926270637083717136079722292448389736599492632218594309529344551705400945927487032843519938814026708591528949635950763638073234705346230932441509575691850480891957173919165310002415714293566869097067553848502610804074340645742634283252211020710345037453834072171927286093079709087864027403756034196203260951802333194466047043934800540635869102941831438198076626369229201519626745478890548730085334220881597403289253567824780457234485556638842993651785938154287147347054077625040798071086832571272096595247028093129849059790306196750805994442179885069831610963804318575734932089702792144339391342829009838902927600998103497167534005535026657548513582069817189431736521873727270386652434205926968399585877165807536293049174582102753301267023622273305213709274757549275403224866536323928428878807181194344775443943157463373774219051446263840148384522306013263650278845147170479058318058348940856949424994415155483863342377204069960193358031375344976028444995154109011381560664132329431053540356633498250090053413621495974752980282398461972836700621058461397781582746765798260178472965764639589418774249633169588422839119159056564022819349680175816384013942920814208820454690299463765205998819783175448012711996556221317324427160802193166446071845067024516046120117976382723921134833943879896290584017968636094325530065062888973239251361632702390752395982653489399468065805948768646275141094064993115341987321729914312591009777188686945571244449358286138125976463755113427984573762023435625689831225304205902149070999674160321546707538816502965863991553151342905513331653248308850347019549055674484101032187658995675839455823828688310814186283547319475525274711575402543480466177480387868598378715694913427853082947288735412043190232090595295432861066132697607626692661135211466252769841277340852419138268582809550758375787518294419538166996475933805810974419704088768832525737438561825911089750196431479372572070809405896055397098285800445563078599861108297845198039988230941625098680263516282280756081650704834896441683618365946329769197332664504433270265296440733260835948712972056368036299922692205555021936131309439292561689825893809531154348132895184916542872546286351978103023730034903799179307688612204532651318101381689879195678466786614433105801438125991279141588766717029067599907122292817274527854431917637751864885446905521418294754607553734560608556346420396176670957528745494901204660351964636873577292974282347505496786544592736062760898924697824189071366910300926678191303055919511695693178319754079624033842110466446524045818686393260964635303347112921315436957144220672372701903216128316366068353535914027988526095314744197670576401090753060472138657067665499726561399562590818508530304555928407614124652218099654353071631850748864789331371598040191058010242554171356618961206011069761203387121769536277481470240462879594479656892916665615162911773694618494617768316635945285117164140087961096558671942116381654578935594374741659601910402650699653760891088490540908807662422362445253132852178568721171075072872580243702749583566462456351397720596477873476721370969778743722222285444150516258147590016001034987342164287379415209172808743852870687452996758506346236156568380656846858665912883929939874919280450975993576219153034533964024162816375645733798596901282927418796276250380640305799822393935095892199527851029164638047832936209192780407715041873006891785738178253793126532269564298480575057043385936993433934560449623259372433043576671477116642620566716193777375770182049361597820655177596044557427140159585062420861432022102794700328644097498531194933972205256017243806783980806301980330387140108237370202178023999196594847420810041624631399989387267812969837139653343697806394667642860024152824873785639412927935383607707608300750085468836684968344738138000194809994639279397254809261755712323072287991472949962782931812117999531191393368291421708003917108392039962532465712426711480762187323888663027326326051022748558768582482996273785630375020526294883169608949012916313726348858049819248754553524887326239439367504501654768934020682145856556617105077511943738058941342569604131394758191970668230263242340902445054095883410876889880583600190580085619949103323884501331396041945468828359061480627917027425505698363038681904080769860746508844236776170546226084543972221940355420265203310445526900704688277458214569663667446999428841734711480702347951794307783615275740011675423810497822651699679327017909913253596925641310212031767596026367955108692598919360515293161163999379060522162182625734473633420263075057264252255255006962503721338053244844653771497170577712173855502140364109117838972141797635473176486099732370208765716623286273640666665252244484423704743126027019405293253920388124561167839226071478001195718475045561161525038448220826918667452950019454795547426703119533884633675047534119243051728905583063960642730093178990339713439315840591610085863938221382022717081924757782100150391638486660170908139091359533406190146269042409568052624010705647776618407365199659831201591486191247910453282084900376962357904520492814748144846581726874291601112567800981177269122209070237851486611243714459198466857630947375120942433520044650532973912516708301825542971302260674660980052603919627557983895090692431900473756401836074549348591017944755771628631505548876102867291818675864766444786596278272940399932099053354969138475743042203580266820050183524856515170342099431107260374750821643495885414321045735574198011829400651638459077831309473009929939541827181805997731995522537656235226168798804828472031495890625696894424278407617197478521211170867529446036705335557033361952699406435233081909574370804656078412350061934156495100497331738362040042273443789157896534958611591918135897244495607070322322782801579148558088663267009240423420313927164689630137056221855039903462294679176978329701524127573584580130897595258639855021546367705090070332907975583265256973309925199423352342674324526287834348780393209901478697413172811254964459042777973691266877075337938105295979219560094519647245214566447811294088842597399502289315673204890035956531488181813352488448698694800612536474277550005042040462103442555588086621442523793246458613086709152614396887816336773496951240900773916726414094124216456185364620858380521948089887377463428514000439792350670242467066706973079235532297655668457047629025632259783196183339724915469525525143514347973072505898539350344143010372769330828701075552612213237948915324248501547845700977456836739570646245323167834271605995132533503844764618045298891008925761423645689209371216233577791901016985274650743313394038605583835605125299114647525104974008392381880409524665697821906750077451273404137469485989032430384217737576080925883639849428524916612397421340306639968399457315314592189561854297369416392912745866021491932560629083547889453870589099102877684263449092427581953822771544550755082820784883600938857504071338064314464351066357725420010721512821487380127832552194772666696435196399513880976645324332723557684264153138097822980463213153774625235404290603580170561927446884847759849178086745549832965851953461620010812542242676672446591985003737246700094531418328513802244338672642501595675921141474962451849120472064675609405933598879179790590013674885386450686962065614990834968225785681134556483957272889037685647348587027874709244378417015400337456982748232469221776707380599850755861668713787186830968096765583702166111407722078522106402682698887307289605168437835203674022500330129422087997280733552033208498251879476366174290552837591285641649741372819365114332541321596654479750889663784405834138448245573385931223675087756917458077706663761431383703360433458674650157199994935709263149831353947601099746000005376581449457332674586106330493215029738393935442737099386415060481731338107605825309439419878575323657233230479592495750580234655485760174078300407648946768258640951038804374399269553415069260955209966849636219609754199025668927300183039884115526354875841019186258565195894991754367013775262962123556260890759814472451063453168437420392696341251225494255324466039223854149218025474882876575364066956656854499049481491528050382535285564672004425228943146357459705605413211134776183459143500680409751657893967117854851652292067783571075255139531452823122246077432648578021471069671258249054953252002980118743298038560982084749878105162425738536217494683456079440138680427259737217799597613484926836925904945447285453485554767285509262696633351543953191992620902229011791650354053205354155732396286587788501001210509448364369355456565298702510427337311270368643270185393046229863901849849779085270466381007410606419934676834879214901823792623153577676004525398309488349953129731567381103576713809506026898810326066044317643550299533074351217835363742263073089411890983341196386055152202496844393942530531427282384519772446016604039958354727913725799487690563099638920470629376050565218205421345799773554893538368033652820760812514894362469001742501483694891032497863941911460054023062161855699086102467315486460988020278107347373777049188343981529606960617171547709155804539147213794488630702751062591007953739995139486174490302297892181523395588210157649640209459194090016061165874111119807343351033819020401202992932403144329877164721941875892567634592321990922901557239337288860713694061776164509345671522804998274750927830263599319816399168556260449567993519483203844703965009899853801126586133337947755213032889161978793373276844741328316215382135050223298247951985584253064406273275670404854215795371733438301365792271697658152542272531902691721583563479065501433932221184545774337318654527185594102106229488252043473087838122229831687235778373373445155994823292339269578929447998242009493926642707394323274713200971603475707441072850307963039075727028380502095916175507000501662779242931812450523867239968585193177959038840467556513325575821494315351795949879017593995401869958616206697153893332575600180920779578501271585250132437026798381532168315105880273745589398225165079655680674055293358041645869285231652892506244103450725475174669695766475991206556847983177883862444164695419191341166383135950942698407897055494658072945983183865462177521063114551043363353661775730503740634292089127750223620941830938203794204943018325648815146217473149531227249665194033266694654817482534172522912474970511461616005428188054035419894723457255907901419851829814814599027140514326607102622963491948125934214533789872458309760486188866958513039072917339207722568960983652091279311482179747506446559761340387575922402239603473570849183378112149892582953233544437853183336101743721712707556161914380532726602449486684750343807525183922459239571783023471419022350350380794112727748728950400230804740722455600124762073159921250457886191338649903391268514724330910608559436605624848676475330103363659857748963154641346528176374126158110078173670124954479654116012249009394603499330999402392749438135040080294489916879393667610867550354692386570894147039461647784558930701189503601696843007815886653291356205568916972515781275439554162151952105300131336221871938145719744354678463679883187413333055129221001574730478222747354362338060820098336645368558689256331574692024315168312340672977314170507985368300211465536273578120633869732468790648595875816722867648874376546504490483805651802297321117954056543794461504202156340664560806217490834492965788882953793035047260862168232015498493360658850369596066660761363412546677142657669669382533335382968667780185547637587413756149740851683629386444454372825282127596573341880697804038637562432135935333827691436403187220519444882699899867804379050317265195333242884761680065162980299075023247883443424065678288128860769637406496025630715656767505203705308391361662839216418450982844674305122844423983346413015302739217504201192661457275082813903767336357639254460529716017653757738989469139770671718421230296681287204971364532552899308640123305232260540816113878892531948786172327631527480204769970108414222399792911010289569196329428033277083535253890351431858828631937429265422212927628526004225453979981005955366783999892392918091503877736140092815308194078606647484238225957635285178492414744484368434252066821565966919769728805736670362156355124994436122668933058039480454627750978873567271612375825713839139410872431955195160533765155558925355182697971475606689317353105319152122983591730230267583927416493142243938974431008744911962224480737158524947552758284137168733885684513971935717435137665104895239029017063092712264684066927834839988628595942396793645641735587184019901875725463460676207062627896232203480537183635179469108776385199110783793669022647896142652819899498944095836469265144316565821247179207892033514059366782849401779896529798150547543580317758562255869061012302340109361295535357635843299746307928840816702336678897012814595884742819942874986614377118597010460786118312228567494691319074281994287498661437711859701046078611831222856749469131907428199428749866143771185970104607861183122285674946913190044825643028262007248787525394397901252203517990670108864444173332942703850477762959484381499099891262534888002247011268538660594376622270365082672212322235157255037650385409525310175758687338353119969360241660039650928072743807137547048484456886848919687212310981990987307479532054140103959736196967523052442164056190052674275993979137268686278535430551791257504715766018492371822393484939196929539449988380196572662503651757494033119695979411721257623713831651147962605579178440278188122553834089639827049789072574304430334117910810905995054171220773737974775030368125820309958441194867999857940111713933242395262703619927063772417033978111333238271568277342014790547261654340193226714421801961053370502633374273190455187948713485249862668222211111318914455762210422898347390349981259778110809013186425670889103674298030491363651421324982033989238262331145775400763163825126866684850315841111141155886426790721346040922170507459824720702455243140352011956531392458331009142536349587897907439371365970955272555666600702420283910074594624663130745446751130599377751204119280556497291512349150553278102298643060840537644098917444310769987172760038151634428606521830692100917992794170931936294247745806817335335970175989328603148532015687697915652124189670040309591727757081603018694597140799824436333287543192214073599695262683038565958452089565549778101327453943408643865269541406604205250151308378086645729974925690376170930028161622503187003032737144860512516407239007008823823906811473995804355590351241221823298274366777890385385862391814781588353258137893191305164723901590515007329258274620428914392667534952154942924092785612941425869372951468931427054442270009324161093344478176261888491644169256081359077579447386206015924040120633749989542529116340952448531423182474586867921351026966287517052106460784704974666154518814151035167349815783088805062902524727849132883585857196877031633009755390490488456644897468888248422504227410769069154782415861985184219579094591392694553934970741708260129913613729331990899612447611270277043889271701723488617631963685024672082669876084819752651511784683974330831726048785403033294278644360911489762879741302033675392689318594580161832917944010095832498058750645836641276952928598265770333006234582654955532316653230563737351219528492148963929423810595598227092759973032994737505687449872812934702606624477615834666170491626975717975872429291141879750748782171533419974526805573225600314170463422031897578207730237386246978504165097975844527164585220435513975928752950895465228066269694344990148802004181186420397742204042702669554460329909254959435202527964887345800543458468494529753539158379291130570376177366337579523977108739337954733211854879061926854224008395361036877899152210452106502003800518083477093161510544129726850899664228246448977642323194767560243809769463100168877605725679893692800865024874467608245459575013283810001229747305653999137661127606785834512958030384050253041663117398222113792207474393966300340704960764328821987339877333802859793609821535465591007243170971570609710596868869066479067951508101151970513635751636112075963738637573858499983786453057903044394301295041097437837274732158210702226767570396614186087744396909624777614298268125725518207382106291429179289825779700233074929888582353993193563942526806194864206708332451046817067040554213418765164192197761886802958921872436739129792967021700260470795407599880696538294706826294750079920917805450108721318367103021403412399398867410140472913176444209080110919803524432113336535828527182843262367250370024116259482255974488083176067370154856289118665446550456305213779045057328185120197966540943027004974463254612122414112832936643794032198447927665610927170763559401220553590244673070737840681089160484022631613165378822613062347649322815522919522340925183960171495570625339301919067459718990077654358539453730570858767339377522556188759086266557260714813602684304809463378108948705332533469315286522818485015039938003366387897338934112884345773523321999762575438761947829060841049231708697927266856501771784535760144406871716869009528068034318933563042709727787065088633337297031001593202232479700410181494676461336968844790945361149017446298974932300375802531917695505241625006552842611437307622654208268221345946753703366218421816566443477572096300136885151459679472036012139399463261145414446827526486615867566816023239217047451257013486590616430860058855687920847833606246304195846417470830336606533005342062042836863188883242668160351752140074640269007587610894794635150844959617000501827708966824263274755293913446482687560096276222425072962721883787469558539680869873126892374812698135012870259485298709385372271299505563015937166285821886591605207403805726033045131972167929147718675630529355727688239029226621973058048731140117530813389217011861801173372514366353087565734208941704807219335988747973642686198794102854212952941043654806166646656095350681267986083772342685220615877477450454408597241235728136293950248772132291814474603528240905004010177366269864170218167035181897467051204279605436662794521749414856486403423375959054906013609693091684106291636794689232189120912740195170618038721228430708796077311372544130605417298995054837882772704666386419113779886974063277679996081032755656287090677016148581185167152557206731092594326602485559388718412430422561677461510838972883424225891485050847290517606189977758300706565252084740820884217337391076739811488077333220165889114100515854223884063672865672508971288503845294031629188371445378786613054000917050111154718543635583103320721198133485863115342360192029371830435261690844019550048145065893768715238471241858207056441353048742051561451208666809688655364730701451711555839964583567800349094903932744514411779916379631033825445061267296629820768928347383482756376171383960793925089382875193889083742482839533422566401300588877665791783597740406707501771087193911457846825425001211040115678138129566257255109176460365967780579961308628200115012516792484947604849884203733393954346866859023545752309540738153041167591919640339500823221212203194858219244347552933753017393518181466920530067683549832608976267360301178458554875270307322003532412239102967066481671955925453221347824974025002702748059981683762141181833876083487925809813815166160414642080752020537454958013051355297538783179556066095345275028999528430525995863149779903125995926852386759975764413602257604706511987193235262649108130193591599676247754200546833291360809332318453091032664269570273636886158684198635589869662161263694234626987065295164603659088977630943695328921497180259712631079198634234336833798542781592437536105952313676705884251472686692596225562333882544491533895148078035316009623627236262932109383812134429259616897760712961096532858126385635284069187072690950871990848758805976806154343849833078622373299505385954465287258009173848216395247618669194284409202032528586359734273652108417792406533769948709190400653628400265799102780858816942811241986780321267661190821206876943902568983185502950735813628332588132934978756119965706477032335460135933015737186998527595278840155231304466646700704457016737473029447784258379713395798102341927430114166335631047200206230346672004347363362091860740637938741083779837265910226226628166836817461450888105867940209169623707026722707855670246696621523592324890655654114232165300123066831581370950117516497474177077104786711442312703082596497028065230972652259535026093760320464181040128257029715290996630179728749671607818738643460436560312600913080199055913449698243059810448121422323919883233051748761776106038024224869336078269834879905318712019365657188113798828547000366180337646164180800562110656657135445738035572162702066987066596116302669281335128597234227347404355045030184366157059758602591897297176293782075851521436630058441375435301528736386393755920249401991229614783120533902040215249571623751771392074048121632069561687837440675142766118193570409262254428125724467479356699022400016162793569997737936222932889951096671881472547244744233245083281611358850626177813475226377416689306796189069817385426207116834520208661722554021513152030142615363529241762488724019384328470314533568553211634603241191096900498066163653704830044010118129186561089746980695576919135851555938337915890679818785736968733491665317029348327448262349678936713440726772268408403907850447337091690161948341749284476857660558238949976266570726095917281026112370882204240489674179817610597121652434189876973254051835763906896752464304945981403996019833681862821705860733720146993569728500023185154135769994130028979845463872060925991656750042574557721385582160662381881843260855908648842305772902458375483327194659221890608225577193031024428450880238041182458745459540599118793898665243467776067162411186100101040907349130306713696907321594348481297454532146506161170158707923782677675224366356639191960427312642890214401873475928547074256703449969176752335984781388655657058999833186012346150364759381711586038569704789249935904441279760418898209130348330214953067826196903024060825099184094962411171475019366825471966844473398515303878500511069790200649735354559385757078833367688924611079346271444198027290305966709465426946680003655724825053853726570034645529843754856057664365484689591987032555090859093742098048624130992674323728635611761809716368736588525875429289986840706674091310523331169139017590611779084055504104097301267508771676860043264047173173087489445795368280651668288418809763876877516772254015070039336937988371358231367550158528752403375539868709478397561579463085259914621207238560952292201024194226436550096437281621236592956492120341931085580480579252070560970733110036108725733655124436397417268775153220654225639339142498791922029924304015135326183042516398217599879940327177063065296019659466033166091932252139785174202756045328225580091107055701608519778065710143163012118809125580649860309480491466761077207455026345069561581532830704419644626444019789530416738083329238465451537251333168403315256389658947110087988118295323646800461339453767014912177042821942828505066221884630508804097835701153266549162552495263850962757967494757716034923473596280176155626743906233034700445381194095286975509385806797026611456848448463089914943151524881780244169740998906039084394418502530473572469373056161853793406882946014254022114233731397240857449458623776193225518556891103646376840705160036061406435708118477977704059956412001046014130008907880893775952957450476550390531835991468545540757025419445358817282302171840873401560659477066982172966386591321277165192516662912421600260824045564181828242071555930414128479212381485951448399656715057646027136104073454888170722718008329681401203966223752409176259305011964574375389928646189021874107501694155173074879655579434122134018619457111141451434767911050873858437954322814623925103215251780610220029850611715115229246844062336709270892264532410781786234930020364861529930701368469705066369587621303871918496736262861287731353077213166220888069011784522319949365322724431774790440805210124268282757760576852072110323533635517332228465853855790725929976584978688690119345292746422752555850487824174159627743927269508630037391972324328096423320985806746974551157236703879559324457584531226002395645186342413700109861502651950965012763338281967365976435594000089837050721922683756253424579642152081415381403528342327457452821886539984540277441222545229422654145010246288388525706463919904127385863747237719701816615015593065525804024490929824495350132778095325642634262634327989951686692296919787694623076382134287918534016638265861389810556650674010634208285394781800204536422696790163479917796814269701962431418370179332392082069639114568653435751789370246642695952596006543260916042709032773341248793762208978545694318474194345106203974665551472056170610194612226866815969048383942904309928316773541444293722192576392177792342237733971484881819101699820182786211318128453632639843862156550967765319885417831855867415823900430534511707373728672801882335457853069599677880674179643009793841325405448123808319030586540851532278542313542837423537587216882363220550706527064952513569636752121046320641843223935637795209989654547200169683510743077019398841978707094769498748642008554707457267060217127409566926654314383377690240131427899977567787241795713572230606323052385635147631325572644675977337769862841750940339381216921426735638646235434020669430635075139402744288976582370030756493010657345186982126947578850411919613610460934316440741533743957724358852565023137809475431957730545187852072098638611622730433453295875474855127338327972219185035047871897884249287106896182108994171586776120838015161888651454001285859716463013644965160551493822792834449083767432819892114291043106111086869216552792079820164932937458134215076551187848927673825487935117832351611208551784108376211752815007851854778186076794286414843233233191097266850032934128914045858204431557610778785762577423838489931572373959838110607812467786358556899652736884524094252870459643592076057934668432414532559635624874882117912081839703478464175492914224861988169835836819129231902407171295700076874633450585460536189741365291148748788266701276631750412100720315781088924376640367730911755309040928171196136210539234138733422593767876852625713512243413482449243786331885276827537431049035445524214357136931385640290400065699362536817799187855871844730770582529743505748664127084654426038472744533183529848936838988978082890186230744840470844908528494030394342955463852740854759015268816000374772522811781161157423713981950740674175343184146350544342438357451924861158088003960668343940190898737819244040021983228452076515479211369255074787416583660242218546219464307751521861355815198875404635517614095905437385700525013580939048596721620216069844161569078771684068127414376614091118139631085599151661481079544515324959921366825499632712373562568414745414312312060488195654935028235797994376777571835665900690204179933690917282410490623132712442494160142851609628077906360383358414199270915422768425817749922199305725803259512377120129944248407012279686794447341806792582657934958914767888378915440932631656700608894731093256105619880308605486520877456454524748535315405011168124284749579043721594155394367029071257786536897542289496401161850244371314084346303543580647721271143504313625484386609243615500319651085500509071583370415025568891024584004181933520252124498457167679255682218023266396231570964589079686994941373432621181495473897856248821720105582789845333331365484894508887856751904044595926531952158119244898113529022134550383565982719369493176565781867600470077316918164550341947667743801815903330993025665956668060102509265301151501606224686163897193090214321417040021914577268584078652097221680980634034097430869072988223097519519831002986126704890817788276877579611783302232901846001907160874768423152240507743607793306997142082661884079404692580632742472750415657425467147233099626039572865385905528880059112225774689762192823890406555213719749452232127683384515514576846611277668820788347588586006488657357631652755699941191083466144561867068127494633928642736615115589122408685970789270075033942198758365359734300410695592267610355330599310591763127935116297140796065012532936194013665063079415700502111880435814945337913208587325484304636596357544534702368957640754770441557149317686793022777531198821848373019117862893069401115893599512748299120530681295519298249382721477955410129443773451756425117165262161669991858356468746493579240977245513328023629366757099076978525142266411911935854345013740960793760050865528342280657264780220420613079516996395332476166228915466846940969145152525634154269767270965428923669684031925350949067384509020297243180912312701825519513834600293788217620776766147017910569870953277066003084161810592065874865600514839521848249925432548561325085851974364170725538031964069280715632213221733454518766155755263903183393965684200294607011191290037403223439767010625918954941108166177756219216231211370903139719951093000601030071533334529015978893587985958847841800525379600879834711092657875489541907538610662201899597895405934378739470638423676775021833692887286605278345445220240580571136296007597466519777111126309694695034238465105314336670951107606862905878290788220871334642003643903663329809885008513378149631661885771080663125580443242076986475122165823616208346814841408315252753960506270666965263019025938487440341266063574737719247252151652293940669552453422481299918326565944237591205598820047286420420670742228727590740971398215723796321454991672967308028648644840683221903368490269899297102009204118657870251785918357505527033476887756385854627396075099761474005721928981829667262012031145826081585538269222510138256110254294430679624364008997810054400678021342767076425499259367101022846748662259411752940516675558186269417505939971153767539966509833016157369709227005573096959556492723851825757875534178887526397885559646244749232640748216285423380363359493748995268060167541421978835090237310576875032819182590521253318493183061007022026785805278515630243241955539385657113306225224623414797114479325789937362652202228457992303460117710415744094124681972950029114139867615503525998194807352391545285811182229818156494479275635533223506290496237602188857729408189351450563943338935339776554563408665552826581360008164633345254494845059555667051631077088725052066260225605736292144516747211388601691629300542051242064155552724019455873595097526255337290938999075288085242342552687896232612745355757808171530910245963535539481476277196916419842611182758862589058043661548756206816374340800476001644198438029373414682867771761604142854126064256415809374396159129242713631367317761244589933859177730611332988466552457482834925231194587069989123810600838202270265985625763339190336729400012642906996683842381794361274698665931896190453222232936031663296014943687182809327430491523893225625519111473007531481288072064268422269811361855201544798087601072876094502692494540614879525977809863600696691013778141234900206869198389264153767225517687495152040148830312041130202278064596458948058713779967688734939187037982143916720645908696518972256916985099903102030966573633018772157910787814264457256174115841858776996356352915766115171611755619121463772138011365226362712785035214533306584240427193465708056180564286269988319327273724685080806372534586774314356471343299136108458711456701768060241563987452403858336379398356339349445950307144276942139216593351516100280682600186217108027589909163454624602269858671745423109772973060195045575021217866729268633665125807105050017472133692072698071927790633012919033429182201301171302068612463736153617639480556112267903595998345820736803032156050836640166915464026087260506651984907574962129633119204608642470105996627520406799085211118873939526222171718394567435843662502594075677874552068831770210182263928929333199461895562143393987537774182334907763855993540087193532155781063434926469216680197306958779347172225448079118111196392639276480012351772571927478830578397113669060645525433191903222891936095497184324910090454066272923850274056338385485901882681494358436458439802626111161717658428160979576525067876117951163239926351700326195341509297500553404886640965835191659794919350863488219261598144843692437545565112204194805526823075332476974088472778743545235927210880405262583536868919931984460989716084467426367359168005528478634062691271721731717560616771714634755616198078843903113584777164260510474745766361438320854993672197457399797866522775035398061891408888385909321374375272033623025787795610472928563860851309157784649600087363339203104897781691990454837211576932614722101693733956770865691376111086915327835405568948605071082295424809180558080958528406673528781480386538021466467571438965475808604345129553935513095869321108629931110605839939424965760106574952402644946365524442407305990365284908966648040467945517605689027631717191876872772574890336567177856382321653056921291150503264128157327075011383551978930940891074880342610908827414137119409123094371678696136360724776571046234861504060685470464577187891660382140143475097305369103110844079695504562377538119827552159521365018775633970735439580120471966019512882510545033173051621634109051819226052554631226435532259295747572882001626270808236042444590358136199045960449167540375537272061819889995147771614932760797999354053231793037435275849954268171872137473000259335615361921111292616389162184695669562033564970596509332371688551878420333041807503066505560625174160505262331664091925223825887095521890288129575052171165597917130825340460843307977465476881666919681447689732848391792177677642710321517452447950735880763289054167316031811926102417003817756596118256541525180967987602616343017278370327961732925081347047654857656059010727673521385459827689298733297583299446853656599192720272312841968966632593594772667223500113719502646730844926286095985262052240952182235920031470698269779266722504236559291924920543503544423909408805762010504653092697731349410857279976380113049279739865584198988765833201593343961046875079635201784729873173044084272669658406096180546546563193025050149598884019250855963188092332801473038791291957958251012920437765334741089180758072471272402761666296862622222316607044875229214715071461596077335123827216691545527291307887613670400334477105207700594289972711773659192429913212080970648963125588439119442642483455502072746152267209925644565283467989949066034174136847615577313440734698003798042141226713203724653210732173573760491932062755646766549039130286899780152779120272475105329245955273986420662452957180086809157335553970196512931004832314704135049429359651182657240498204431397567031470537098506131461559915459679080382063327112705397643894613068335246691567644480584790531856264957839354546836297097508864072557823669299065081270643207674253904368857138109407458556596741811348102672978012876597705816267284575615932812660645753286983567541694373351718691544942980395328095625329671764742784192171054963853414283219862148618952679148304004542302437244624942769588188513047879480515092402218472726874326028962048598568318074375214862909921339139921806953807443634711062302102023990801664283121979039310889890286812774491398778160123696349353837904833738861649739886424085640388600121735603712566302824193284413937152603550255365006846913799512533015708816931761980595766096113281453624863814374708137609973392793407138710218356044379465595763210859726380561131738627799618662828106580006360605669651605002754632000642838339900470686106215897801359187080238837576895579111713270218719138612446092285094662178800912356646714252845813168832334386170263454531063573268617141732682521099271958324907832321928980485122982303379378592697226931958950333541260677636845192027990112943513290085258960490613481768461244818586345267324944123950337024289552856674557637765483130391544907241744699033348963010326960851264053688782221214621521942382509078188940264353675156891044885683292128360258157480099845832054876530840824256135089359722960318588388580383581856644121538670876760124831010463084474432188014479093367474688447856414817445909124539810323008859206371015635875651643095961127396401586176978131408795073714288317760436689819626413475006971940565195045505167742397940196899862527890085237445807328867069741773963572545060985423456789852042507322860709420263948418286692566061665444072045775683939323122654078124783166688018030184225045200535518686848505584530852538497542612057943053533080747750826496088529445572785003441395589379335051184030225298706162915059642259996005856489572336531798691366969944278665789125256846260414798110865685571739072133078933108525903333113718587728703492627902715673291686627166749081993182583166832828500157570780161193169221931514754937755159804654092839991094937420103717085608605881785449005704104136040435137642468998152680609255401123465329504349180537477356166667104692983095678920316482063931739221248405512034780632111316813373224063216455415588237846091942738088502838312362266549744300558099898299574258432353764298631465635055283560477090757473282636770439630979234656297949344566413960851464371303932136774212470904452721540687921542630642597260292018994655298115142612604900763867141730235727276839041559723450666693866460588292012471144178831782234821533891876058363276181819433227695553112581904847517462905620013468996440716198232054347184611020511315550930226825107491990149608178562605108859036584745150376384915134000329516399106219240557283008103521761979616832213981692408357639556211657126112192905087163255258558649616638254193591482181876195923292056995506376458182685575221152787011802994335467415362762077497854054133303136335423682410108464763749063885279841490076464697648540094796358954975461448137636970591635699836811987525054793069353207570766780148447701424716241908166822490074207111864881547728917186535967765395799335033427282146054169649600984706979585592643042870363664713071314782330611576419913222420646099898830762685836055527409904784676107604241784215062851755735299964786255295428367429870664579433758010140740211618614484329765744263428528704778556308309631435278783041945019702946575777732816746858087453931603937253315899280579434631408735860861778826334927746151184911655130681846713677348823341085136403947939208876886336339461382358344794081569610914293877347138934237736191096460564244474779082076049660271356168954106444